遇到SetDollarTrailing 畫面上顯示成交,但卻沒丟單到後台
本帖最後由 wldtw2008 於 16-7-4 16:25 編輯這個問題害得我好苦啊! 請參考下面這個討論,他是在5.5/6.0的版本的問題,但我現在用9.0依然還是有
http://www.multicharts.com.tw/di ... rd=1&D_ID=2&SN=1535
因為沒有權限發文在那邊,所以在這邊發文。看看有沒有人跟我一樣遇到相同的問題。
狀況描述:
[*]台指,10秒K棒,沒有手續費與滑價,進場訊號不寫了,就把他當作是開盤進場做多,主要是出場行為是用移動停損(停利):
if time>845 then begin
setdollarTrailing(5000);
end;
[*]今天我一開盤0845就成交做多在8636,而今天開盤後一路往下,沒有高於我的進場價,因此追蹤停損應該就是一值保持在8636-25 = 8611才對。
但我觀察MC下單紀錄,竟然最早是掛在Sell Stop@8605,數字不對就算了,今天MC竟然一路調整STOP價格,STOP@8605 -> STOP@8606 ->STOP@8607 -> STOP@8608 一路往高掛。
但是今天開盤後,價格都是往下,沒有一根比前面高,從頭到尾沒有上到我的入場價以上啊,為什麼trailing價格會越來越高?
[*]然後更詭異的是,在8:51:35就在價格往下要觸到停損價8608的時候(還沒碰到,那時候我觀察到價格是在8609~8610),MC的TrackingCenter就顯示這個STOP單被取消了、而同時圖面上竟然顯示平倉(顯示$ Trailing Stop 看圖面上箭頭是在8609)。
也就是,MC跟後台說取消STOP單。但在畫面上卻顯示平倉。那麼出場單就這樣不見了,今天也就再也沒有訊號了。我只能手動去期貨商網站下SELL平掉他。
*這邊就跟上面貼的那個討論區裡面描述的行為一樣,圖面顯示成交,但後台從頭到尾都沒有往後台送單。
**詭異處為,明明MC掛的是SELL STOP @ 8608,又沒有碰到,為什麼圖面顯示 TrailingStop@8609
***又,就算瞬間改價到STOP @ 8609好了,那也要往後台丟單,為什麼在TrackingCenter上顯示Cancel?
[*]我有試著調整程式碼,我發現當我把setdollarTrailing 從if中移出去,畫面上正常的停損在8611、放到if中 就怪怪停損在8609@8:51:40。但是當我把資料重新load後,竟然放到if中或放到if外面,都一樣了。(這個我下次抓圖給大家看)
這問題出現好幾天了,每每都是我在9點10點檢查部位時才發現該停損出場的根本沒送單,氣死人了!
不曉得各位先進有遇過類似的問題嗎?!有沒有推薦的解法?是不是真的就是SET類的命令不能放到IF中??
這種症狀並不是每次都會發生,有時正常下單,有時沒執行下單
MC 9.1解決了這個問題
但凱衛不升級9.1,就只能自己跟原廠買一套英文版9.1來用 http://www.multicharts.com.tw/dis/dis_Content.aspx?rd=1&D_ID=1&SN=27587
這篇的2樓,有個連結,可以下載替代語法的模組,在凱衛MC9.1出來之前,先拿來用吧 我已經把setdollartrailing 從if 中移出,經過這幾天的測試是都沒問題,我會繼續觀察並來此回報。 到現在不再發生了,看來真的是放在if中造成的。 反正就是set 之類的命令不能夾在IF中間,比方說你不能寫下面這樣:
if t > 845 and t<1345 then begin
setstoploss(20*bigpointvalues); //日盤20點停損
end else begin
setstoploss(30*bigpointvalues); //夜盤30點停損
end;
要這樣改寫就可以避免這種怪問題
if t > 845 and t<1345 then begin
value77=20; //日盤20點停損
end else begin
value77=30; //夜盤30點停損
end;
setstoploss(value77*bigpointvalues);
頁:
[1]