自動交易語法是否正確

  •   84 
  • 最後發表   Jasonz93019  4 天前
Jasonz93019 發文於   2025/07/31

XQ小幫手:

自動交易設定是收棒交易(逐筆洗劑不勾選 / 自動洗價不勾選)

有部位+1狀態下

同1跟K棒收棒同時觸發2個訊號,所以有2個交易.

   1. setposition(0,market,label:="空-平倉");

   2. setposition(-1,market,label:="空-建倉");

第2個交易不會自動下單

如果將第2個自動交易語法修改如如下,是否成立

IF filled=1 then Setposition(-2,market,label:="多轉空-建倉")

else

setposition(-1,market,label:="空-建倉");

排序方式: 標準 | 最新
虎科大許教授 發文於   2025/07/31

同一次洗價,若有兩個setposition指令,則只會執行第一個。若filled=1的時候,可能平倉空手,也可能反向作空,應該分別設定條件。

if position=1 and filled=1 then

   begin

      if condition1 then setposition(0,market,label:="平倉空手");

      if condition2 then setposition(-1,market,label:="反向作空");

   end;

XS小編 發文於   2025/08/05

Hello Jasonz93019,

 

小編補充,您可以參考 SetPosition 的說明。

需注意 SetPosition 是將部位調整至指定數值,而非買進/賣出幾張。

所以在庫存為1的時候執行 setposition(-2, market) 指令時,策略會賣出3張 (1張平倉 + 2張放空),讓庫存變成-2,而非賣出2張。

Jasonz93019 發文於   2025/11/25

if position=1 and filled=1 then

   begin

      if condition1 then setposition(0,market,label:="平倉空手");

      if condition2 then setposition(-1,market,label:="反向作空");

   end;

請問:以上Conndition1 及 Conndition2 條件在同一 支K棒都滿足時,會執行哪一個交易?

虎科大許教授 發文於   2025/11/26

會執行平倉空手指令。若同一個Tick兩者都成立,反向作空指令無效。

你不應該讓這種情況發生。應該加條件控制。

XS小編 發文於   2025/12/01

Hello Jasonz93019,

 

小編補充,當有複數個交易指令在同一次洗價中被觸發時,系統只會執行第一個觸發的交易指令。

所以在有可能同時觸發的情況下,可將執行優先度較高的交易指令放到腳本上方會比較適合。

發表回覆
Close