我想在EA中调用上一次底部数值,不想用zig指标,就用ma指标判断底部.
底部表达式:当前的ma值>5天前的ma值 && 5天前的ma值<10天前的ma值.
这是当前底部的判断和d值:
int start()
{
int d=0;
double maCurrent=iMA(NULL,0,5,0,MODE_SMA,PRICE_LOW,0);
double ma1Previous=iMA(NULL,0,5,0,MODE_SMA,PRICE_LOW,4);
double ma2Previous=iMA(NULL,0,5,0,MODE_SMA,PRICE_LOW,9);
...............
for(int i=0;i<limit;i++)
{
if(maCurrent>ma1Previous && ma1Previous<ma2Previous)
{
d=ma1Previous ;
}
break;
}
我想知道如何调用上次底部d的值?请帮忙写下,谢谢!
纠正一下,break放到if里:
for(int i=0;i<limit;i++)
{
if(maCurrent>ma1Previous && ma1Previous<ma2Previous)
{
d=ma1Previous ;
break;
}
}
我想知道如何调用上次底部d的值和当前的d值比较?
int d0=0,d1=0;
double dd0=0,dd1=0;
double maCurrent=iMA(NULL,0,5,0,MODE_SMA,PRICE_LOW,0);
double ma1Previous=iMA(NULL,0,5,0,MODE_SMA,PRICE_LOW,4);
double ma2Previous=iMA(NULL,0,5,0,MODE_SMA,PRICE_LOW,9);
...............
for(int i=0;i<limit;i++)
{
maCurrent=iMA(NULL,0,5,0,MODE_SMA,PRICE_LOW,i);
ma1Previous=iMA(NULL,0,5,0,MODE_SMA,PRICE_LOW,i+4);
ma2Previous=iMA(NULL,0,5,0,MODE_SMA,PRICE_LOW,i+9);
if(maCurrent>ma1Previous && ma1Previous<ma2Previous)
{
d0=i;
dd0=ma1Previous ;
break;
}
}
既然知道了底部,再往前搜就是上次的了
for(int i=d0+10;i<limit;i++)
{
maCurrent=iMA(NULL,0,5,0,MODE_SMA,PRICE_LOW,i);
ma1Previous=iMA(NULL,0,5,0,MODE_SMA,PRICE_LOW,i+4);
ma2Previous=iMA(NULL,0,5,0,MODE_SMA,PRICE_LOW,i+9);
if(maCurrent>ma1Previous && ma1Previous<ma2Previous)
{
d1=i;
dd1=ma1Previous ;
break;
}
}