代码如下:
Params
Numeric N(10);//短均线差
Numeric N1(100);//长短线差
Vars
Series<Numeric> MA;
Series<Numeric> MA1;
Series<Numeric> MA2;
Series<Numeric> MA3;
Numeric zd1;
Numeric zd2;
Numeric zx1;
Numeric zx2;
Numeric jxc;
Numeric cjxcd;
Numeric cjxck;
Events
//此处实现事件函数
//初始化事件函数,策略运行期间,首先运行且只有一次,应用在订阅数据等操作
OnBar(ArrayRef<Integer> indexs)
{
MA=Average(c,5);
MA2=Average(c,10);
MA3=Average(c,30);
data1.MA1=data1.Average(Close[1],60);
PlotNumeric("MA",MA,0,red);
PlotNumeric("MA2",MA2,0,green);
PlotNumeric("MA3",MA3);
PlotNumeric("data1.MA1",data1.MA1);
data1.PlotNumeric("data1.MA1",data1.MA1);
zd1=Max(MA,MA2);
zd2=Max(zd1,MA3);
zx1=Min(MA,MA2);
zx2=Min(zx1,MA3);
jxc=zd2-zx2;//短均线差
cjxcd=zx2-data1.MA1;
cjxck=data1.MA1-zd2;
If(Close[1]>data1.MA1)
{
Buy(1,Open);
}
If(Close[1]<data1.MA1)
{
SellShort(1,Open);
}
If(Close[1]>data1.MA1)
{
BuyToCover(1,Open);
}
If(Close[1]<data1.MA1)
{
Sell(1,Open);
}
}
信号消失的原因,是因为你开仓的次数太多,持仓量过大,
帐户资金不足无法开仓。所以不显示信号了。
需要加上仓位控制减少开仓次数
data1.MA1输出了没问题,信号条件也是满足的,添加的是两个图层,一个是3分钟,一个是15分钟,不知道为什么只显示一个
你好,你可以把Close[1]和data1.MA1都输出,看看信号条件是否满足,我看你的截图只有1个图层,data1应该是无效的吧