畫線下單功能求解答 [MC]
-
MC用戶求助:
您說的”修改成為bar內開倉,系統的開倉和平倉就不按照之前的想法來開倉了“這句話不是太理解您的意思。
一、您是基于MC自帶的trendline LE和trendline SE進行的修改,但是MC自帶的這個策略是可以實現跌破開多單、突破開空單的。
二、您使用的判斷語句是close<TL_GetValue(TLRef, Date, Time)沒有問題,開啟bar內的情況下,close是實時的價格,當實時價格在趨勢線以下時執行多單開倉。
三、并且您執行的是市價單,所以當條件滿足時就發送市價單并且會立即成交,不會在下一筆tick條件不滿足的情況下取消之前的委托單。
四、代碼中沒有止損語句。?
-
MC回復討論一:
您說的”修改成為bar內開倉,系統的開倉和平倉就不按照之前的想法來開倉了“這句話不是太理解您的意思。
一、您是基于MC自帶的trendline LE和trendline SE進行的修改,但是MC自帶的這個策略是可以實現跌破開多單、突破開空單的。
二、您使用的判斷語句是close<TL_GetValue(TLRef, Date, Time)沒有問題,開啟bar內的情況下,close是實時的價格,當實時價格在趨勢線以下時執行多單開倉。
三、并且您執行的是市價單,所以當條件滿足時就發送市價單并且會立即成交,不會在下一筆tick條件不滿足的情況下取消之前的委托單。
四、代碼中沒有止損語句。?
-
MC回復討論二:
您看下這次的代碼,是增加了止損的,但是·····每根K線上都是止損·····
[IntrabarOrderGeneration = True]
inputs:?
? ? ? ? TLRef( 1 ) ,? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??
? ? ? ? Sstop( 5 ) ;? ?? ?? ?? ?? ?? ?
variables:?
? ? ? ? var0( TL_GetBeginDate( TLRef ) ),?
? ? ? ? var1( TL_GetBeginTime( TLRef ) ),?
? ? ? ? var2( false ) ;
var2 = ( Date = var0 and ( BarType = 2 or ( BarType = 1 and Time >= var1 ) ) )?
or Date > var0 ;
condition1 = var2 and Close < TL_GetValue( TLRef, Date, Time ) ;
if condition1 then
? ? ? ? sellshort next bar at market;
? ? ? ? value1 = Close;
condition2 =??Close > value1 + Sstop;
if condition2 then
? ? ? ? buytocover next bar at market;?
-
MC回復討論三:
抱歉,回復的有點晚!
這個應該是您的觸及壓力線賣空的信號吧,那么您的觸及支撐線做多的信號的代碼應該和做空的代碼很像,猜測應該是對稱的。
一、if condition1 then
? ?? ???sellshort next bar at market;
? ?? ???value1 = Close;
這句語句應該是當條件滿足,然后做空并且將當時的close價格賦值給value1,方便用于計算止損價,但是這句寫錯了,因為value1在if的條件語句之外,是實時更新的,應該寫成如下形式:
if condition1 then begin
? ?? ???sellshort next bar at market;
? ?? ???value1 = Close;
end;
二、由于在開啟bar內交易下,close是實時價格,而您的代碼中value1實質上和close是實時相等的,所以條件condition2在sstop為非負值的情況下永遠返回false,也就是說
if condition2 then
? ?? ???buytocover next bar at market;
語句中的止損永遠不會執行。
三、這部分也是最嚴重的問題,您說您的每根K線都是止損的,問題出在condition1,也就是您做空的條件上,對應的您做多的條件應該是var2 and Close>TL_getvalue(TLRef,date,Time);當價格在壓力線和支撐線之間時,做空的語句會執行,因為做空的條件滿足了,同時也會做多,因為做多的條件也滿足了,這樣就導致了反復進場,同時出場。您需要修改一下您的進場條件。?
-
MC回復討論四:
抱歉,回復的有點晚!
這個應該是您的觸及壓力線賣空的信號吧,那么您的觸及支撐線做多的信號的代碼應該和做空的代碼很像,猜測應該是對稱的。
一、if condition1 then
? ?? ???sellshort next bar at market;
? ?? ???value1 = Close;
這句語句應該是當條件滿足,然后做空并且將當時的close價格賦值給value1,方便用于計算止損價,但是這句寫錯了,因為value1在if的條件語句之外,是實時更新的,應該寫成如下形式:
if condition1 then begin
? ?? ???sellshort next bar at market;
? ?? ???value1 = Close;
end;
二、由于在開啟bar內交易下,close是實時價格,而您的代碼中value1實質上和close是實時相等的,所以條件condition2在sstop為非負值的情況下永遠返回false,也就是說
if condition2 then
? ?? ???buytocover next bar at market;
語句中的止損永遠不會執行。
三、這部分也是最嚴重的問題,您說您的每根K線都是止損的,問題出在condition1,也就是您做空的條件上,對應的您做多的條件應該是var2 and Close>TL_getvalue(TLRef,date,Time);當價格在壓力線和支撐線之間時,做空的語句會執行,因為做空的條件滿足了,同時也會做多,因為做多的條件也滿足了,這樣就導致了反復進場,同時出場。您需要修改一下您的進場條件。
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯系技術人員 QQ: 511411198 進行 有償 編寫!(不貴!點擊查看價格!)
相關文章
-
沒有相關內容