如何計算特定日期及時間內的成交量總和(例如前3個交易日的15~21點,這其間的成交量總和)

  •   370 
  • 最後發表   expe  2024 一月 18
expe 發文於   2024/01/15

我想要在台指期1分K的指標頁面下,計算前3個交易日的特定時間內的成交量   例如,計算回推前3個交易日的15:00~21:00的成交量總和(以1/15來說,就是計算1/10、1/11、1/12這三天的15:00~21:00的成交量總和)   我寫的程式碼,尚且能夠指定計算出當下日期的前某一天的特定時間(15:00~21:00)的成交量總和,但是該如何能用迴圈或流程控制的方式來完成計算前3個交易日的特定時間內的成交量總和   還請幫忙看看我的問題,程式碼該怎麼樣個寫法,能達到我想要的計算~感謝!   我寫的程式碼 上傳附在檔案  

附加文件

XS小編 發文於   2024/01/18

Hello expe,

 

您可以使用 GetBarOffset 取得相對位置,然後再用迴圈加總之間的成交量。

或是用變數保存當日條件內的成交量,並用陣列保存近N日的成交量。

前者因為每根Bar都會運算,所以相對耗資源,小編會建議使用後者比較好。

 

舉例來說,第一種寫法:

//由於期貨是在15:00時換日,所以要計算昨日的成交量需要取2日前的日期。

value1 = getbarOffset(getfield("Date", "D")[2], 150000);

value2 = getbarOffset(getfield("Date", "D")[2], 210000);

 

//value3就會是昨日介於15:00到21:00間的成交量

value3 = 0;

for value4 = value1 downto (value2+1) begin

    value3 += volume[value4];

    end;

 

 

第二種寫法:

array: arr[3](0);

//value5就會是當日介於15:00到21:00間的成交量

if time = 150000 then value5 = volume else if time > 150000 and time < 210000 then value5 += volume;

 

//在當日的資料累積完畢後,保存進陣列中,這樣 arr[1] 就會是當日,arr[2] 和 arr[3] 就會是昨日和前日

if time = 210000 then begin

    arr[3] = arr[2];

    arr[2] = arr[1];

    arr[1] = value5;

    end;

 

發表回覆
Close