請問自動交易策略觸價出場的語法怎麼寫?

  •   58 
  • 最後發表   miru_pa  2021 十二月 03
miru_pa 發文於   2021/12/02

input: profit_point(5, "停利(點)");

input: loss_point(10, "停損(點)");

if Position = 1 and Filled = 1 then begin

if close <= (filledavgprice - loss_point) then setposition(0);

//如果收盤價小於進場價格-停損點數就出場

end;

if profit_point > 0 and Close >= FilledAvgPrice + profit_point then begin

{ 停利 }

SetPosition(0);

end;

 

請問我的停利是不是有寫錯?

我是按照範例寫的

我要寫成成本+5就市價停利

但是我跑模擬自動交易的時候,17277觸發下單,已經到17283了他還是沒有出場,後來跌下去變成停損出場

求指導要怎麼改語法,非常感謝

XQ小幫手 發文於   2021/12/03

Hello miru_pa,

 

您腳本停利的部分應該也要放在position和filled的判別裡。

所以會是:

if Position = 1 and Filled = 1 then begin

    if close <= (filledavgprice - loss_point) then setposition(0);

    if profit_point > 0 and Close >= (FilledAvgPrice + profit_point) then SetPosition(0);

    end;

比較好。

另外需注意多個 SetPosition 觸發時,只會執行位於腳本最上方的那一個。

在沒有指定出場價格時,會依照設定的觸發/市價 +- N檔去下單,這樣的話有可能不會成交。

如果您要確保出場的話,可以用市價單 setposition(0, market) 來保證出場。

依照您的敘述,您應該是在即時的狀況下執行,觸發下單的訊息上應該會有出場下單價格等資訊,您可以拿來比對。

 

如果避開以上這些點還是有問題的話,麻煩您提供 自動交易匯出檔勾選(包含)交易腳本、問題的截圖 以及 XQ Log 來檢驗。

您可以直接將檔案上傳,也可以Mail至客服信箱 XQservice@XQ.com.tw且附上 討論文章連結網址(小幫手才能盡早處理)。

感謝。

 

發表回覆
Close