1,上一日收盘价大与五,十,二十日均线,以开盘价开多平空。
2,上一日收盘价小于五,十,二十日均线,以开盘价开空平多。
代码如下,输出的信号有很多不符合的,比如明明不满足条件,却给平多了。请老师给诊断一下。
Params
Numeric da(5);
Numeric db(10);
Numeric dc(20);
Numeric ca(60);
Numeric cb(120);
Numeric cc(250);
Vars
Series<Numeric> MADA;
Series<Numeric> MADB;
Series<Numeric> MADC;
Series<Numeric> MACA;
Series<Numeric> MACB;
Series<Numeric> MACC;
Global Integer Sub; //记录是否订阅layers[2]行情的全局变量
Global Array<Integer> layers; //记录订阅BAR之后返回的图层号
Series<Bool> condition1;
Series<Bool> condition2;
Series<Bool> condition3;
Series<Bool> condition4;
Events
OnInit()
{
Sub = 0;
}
OnBar(ArrayRef<Integer> indexs)
{
MADA=Average(Close,da);
MADB=Average(Close,db);
MADC=Average(Close,dc);
MACA=Average(Close,ca);
MACB=Average(Close,cb);
MACB=Average(Close,cc);
condition1= C[1]>MADA[1] && C[1]>MADB[1] && C[1]>MADC[1];
condition3= C[1]<MADA[1] && C[1]<MADC[1] && C[1]<MADC[1];
condition2= C[1]<MADA[1] && C[1]<MADB[1] && C[1]<MADC[1];
condition4= C[1]>MADA[1] && C[1]>MADC[1] && C[1]>MADC[1];
If(MarketPosition!=1 And condition1)
{
Buy(1,Open);
}
If(MarketPosition==1 And condition2)
{
Sell(1,Open);
}
If(MarketPosition!=-1 And condition3)
{
SellShort(1,Open);
}
If(MarketPosition==-1 And condition4 )
{
BuyToCover(1,Open);
}
}
写两个一样的有什么特殊意义么
condition3= C[1]<MADA[1] && C[1]<MADC[1] && C[1]<MADC[1];
condition4= C[1]>MADA[1] && C[1]>MADC[1] && C[1]>MADC[1];
检查一下你这两句,一个字母一个字母的看。