BarsSinceEntry應用 [MC]
-
MC用戶求助:
關于BarsSinceEntry應用,資料中說:
? ?
BarsSinceEntry
(PosBack)參數說明: PosBack —— 數值表達式,用來指定部位:
???????????????0 —— 未平倉部位;
???????????????1 —— 上一個平倉部位(最后一個平倉部位);
???????????????2 —— 上二個平倉部位,依次類推。若
PosBack
?未指定,則預設為未平倉部位。? ? 如果我要求上次平倉到現在建倉的K線不是同一個K線,是不是就是如下寫法呢?
? ??Value2=BarsSinceEntry(1);
? ?if marketposition=0 ?and var6=0 and count<=1 ?and condition40 ?and Value2>0 ?then ?begin
? sellshort ?lots shares next bar at round((Open+ma),0) stop;
? 很遺憾的是我如此寫進去時,發現沒信號。請老師指教
?
-
MC回復討論一:
關于您的信號加載到圖表上為什么沒有信號,可能是因為您對于barssinceentry這個關鍵字的使用不當導致的,當然也有可能是其它的問題(您沒有在這個帖子上貼出來),在敘述我對您的代碼的問題之前,先來敘述一下這個關鍵字的意思,看下面的例子:
圖中,分別在currentbar=51的時候進場,在currentbar=54的時候出場,在currentbar=57的時候進場;之所以,barssinceentry(1)在currentbar=54時的才有值,值為3(代碼上一個已經平倉部位中第一筆進場的bar到當根bar的距離)是因為之前有已經平倉部位的產生(即在currentbar為54時全部出場,從而產生了已經平倉部位);而barssinceentry(0)在currentbar為51和57時才有值,值為0(當前部位的進場的bar到當根bar的距離正好是0)。而您的代碼中,限制barssinceentry(1)>0,在圖表上沒有任何信號時,也就是沒有任何歷史平倉部位時,barssinceentry(1)始終是0,從而barssinceentry(1)>0始終是false,這個限制了您的信號始終不會有進場;應該是先有進場,才有歷史平倉部分,然后barssinceentry(1)>0才可能是true
?
-
MC回復討論二:
也就是說這詞不可用于回測,但可實盤
?
-
MC回復討論三:
抱歉,說了那么多,讓您誤解了!
問題在于您的進出場條件判斷需要修改一下,這個關鍵字可以用于回測和實盤中。您的代碼更正如下:
if maxpositionsago=1 then
value2=1
?
else value2=barssinceentry(1);
??if marketposition=0 ?and var6=0 and count<=1 ?and condition40 ?and Value2>0 ?then ?begin
?
? sellshort ?lots shares next bar at round((Open+ma),0) stop;
?
-
MC回復討論四:
抱歉,說了那么多,讓您誤解了!
問題在于您的進出場條件判斷需要修改一下,這個關鍵字可以用于回測和實盤中。您的代碼更正如下:
if maxpositionsago=1 then
value2=1
?
else value2=barssinceentry(1);
??if marketposition=0 ?and var6=0 and count<=1 ?and condition40 ?and Value2>0 ?then ?begin
?
? sellshort ?lots shares next bar at round((Open+ma),0) stop;
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯系技術人員 QQ: 511411198 進行 有償 編寫!(不貴!點擊查看價格!)
相關文章
-
沒有相關內容