您的問題主要涉及兩個(gè)步驟:第一、確定每天白盤開盤的第一根bar;第二、統(tǒng)計(jì)每天開倉(cāng)次數(shù)
第一、condition1=(date[1]<>date and time>=900) or (time[1]<900 and time>=900);這段判斷白盤第一根bar的條件適合所有的股票、內(nèi)盤期貨。
第二、統(tǒng)計(jì)每天開倉(cāng)次數(shù)的代碼如下:
var: mp(0);
mp=marketposition*currententries;
{當(dāng)mp為-2時(shí),表示空倉(cāng)進(jìn)場(chǎng)次數(shù);當(dāng)mp為3時(shí),表示多倉(cāng)進(jìn)場(chǎng)次數(shù)}
第三、結(jié)合以上兩個(gè)地方,代碼如下:
var: mp(0), flag(0);
mp=marketposition*currententries;
condition1=(date[1]<>date and time>=900) or (time[1]<900 and time>=900);
if condition1 then
flag=0;
if (mp[1]=0 and mp<>0) or mp[1]*mp<0??then
flag=flag+absvalue(mp)
else if mp[1]*mp>0 then
flag=flag+maxlist(absvalue(mp)-absvalue(mp[1]),0);
第四、"=="在MC中表示為"=","!="在MC中表示為"<>",MarketPosition[1]不能這樣使用,這個(gè)關(guān)鍵字不能用于回溯。
?
您的問題主要涉及兩個(gè)步驟:第一、確定每天白盤開盤的第一根bar;第二、統(tǒng)計(jì)每天開倉(cāng)次數(shù)
第一、condition1=(date[1]<>date and time>=900) or (time[1]<900 and time>=900);這段判斷白盤第一根bar的條件適合所有的股票、內(nèi)盤期貨。
第二、統(tǒng)計(jì)每天開倉(cāng)次數(shù)的代碼如下:
var: mp(0);
mp=marketposition*currententries;
{當(dāng)mp為-2時(shí),表示空倉(cāng)進(jìn)場(chǎng)次數(shù);當(dāng)mp為3時(shí),表示多倉(cāng)進(jìn)場(chǎng)次數(shù)}
第三、結(jié)合以上兩個(gè)地方,代碼如下:
var: mp(0), flag(0);
mp=marketposition*currententries;
condition1=(date[1]<>date and time>=900) or (time[1]<900 and time>=900);
if condition1 then
flag=0;
if (mp[1]=0 and mp<>0) or mp[1]*mp<0??then
flag=flag+absvalue(mp)
else if mp[1]*mp>0 then
flag=flag+maxlist(absvalue(mp)-absvalue(mp[1]),0);
第四、"=="在MC中表示為"=","!="在MC中表示為"<>",MarketPosition[1]不能這樣使用,這個(gè)關(guān)鍵字不能用于回溯。
?
if 開倉(cāng)條件 and( )then begin
if 條件 then buy;
if 條件 then sellshort;
end;
1// 括號(hào)里 控制語(yǔ)句 ?需要滿足 之前沒有過開倉(cāng),需指定是當(dāng)日第一筆開倉(cāng),當(dāng)日只開一次
2//括號(hào)里 控制語(yǔ)句 ?之前必須要有過一次倉(cāng)位,需指定是當(dāng)日第二筆開倉(cāng),當(dāng)日只開一次倉(cāng);
3//括號(hào)里控制語(yǔ)句是 當(dāng)日總開倉(cāng)次數(shù)小于2條件下 先滿足buy條件則則開多,先滿足sellshort則先開 sellshort . 可以開2次倉(cāng)
MarketPosition;
//之前倉(cāng)位是多頭部位,以平掉,當(dāng)前無(wú)持倉(cāng)?
//當(dāng)前倉(cāng)位是 持有多頭部位