第一個問題:
vMP=marketposition;
if vMP[1]=0 and vMP=1 then
var1=lowest(L,3);
?當(dāng)持倉有空倉變?yōu)閷崅}的時候,取此時3根bar的 最低點。 這個代碼有個問題是,當(dāng)持倉平掉后,VAR1仍然會取到,我想 要的是 持倉變?yōu)榱銜r,VAR1 返回值 為空值,請問這個怎么改進呢?
2、我想取到開倉后到 所有持倉平掉的過程中的盈虧。比如?開倉 1 ?再加倉 2手, 減 2手,等等 (1+2-2+2-2。。。)之前用PosTradeProfit 不行,QQ群老師得寫個代碼,讓我在論壇發(fā)帖,麻煩大神給寫一個.
?
第三個問題,我是從采用bar內(nèi)交易,我想限制單個BAR 開倉和平倉的信號 數(shù),這個代碼怎么寫呢
?
回復(fù)第一個問題:
vMP=marketposition;
if vMP[1]=0 and vMP=1 then
var1=lowest(L,3)
else if vmp=0 then
var1=0;
MC中的變量有一個特點,比如,當(dāng)變量var1在編號為10的bar上被賦值為20時,若在后續(xù)不再重新賦值給var1時,那么var1在編號為11、12及后續(xù)所有的bar上取的值都是20,所以,當(dāng)您不再使用var1變量時(并且該變量的值會對后續(xù)有影響時),需要將變量var1重新賦值一下。
?
回復(fù)您的第二個問題:
您的問題涉及兩個點:1.判斷加倉減倉平倉操作;2.計算當(dāng)前未平倉部位的盈虧
1.var: mp(0);
mp=marketposition*currentcontracts;
{mp=-2時,表示當(dāng)前空倉2手;當(dāng)mp=5時,表示當(dāng)前多倉5手,通過對比mp[1]與mp是否相等來判斷加減倉平倉操作}
2.當(dāng)前未平倉部位的盈虧主要由兩個部位組成,一個是平倉盈虧(使用關(guān)鍵字positionprofit),另一個是未平倉盈虧(openpositionprofit)。可以使用如下代碼:
var: pf(0);
?
pf=positionprofit+openpositionprofit;
3.基于以上兩點,代碼如下:
var: mp(0),pf(0);
mp=marketposition*currentcontracts;
if mp<>mp[1] then
pf=positionprofit+openpositionprofit;
print("2 ",positionprofit+openpositionprofit-pf);? //輸出基于當(dāng)根bar的收盤價計算的當(dāng)前未平倉部位盈虧與pf的差。
?
回復(fù)您的第二個問題:
您的問題涉及兩個點:1.判斷加倉減倉平倉操作;2.計算當(dāng)前未平倉部位的盈虧
1.var: mp(0);
mp=marketposition*currentcontracts;
{mp=-2時,表示當(dāng)前空倉2手;當(dāng)mp=5時,表示當(dāng)前多倉5手,通過對比mp[1]與mp是否相等來判斷加減倉平倉操作}
2.當(dāng)前未平倉部位的盈虧主要由兩個部位組成,一個是平倉盈虧(使用關(guān)鍵字positionprofit),另一個是未平倉盈虧(openpositionprofit)。可以使用如下代碼:
var: pf(0);
?
pf=positionprofit+openpositionprofit;
3.基于以上兩點,代碼如下:
var: mp(0),pf(0);
mp=marketposition*currentcontracts;
if mp<>mp[1] then
pf=positionprofit+openpositionprofit;
print("2 ",positionprofit+openpositionprofit-pf);? //輸出基于當(dāng)根bar的收盤價計算的當(dāng)前未平倉部位盈虧與pf的差。