为什么我代码写的很清楚开盘价在上轨上或下轨下禁止开仓 加载策略却屡次在布林带轨道外开仓呢?这个问题怎么解决 请老师指教
Range [0:0]
{
//计算均线
If(Length1 > 0) MA5 = AverageFC(Close, Length1);
If(Length2 > 0) MA10 = AverageFC(Close, Length2);
PlotNumeric("MA5", MA5);
PlotNumeric("MA10", MA10);
// 计算布林带(简单移动平均)
MiddleBand = Average(Close, Length);
StdDev = StandardDev(Close, Length, 2);// 计算标准差
UpperBand = MiddleBand + Width * StdDev;// 计算布林上轨
LowerBand = MiddleBand - Width * StdDev;// 计算布林下轨
PlotNumeric("data[0].MiddleBand", data[0].MiddleBand);
PlotNumeric("data[0].UpperBand", data[0].UpperBand);
PlotNumeric("data[0].LowerBand", data[0].LowerBand);
data[0].bld1sk = data[0].MA5[1]>data[0].MA5[2] and data[0].Open<data[0].UpperBand;
data[0].bld1xk = data[0].MA5[1]<data[0].MA5[2] and data[0].Open>data[0].LowerBand;
finalCondB = data[0].bld1sk and data[1].bldsk;
finalCondS = data[0].bld1xk and data[1].bldxk;
// ============ ============ ============ 开多仓& 开空仓 ============ ============ ============
If(MarketPosition == 0 and finalCondB)
{
Buy(Lots, Open);
my_lentry_price = Open;
}
Else If(MarketPosition == 0 and finalCondS)
{
SellShort(Lots, Open);
my_sentry_price = Open;
}
}
//5分钟图层
Range [1:1]
{
//计算均线
If(Length1 > 0) data[1].MA5 = AverageFC(Close, Length1);
If(Length2 > 0) data[1].MA10 = AverageFC(Close, Length2);
// 计算布林带(简单移动平均)
data[1].MiddleBand = Average(Close, Length);
data[1].StdDev = StandardDev(Close, Length, 2);// 计算标准差
data[1].UpperBand = data[1].MiddleBand + Width * data[1].StdDev;// 计算布林上轨
data[1].LowerBand = data[1].MiddleBand - Width * data[1].StdDev;// 计算布林下轨
PlotNumeric("data[1].MiddleBand", data[1].MiddleBand);
PlotNumeric("data[1].UpperBand", data[1].UpperBand);
PlotNumeric("data[1].LowerBand", data[1].LowerBand);
data[1].bldsk = data[1].MA5[1]>data[1].MA5[2] and data[1].Open<data[1].Upperband;
data[1].bldxk = data[1].MA5[1]<data[1].MA5[2] and data[1].Open>data[1].Lowerband;
}