期貨全日盤分時段交易

  •   385 
  • 最後發表   醍醐味  2024 十二月 14
醍醐味 發文於   2024/12/12

前輩好,

目前進入撰寫交易腳本的練習中,想嘗試台指全日盤的策略,

現在卡在交易時段的區分。從回測的報告內容看得出有問題,

但無法確認所以來詢問。

問題如下。

 

一個完整的全日盤交易週期是當日的下午3點到隔日下午1點45分。

如果想將一整天的週期切割成下午1點30分前,

跟1點30分到45分的2個區間,

然後一天在一個區間只交易一次。

如下的程式碼,請問可以達成以上的需求嗎?

 

//全日盤交易腳本,分K圖,指標以日K畫,回測時段20231211~20241212

Var : Flag(0);  //旗標,是否有交易,二個時段
Var : Flag1(0);

Var : D(0);
If datetime > D  then  //判斷當下時間是否換日,要將旗標歸0
    begin
    Flag=0;
    Flag1=0;
    D = 1000000 * date +140000;   //每日14:00重設旗標歸0時間到明日
    end;

if condition1 and Flag = 0 then
    begin
    ...;
    Flag=1;   //變更旗標,此時段今日不再交易
    end;

If time > 133000 and time < 134500 and Flag1 = 0 then
Begin
if condition2 and Flag1 = 0 then
    begin
    ...;
    Flag = 1;  //變更旗標,此時段今日不再交易
    end;

 

排序方式: 標準 | 最新
XS小編 發文於   2024/12/13

Hello 醍醐味,

 

您只需要再換區間時重置變數即可。

舉例來說,分鐘頻率下:

var: intrabarpersist _flag(0), intrabarpersist _barNum(0);

 

condition1 = time[1] < 133000 and time >= 133000 and _barNum <> currentbar;    //13:30區間變數重置

condition2 = time[1] < 134500 and time >= 134500 and _barNum <> currentbar;    //15:00區建變數重置

_barNum = currentbar;    //確保每次條件符合時只會執行一次

 

if (condition1 or condition2) then _flag = 0;

 

您的腳本中,datetime 和 date 不能直接比較,變數需為 intrapersist (如果是逐筆洗價的話一定要)。

醍醐味 發文於   2024/12/14

感謝小編指導。

發表回覆
Close