麻烦大家帮看看,为什么我的EA在测试历史数据的时候,居然没有一个成交的。EA格式如下面:
int OnInit()
{
return(INIT_SUCCEEDED);
}
void OnDeinit(const int reason)
{
}
void OnTick()
{
double EMA10的15分钟图=iMA(Symbol(),PERIOD_M15,10,0,MODE_EMA,PRICE_CLOSE,0);
double EMA10的30分钟图=iMA(Symbol(),PERIOD_M30,10,0,MODE_EMA,PRICE_CLOSE,0);
double EMA20的15分钟图=iMA(Symbol(),PERIOD_M15,20,0,MODE_EMA,PRICE_CLOSE,0);
double EMA20的30分钟图=iMA(Symbol(),PERIOD_M30,20,0,MODE_EMA,PRICE_CLOSE,0);
double K=iStochastic(Symbol(),PERIOD_M15,9,3,3,MODE_SMA,0,MODE_MAIN,0);
double K1=iStochastic(Symbol(),PERIOD_M15,9,3,3,MODE_SMA,0,MODE_MAIN,1);
double D=iStochastic(Symbol(),PERIOD_M15,9,3,3,MODE_SMA,0,MODE_SIGNAL,0);
double D1=iStochastic(Symbol(),PERIOD_M15,9,3,3,MODE_SMA,0,MODE_SIGNAL,1);
int come=0;
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if(OrderComment()==Symbol()+"buy")
{
come=1;
}
}
if(come==0)
{
if((EMA10的15分钟图>EMA20的15分钟图)&&(EMA10的30分钟图>EMA20的30分钟图))//buy
{
if((K>D)&&(K1<D1))
{
OrderSend(Symbol(),OP_BUY,0.1,Bid,30,Bid-500,1000,Symbol()+"buy",1,0,Green);
}
}
if((EMA10的15分钟图<EMA20的15分钟图)&&(EMA10的30分钟图<EMA20的30分钟图))//sell
{
if((K<D)&&(K1>D1))
{
OrderSend(Symbol(),OP_SELL,0.1,Ask,30,Ask-500,1000,Symbol()+"sell",1,0,Green);
}
}
}
}
}
|