percenttrailing止盈語句,如何按at market方式下單 [MC]
-
MC用戶求助:
percenttrailing止盈語句代碼如下:
[IntrabarOrderGeneration=true];
input:target(10),Percent(30);//,BS(NumericSimple);
vars:intrabarpersist mp(0),intrabarpersist flagB(0),intrabarpersist flagS(0), intrabarpersist valueh(0),intrabarpersist valuel(999999);
once cleardebug;
mp=marketposition;
if mp<>mp[1] then
begin?
? ? ? ? valueh=0;
? ? ? ? valuel=999999;
? ? ? ? flagb=0;
? ? ? ? flags=0;
end;
if mp>0 and valueh<=h then
valueh=h;
if mp<0 and valuel>=l then
valuel=l;
if (mp>0 and valueh-entryprice>target) then
flagB=1;
if mp<0 and entryprice-valuel>target then
flags=1;?
if mp=1 and flagB=1 then
sell("L_trailing") next bar at valueh-Percent*(valueh-entryprice)/100 stop;
if mp=-1 and flagS=1 then
buytocover("S_trailing") next bar at??valuel+percent*(entryprice-valuel)/100 stop;
我在實際使用時遇到了一個情況:市場價格變動太快,導致止盈指令發出后沒有成交。
我的訴求是用at market的方式下單,請問老師應該如何改動上述語句才能達到目的,謝謝!(來自舊論壇客戶,spacehk)
?
-
MC回復討論一:
您的策略有兩個小問題需要討論一下:
一、您開啟的是bar內交易,所以止盈的速度已經很快了,因為從flagB(或者flags)被賦值為1到執行止盈語句是在同一筆tick內,但是會在下一筆tick發出止盈委托單,會有哪么一點延遲;然而,正如您所說,您交易的商品合約的行情波動很大,所以兩筆tick之間的時間延遲也很小。您可以使用MC關鍵字setpercenttrailing(profit,percent),進行實時的止盈;該指令和您的止盈思想是一致的,從指定的最大獲利拉回特定的百分比后,平倉部分或者所有合約,profit參考是該指令在被觸發之前必須達到的獲利;它會在當筆tick內就會即時觸發,它的實時性可以避免一定的延遲。
二、您的策略使用的是stop單類型,因為內盤只有大連商品交易所支持stop單,我不太清楚您交易的商品合約是否支持stop單類型;如果不支持stop單,那么您需要使用本地洗價轉市價或者限價,這樣會有一定的網絡延遲;如果該交易所也不支持市場單,而本地洗轉限價在市場波動很大的情況下有可能成交不了,您可以選擇本地洗轉漲跌停限價,這樣發到交易所會立即成交;但是,由于外盤交易所多數沒有漲跌停限價,不可選此項,那么您可以在MCtrader設置中選擇”假回報“+”追價“,MCtrader設置詳細看鏈接http://forums.icetech.com.cn/forum.php?mod=viewthread&tid=471&highlight=mctrader?
-
MC回復討論二:
@evenrich
非bar內模式,非精細資料歷史回測沒有問題!
但是這段代碼在非bar內模式下有一個小問題:因為非bar內模式下,策略的計算是每根bar收盤時進行的,并且判斷委托單執行條件是否滿足,而這段代碼中是需要判斷多頭開倉以來的最高價與進場價之差是否大于目標價格(以多頭為例),然后再委托追蹤止損單,但是對“多頭開倉以來的最高價與進場價之差是否大于目標價格”不會太及時,因為這個條件可能在bar的形成過程中就滿足了,導致判斷延遲。
?
-
MC回復討論三:
當然可以的,帖子”MC回測邏輯及條件單(包括set關鍵字)的執行邏輯“中有詳細介紹哦
?
-
MC回復討論四:
當然可以的,帖子”MC回測邏輯及條件單(包括set關鍵字)的執行邏輯“中有詳細介紹哦
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯系技術人員 QQ: 511411198 進行 有償 編寫!(不貴!點擊查看價格!)
相關文章
-
沒有相關內容