想請各位賢達,如果我想要自動取消委託,程式碼是不是這麼寫呢?

  •   140 
  • 最後發表   XUKG  2022 七月 26
XUKG 發文於   2022/07/18

請問各位賢達、小幫手:

需求 : 在1分K環境下,當下這根K棒的委託如果沒有成功(新倉或平倉的請求都一樣),下一根K幫開始時,則自動取消,並重新依策略下指令,寫法是否如下?

//

condition1 =balabalabala;

if filled = 0 then begin //當實際部位為0時,開始委託

if condition1 

Then  SetPosition(1);

    end;

 

//當上一根委託沒有成立時,則刪除委託

 

if condition1[1] and position <> filled and position = 1 then setposition(filled); 

 

謝謝各位熱心賢達~

 

 

排序方式: 標準 | 最新
musashi 發文於   2022/07/18

    //如果是我會這樣寫,注意有兩個以上的SetPosition判斷,要考慮觸發順序且不可同時觸發。
    condition1 =balabalabala;

    if   position= 0    //避免下一根K棒可能會又送出SetPosition(1)
    and  filled  = 0 
    and  condition1
    then begin //當實際部位為0時,開始委託
         SetPosition(1);
    end;

    //當上一根委託沒有成立時,則刪除委託
    if   position <> filled
    and  condition1[1]
    then setposition(0); 

XQ小幫手 發文於   2022/07/26

Hello XUKG,

 

在一次執行腳本中,只會執行第一個下出的交易指令。

所以若您將單刪除的話 (setposition(filled)),就會沒辦法另外執行其他的交易指令。

需注意的是,如果您是改單 (ex. 更改委託價格 或是 更改委託數量) 的話,系統會先刪除之前的單,在下新的單。

細節可以參考 setposition 的說明。

 

所以您的範例中進場部分只用了 filled = 0 做判斷,若委託價不同的話則會刪單後重新下單,但委託價相同的話會造成後半部了刪除委託無法執行。

 

感謝 musashi 的熱心回覆。

發表回覆
Close