缺少分号
Params
Vars
Numeric MA1;
Numeric MA3;
Events
OnBar(ArrayRef<Integer> indexs)
{
PlotNumeric("MA1",AverageFC(Close,5));
PlotNumeric("MA3",AverageFC(Close,20));
if(CrossOver(MA1,MA3)) PlotBool("金叉",true);
if(MarketPosition<>1) and CrossOver(MA1,MA3));
{
buy(1,Close);
}
if(MarketPosition<>-1)and CrossUnder(MA1,MA3));
{
sellShort(1,Close);
}
}
编译的时候错误 第20行缺少分号。
可是我分号加进去还是一样显示同样的错吴。求大神指导一下。
if(MarketPosition<>1) and CrossOver(MA1,MA3))
多个括号
回复:已解决,多谢。写程序比绣花要困难100倍
回复:编译已经成功,添加到K线图上,没有交易信号。是哪里错了吗?看视频里是有信号的。
回复:Params
Vars
Numeric MA1;
Numeric MA3;
Bool B;
Bool S;
Events
OnBar(ArrayRef<Integer> indexs)
{
MA1 = AverageFC(Close,5);
MA3 = AverageFC(Close,20);
PlotNumeric("MA1",MA1);
PlotNumeric("MA3",MA3);
B = CrossOver(MA1,MA3);
S = CrossUnder(MA1,MA3);
if(B) PlotBool("金叉",true);
if(MarketPosition<>1 and B)
{
buy(1,OPEN);
}
if(MarketPosition<>-1 and S)
{
sellShort(1,OPEN);
}
}
对比一下这组代码和你那组代码的区别,在看一下网上老师讲课的视频你就知道问题差在哪了。
买入卖出的close换成了open,是因为用close会产生信号闪烁
信号闪烁产生原因及处理方法20211104 http://www.tbquant.net/train/239.html
回复:用open的话,回测不是会出现偷价的问题吗?
回复:open是开盘价,出现之后就固定死了,不会变的,怎么可能会出现偷价
回复:用CrossOver(MA1,MA3)和MA1>MA3 And MA1[1]<MA3{1]有没有区别?
回复:@xdqh10180603
没区别