累計值的寫法

By | 2018-12-19

有網友問到,如果想要在一分鐘的期指上,畫出今天開盤迄今上漲量累計值減下跌量累計值的指標,應該怎麼畫? 我想可能有不少朋友都曾經起心動念,想要把當天一分鐘,五分鐘,一小時等不同頻率的數據,計算出一個當天的累計值,作為交易的參考,所以我們今天就來探討,這樣的想法要如何落實為程式碼。

首先,請大家先看一個系統內建的指標:累積量。這是在計算當天到目前為止的成交量,讓使用者雖然使用日頻率以下的頻率寫腳本,也可以計算出當天累積到目前為止的成交量。

系統提供的腳本是這麼寫的

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,"累計上漲減下跌量");

根據這個腳本畫出來的圖如下

2018122001

這重腳本的寫法有幾個重點

一,先確定每天的第一根值怎麼算出來

二,確定第二根開始之後怎麼累計

三,然後才是去寫不同累計值之間的運算