XS間隔時間交易的問題

  •   192 
  • 最後發表   Garlic774  2023 二月 13
Garlic774 發文於   2023/02/11

您好,因為我的交易策略,進場後,持有區間太短,所以我想用quit_in_interval 來間隔,但卻失敗,請問可以如何改進呢?  謝謝。

 

var: intraBarPersist Quit_in_interval(0); //交易間隔分鐘

var: intraBarPersist last_buy_time(0);

If BarFreq = "min" then begin Quit_in_interval=BarInterval+5;   //如果是5分K,應該間隔6分鐘

 

//間隔一段時間,再進行下一筆交易

if position = 0 and filled = 0 and condition1 = true and currentTime > timeadd (last_buy_time ,"M",Quit_in_interval) then setposition(-1);

last_buy_time =currentTime;

print(date,time,last_buy_time);

end;

 

//and currentTime >= last_buy_time+1

//停利

 

if position = -1 and filled = -1  and condition2 =true  then setposition(0);

print(date,time,last_buy_time+20);

//停損

if position = -1 and filled = -1  and condition1 =true  then setposition(0);

 

排序方式: 標準 | 最新
Garlic774 發文於   2023/02/11

或是有什麼其他方式,可以在進場之後,持有區間>10之類的來設定呢? 謝謝

XQ小幫手 發文於   2023/02/13

Hello Garlic774,

 

Quit_in_interval=BarInterval+5;  這邊如果是5分鐘頻率的話,Quit_in_interval會是10。

另外您腳本中只有限制進場要間隔 Quit_in_interval,但並沒有限制出場的部分,所以持有區間自然可能會很短。

出場的部分應該要用 Quit_in_interval 來作限制才會讓部位持有區間超過 Quit_in_interval 時間。

 

另外一種方法是計算經過幾根Bar,舉例來說:

var: _barrec(0);

 

if position = 0 and filled = 0 and condition1 then begin 

    setposition(-1);

    _barrec = currentbar + 10;

    end;

 

if position = -1 and filled = -1  and condition2 =true and currentbar > _barrec  then setposition(0);

if position = -1 and filled = -1  and condition1 =true and currentbar > _barrec  then setposition(0);

這樣進場後就至少要經過10根 Bar 以後才會出場。

發表回覆
Close