在主图平仓K线上显示盈亏数字,平多能显示,平空就不能显示。请高手帮帮忙,谢谢!
Params
Numeric Length(20); //周期
Numeric Offset(2); //标准差倍数
Vars
Series<Numeric> UpLine; //上轨
Series<Numeric> DownLine; //下轨
Series<Numeric> MidLine; //中间线
Numeric Band;
Numeric yld;
Numeric ylk;
Series<Numeric> kcangd;
Series<Numeric> kcangk;
Series<Numeric> zyingd;
Series<Numeric> zyingk;
Events
OnBar(ArrayRef<Integer> indexs)
{
Range[0:DataSourceSize() - 1]
{
MidLine = AverageFC(Close,Length);//中
Band = StandardDev(Close,Length,2);
UpLine = MidLine + Offset * Band; //上
DownLine = MidLine - Offset * Band; //下
PlotNumeric("UpLine",UpLine);
PlotNumeric("DownLine",DownLine);
PlotNumeric("MidLine",MidLine);
}
//----------------------------------------------------多0
If(MarketPosition<>1 and High>=UpLine[1])
{
Buy(0,UpLine[1]);
kcangd=UpLine[1];
}
//--------------------------------------------------------------------------------------多1
If(MarketPosition==1 and Low<=DownLine[1])
{
Sell(0,DownLine[1]);
zyingd=DownLine[1];
yld=IntPart(zyingd-kcangd);
PlotString ("dp1",text(yld),Low-1,Rgb(255,38,38));//盈利数字
}
//-------------------------------------------------------------空0
If(MarketPosition<>-1 and Low<=DownLine[1])
{
SellShort(0,DownLine[1]);
kcangk=DownLine[1];
}
//--------------------------------------------------------------------------------------空1
If(MarketPosition==-1 and High>=UpLine[1] )
{
BuyToCover(0,UpLine[1]);
zyingk=UpLine[1];
ylk=IntPart(kcangk-zyingk);
PlotString ("kp1",text(ylk),High+3,Rgb(255,38,38));//盈利数字
}
Commentary("多盈 "+Text(yld)+" 元");
Commentary("空盈 "+Text(ylk)+" 元");
}
你的空头平仓语句从来就没有被执行到过。当满足空头平仓条件 High>=UpLine[1] 的时候,你的程序在前面就已经执行了“多头开仓”,多头开仓就会自动把你的空头平掉,等程序执行到下面的时候,marketposition已经不等于-1了。
谢谢你的指点。现在以经改好了,多空都能显示盈亏数字了。