有網友問到,如果想要在一分鐘的期指上,畫出今天開盤迄今上漲量累計值減下跌量累計值的指標,應該怎麼畫? 我想可能有不少朋友都曾經起心動念,想要把當天一分鐘,五分鐘,一小時等不同頻率的數據,計算出一個當天的累計值,作為交易的參考,所以我們今天就來探討,這樣的想法要如何落實為程式碼。
首先,請大家先看一個系統內建的指標:累積量。這是在計算當天到目前為止的成交量,讓使用者雖然使用日頻率以下的頻率寫腳本,也可以計算出當天累積到目前為止的成交量。
系統提供的腳本是這麼寫的
variable:tv(0);//當日累積量~ 宣告要計算的累計值 if date<>date[1] then // 當不同天期時的第一根要怎麼計算 tv=volume else //非當天第一根的累計規則 tv=tv[1]+volume; plot1(tv,"累積量");
這個腳本很清晰地呈現常日累計值的寫法
所以根據這樣的例子,我們就可以來寫累計上漲量減下跌量的腳本了
//計算累積上漲量 variable:upvolume(0);//當日累積上漲量 //先定義累積上漲量的計算方法 if date<>date[1]and close>=open then upvolume=volume //以上是定義當天第一根上漲量 else begin //以下是定義從第二根起累計上漲量的寫法 if close>=open then upvolume=upvolume[1]+volume else upvolume=upvolume[1]; end; //計算累計下跌量,作法跟累計上漲量一樣 variable:downvolume(0);//當日累計下漲量 if date<>date[1]and close<open then downvolume=volume else begin if close<open then downvolume=downvolume[1]+volume else downvolume=downvolume[1]; end; //分別算出累計上漲量與下跌量後 //拿累計上漲量減去下跌量 value1=upvolume-downvolume; plot1(value1,"累計上漲減下跌量");
根據這個腳本畫出來的圖如下
這重腳本的寫法有幾個重點
一,先確定每天的第一根值怎麼算出來
二,確定第二根開始之後怎麼累計
三,然後才是去寫不同累計值之間的運算