我想要在台指期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個交易日的特定時間內的成交量總和 還請幫忙看看我的問題,程式碼該怎麼樣個寫法,能達到我想要的計算~感謝! 我寫的程式碼 上傳附在檔案
        
        如何計算特定日期及時間內的成交量總和(例如前3個交易日的15~21點,這其間的成交量總和)
- 370
 - 最後發表 expe 2024 一月 18
 
                    expe
                    發文於
                    
                     
                    2024/01/15
                   
                
            
                    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;
 
            
            
1 評論