請教高手:
一、在開啟IOG情況下,
二、市價依訊號正常掛單,
三、選擇同步模式,
marketposition=0判斷式無效,造成不斷重複下單
var:
intrabarpersist m_marketposition(0);
m_marketposition=marketposition;
if marketposition=0 then begin
if close>xxxx then buy next bar at market;
end;
請問有沒有解?
不是無效,而是速度不夠快
0時丟單出去,還沒有成交回來
就收到另一個 TICK (別人成交的),但你的部位還是0(未成交)
所以它又符合條件,又去丟單
解決方案有以下 兩種
1. 改用AA,部位是畫面上的邏輯部位
2. 下單機中設定,限價單與停止單都選 不預掛,市價 選 委託成功後立即 以委託價回報成交
請問是兩個方式其中之一就可,還是同時設定才行?
擇一使用
設定第二項(以委託價成交),保留同步模式,還是重複交易。
設定成市價以委託價回報成交,保留同步模式,結果還是發生重複交易情況?
是左下角市價中的圓點選項,不是右上角的勾勾選項
你是不是選錯了
市價單執行方式 -> 委託成功後立即以委託價回報成交
保留同步模式
實際執行時仍然重複交易
IOG 設定頁,那三個圓點選項,你是選什麼?
及你的MC版本是多少?
我懷疑可能是 BUG
元大multicharts64 8.5版 (build 37)
進出場次數區塊沒有區分,
圈選 單一K棒內,允許無限的進場及出場委託。
你選無限多次,那它就有可能在有掛單的情況下,重複再掛單
那就不算是 BUG 了
只是時間差的問題
在收到成交回報之前,就收到新 TICK,所以下了新委託單,造成重複下單
不然你就要自已用變數去控制,不能用內建的部位指令去控制
請問,IOG=true,部位指令(marketposition)就算用 異步模式也無法判斷即時部位嗎?
tick沒有其他內建指令可判斷部位嗎?
問題不是它能不能判斷到 部位已成交
而是成交需要時間,還沒有確認成交時,另一個TICK就讓程式又重跑了一次
所以它認為還沒成交,又丟了一次單
把時間用誇張一點的比喻
你在下單,下了一張市價單,但是它要一分後才會知道它有沒有成交
但是10秒後,就收到了另一個報價,你的判斷中你目前是沒有部位的,50秒後你才會知道你有單,所以你又下了另一筆市價單
於是在1分10秒後,你會發現你的部位變成了 二口單
你用異步去抓真實單,就跟用SA去抓MP,意思是一樣的
問題不在有沒有抓到,而是程式執行的當下,收到成交回報了沒有
如果你是丟市價單,就自已記錄部位吧,丟單後就記
不要用內建指令,確認部位是否成交
回測沒問題是因為程式忽略了成交回報的時間差,純粹套用程式邏輯部位所致;
在您回覆後,還以為能透過相關設定(如委託成功後立即以委託價回報成交..)回歸到程式邏輯,讓marketposition=0可供判斷,
但看您最後的開示,似乎任何設定在實際交易時仍存在時間差(系統不採用邏輯部位),而這瞬間足以插進下一筆tick造成重複交易。
無法透過內建的功能簡單設定達成,不免讓人感到失落。
感謝您的耐心解釋~