haru7744 發表於 16-1-14 03:34

請教,mc+ib有辮法程式取消未成交委託嗎?

因為目前還持續在學習
請問有辦法在一定k棒數後取消未成交限價委託嗎?

好像只有轉成市價單追價的選項而已

先謝謝了

noxzx 發表於 16-1-14 09:55

用time_s控制~
或者寫一個 value 用 value 去檢查

blj0511 發表於 16-1-14 11:37

本帖最後由 blj0511 於 16-1-14 13:01 編輯

我想到的方式是用程式控制
inputs:max_bars(0); //幾根K棒後取消
var:counter(0);


if 條件成立 and counter<max_bars then begin
    buy next bar at xxx stop;
   counter=counter+1;
end;
if marketposition<>0 then begin
counter=0;
end;

大概是這樣,詳細再微調

haru7744 發表於 16-1-14 17:01

謝謝兩位回答

可是取消委託的命令關鍵字是用哪個?
我的意思是說訊號已經出來,我已經用觸價限價單下委託了,也已經成功下單了
只是沒碰到,那我想取消,這個意思

zaqimon 發表於 16-1-15 10:04

https://www.interactivebrokers.com/en/software/api/apiguide/activex/cancelorder.htm

MC我沒用過不知道
IB API的話只要有order id呼叫cancelOrder()就行了

blj0511 發表於 16-1-15 10:14

haru7744 發表於 16-1-14 17:01 static/image/common/back.gif
謝謝兩位回答

可是取消委託的命令關鍵字是用哪個?


若沒用程式控制,程式不知道你取消的話,會出問題,回測也會不準,所以要用程式控制,當狀況失去已達到的條件時,程式會自動去取消掛單

您可以先用然後用模擬單去測試看看是否會自動取消下單

沒房子的阿捨 發表於 16-1-15 15:30

要先看條件是否成立......

1.一般來說, 如果你直接下 buy next bar at 7000 limit;
這樣的話MC會在每次下一根K棒掛價 7000 limit直到成交為止.

若前面有if條件敘述, 例如 if MA1>MA2 then buy next bar at 7000 limit;
這種情況是當你的條件MA1>MA2成立訊號出來時, MC才會一直在下一根掛7000 limit單

所以問題不在如何取消未成交委託的指令, 而要視你前面的條件是否已不成立, 邏輯先後順序要搞清楚哦.
若a>b一直成立, 訊號一直有效,MC當然會一直在下一根掛單等成交阿......因為MC是完全按照你的邏輯做的動作.

2.你要換個思考方式---> (若MA1>MA2且 從條件成立的5跟K棒內) then buy next bar at 7000 limit;
這樣在第6根時條件不成立就會取消未成交委託了.
程式碼請參考blj0511大的範例~


haru7744 發表於 16-1-15 19:31

原來如此,謝謝各位指導

再回去研究研究,感謝感謝

頁: [1]
查看完整版本: 請教,mc+ib有辮法程式取消未成交委託嗎?