您的多頭策略和空頭策略是相互對應(yīng)的,以下對您的多頭策略提出幾個疑問:
第一、“K線收盤價第二次上破120日 (變量)且21日上穿120日均線(macd金叉) 或出現(xiàn)紅柱”,這個是您的開倉條件,那么請問這進(jìn)行條件判斷順序是什么,即先判斷哪兩個條件,再判斷哪個條件?“(K線收盤價第二次上破120日 (變量)且21日上穿120日均線(macd金叉)) 或出現(xiàn)紅柱”這樣的判斷順序是否是您的真實(shí)意思?“K線收盤價第二次上破120日 (變量)且21日上穿120日均線(macd金叉)”這兩個同時滿足的情況很少,即使出現(xiàn)也并不代表趨勢來臨
第二、“開倉價位于”破位價“,這個建議直接使用市價單委托;若要避免滑價或者需要更接近破位價,可以使用bar內(nèi)模式。
第三、”止損是開倉后的前期低點(diǎn)“,這句話很模糊,前期低點(diǎn)在這里是如何定義的?
?
您的多頭策略和空頭策略是相互對應(yīng)的,以下對您的多頭策略提出幾個疑問:
第一、“K線收盤價第二次上破120日 (變量)且21日上穿120日均線(macd金叉) 或出現(xiàn)紅柱”,這個是您的開倉條件,那么請問這進(jìn)行條件判斷順序是什么,即先判斷哪兩個條件,再判斷哪個條件?“(K線收盤價第二次上破120日 (變量)且21日上穿120日均線(macd金叉)) 或出現(xiàn)紅柱”這樣的判斷順序是否是您的真實(shí)意思?“K線收盤價第二次上破120日 (變量)且21日上穿120日均線(macd金叉)”這兩個同時滿足的情況很少,即使出現(xiàn)也并不代表趨勢來臨
第二、“開倉價位于”破位價“,這個建議直接使用市價單委托;若要避免滑價或者需要更接近破位價,可以使用bar內(nèi)模式。
第三、”止損是開倉后的前期低點(diǎn)“,這句話很模糊,前期低點(diǎn)在這里是如何定義的?
?
1、K線收盤價第二次上破120日 (變量)這個是首要前提條件,在這個基礎(chǔ)上,出現(xiàn)金叉或紅柱即可開倉。同時出現(xiàn)的情況是不多,也并不是代表趨勢的來臨,但是這段周期內(nèi)的行情可做。
2、可以用Bar內(nèi)模式
3、前期低點(diǎn)也可以理解為上破120日最近的一個1小時K線的低點(diǎn)。
?
//代碼
input: pricevalue(close), fastlength(21), slowlength(120), lot(1), profit(0.1), drawback(20);
var: fast_ma(0), slow_ma(0), loss(0);
fast_ma=averagefc(pricevalue,fastlength);? //快速均線,這里是21日
slow_ma=averagefc(pricevalue,slowlength);? //慢速均線,這里是120日
condition1=close cross above slow_ma;? ?//收盤價上破120日均線
condition2=fast_ma cross above slow_ma;? //快速均線上慢速均線
condition3=close>open;? //紅柱,這里您可能需要定義一下紅柱的長度,如果只是收盤價大于開盤價可能太簡單了
if condition1 and (condition2 or condition3) then begin
? ? ? ? buy lot shares next bar at market;? //這里使用的是市價單,當(dāng)進(jìn)場條件滿足時,同時將當(dāng)根bar的最低價存儲在loss中
? ? ? ? loss=low;
end;
sell next bar at loss stop;? ?//止損出場
condition1=close cross under slow_ma;
condition2=fast_ma cross under slow_ma;
condition3=close<open;
if condition1 and (condition2 or condition3) then begin
? ? ? ? sellshort lot shares next bar at market;
? ? ? ? loss=high;
end;
if marketposition=-1 then
? ? ? ? buytocover next bar at loss stop;
//上面這部分是空頭策略,我將多頭進(jìn)場與空頭進(jìn)場兩部分寫在一個信號中了,對比多頭部分看一下空頭部分
if marketposition=0 then
? ? ? ? setpercenttrailing(lot*close*profit*bigpointvalue,drawback)
else setpercenttrailing(lot*entryprice*profit*bigpointvalue,drawback);
{這部分是通過setpercenttrailing進(jìn)行止盈,但是有一點(diǎn),您說10%的盈利,如果是根據(jù)進(jìn)場價的10%來衡量盈利,這個盈利可能太大了,這個關(guān)鍵字的用法見帖子http://forums.icetech.com.cn/for ... &extra=page%3D1}
其它說明:
第一、MC中的策略一般會分成兩個信號,而這里寫在一起了。
第二、您的策略多頭進(jìn)場部分有說明”K線收盤價第二次上破120日均線“,抱歉,這個地方之前忘記問了,所以并沒有將這個想法加到上面的策略中去,請問第二次是如何衡量的?如果第三次、第四次出現(xiàn)是否就不進(jìn)場了?
第三、以上只是初步的策略,您看一下有什么地方需要修改的。
?
//代碼
input: pricevalue(close), fastlength(21), slowlength(120), lot(1), profit(0.1), drawback(20);
var: fast_ma(0), slow_ma(0), loss(0);
fast_ma=averagefc(pricevalue,fastlength);? //快速均線,這里是21日
slow_ma=averagefc(pricevalue,slowlength);? //慢速均線,這里是120日
condition1=close cross above slow_ma;? ?//收盤價上破120日均線
condition2=fast_ma cross above slow_ma;? //快速均線上慢速均線
condition3=close>open;? //紅柱,這里您可能需要定義一下紅柱的長度,如果只是收盤價大于開盤價可能太簡單了
if condition1 and (condition2 or condition3) then begin
? ? ? ? buy lot shares next bar at market;? //這里使用的是市價單,當(dāng)進(jìn)場條件滿足時,同時將當(dāng)根bar的最低價存儲在loss中
? ? ? ? loss=low;
end;
sell next bar at loss stop;? ?//止損出場
condition1=close cross under slow_ma;
condition2=fast_ma cross under slow_ma;
condition3=close<open;
if condition1 and (condition2 or condition3) then begin
? ? ? ? sellshort lot shares next bar at market;
? ? ? ? loss=high;
end;
if marketposition=-1 then
? ? ? ? buytocover next bar at loss stop;
//上面這部分是空頭策略,我將多頭進(jìn)場與空頭進(jìn)場兩部分寫在一個信號中了,對比多頭部分看一下空頭部分
if marketposition=0 then
? ? ? ? setpercenttrailing(lot*close*profit*bigpointvalue,drawback)
else setpercenttrailing(lot*entryprice*profit*bigpointvalue,drawback);
{這部分是通過setpercenttrailing進(jìn)行止盈,但是有一點(diǎn),您說10%的盈利,如果是根據(jù)進(jìn)場價的10%來衡量盈利,這個盈利可能太大了,這個關(guān)鍵字的用法見帖子http://forums.icetech.com.cn/for ... &extra=page%3D1}
其它說明:
第一、MC中的策略一般會分成兩個信號,而這里寫在一起了。
第二、您的策略多頭進(jìn)場部分有說明”K線收盤價第二次上破120日均線“,抱歉,這個地方之前忘記問了,所以并沒有將這個想法加到上面的策略中去,請問第二次是如何衡量的?如果第三次、第四次出現(xiàn)是否就不進(jìn)場了?
第三、以上只是初步的策略,您看一下有什么地方需要修改的。