交易指令

  •   189 
  • 最後發表   winton  2022 六月 24
winton 發文於   2022/06/15

午安!

交易指令如下, 請問系統會由上而下依次(選擇符合條件)執行嗎? 例如:已經有一口多單部位,

如果遇多方條件則會加碼多單,如果遇空方條件會平倉後反手建立一口空單,最後部位有一口空單;

如果遇空方條件則會加碼空單,如果遇多方條件會平倉後反手建立一口多單,最後部位有一口多單;

再如果遇退場條件,則平倉所有多空單,最後部位是0.

 

請問我的以下寫法對嗎?

 

 

if Position >= 0 and condition多 then begin

SetPosition(1, MARKET);{ 以市價做多 }

end;

if Position <= 0 and condition空 then begin

SetPosition(-1, MARKET);{ 以市價做空 }

end;

 

if Position <0  and condition多 then begin

    SetPosition(-1 * position, MARKET); { 以市價反手做多 }

end;

 

if Position >0  and condition空 then begin

    SetPosition(-1 * position, MARKET); { 以市價反手做空 }

 

if Position <>0  and market_close_condition{退場} then begin

    SetPosition(0, MARKET); { 以市價平倉 }

end;

 

 

end;

排序方式: 標準 | 最新
XQ小幫手 發文於   2022/06/21

 Hello winton,

 

腳本一次執行當中,只會送出一個交易指令。

如果有複數個交易指令觸發的話,只會執行第一個。

另外,如果下交易指令時有未成交的委託單,這些委託單將會被取消。

細節可以參考 setposition 的說明。

 

您這樣的寫法,會變成因為

f Position >= 0 and condition多 與 if Position <0  and condition多

if Position <= 0 and condition空 與 if Position >0  and condition空

會彼此重合,所以只會執行前面而忽略後面的。

 

if Position <>0  and market_close_condition{退場}

則只有在前面4個條件都不符合時的狀況下,才有機會執行。

winton 發文於   2022/06/21

感謝回覆。續前文,如果依照我想要的結果,可以麻煩您指教怎麼寫好嗎?謝謝。

XQ小幫手 發文於   2022/06/24

Hello winton,

 

小幫手這邊簡單寫個範例。

condition1 = 多方條件;

condition2 = 空方條件;

condition3 = 出場條件;

 

if position = 0 and condition1 then setposition(1, market) else if position = 0 and condition2 then setposition(-1, market);

if position > 0 and condition1 then setposition(position + 1, market) else if position > 0 and condition2 then setposition(-1, market);

if position < 0 and condition1 then setposition(1, market) else if position < 0 and condition2 then setposition(position - 1, market);

 

if position <> 0 and condition3 then setposition(0, market);

這樣的話,當持有多頭部位時,每次多方條件符合時,部位就會增加1,而符合空方條件時就會平倉並放空1。

持有空頭部位時也是類似情況。

發表回覆
Close