我想编写一个函数,该函数将返回上一个移动平均交叉的价格。如果有人在这里帮助我以mql4代码实现这一目标,我将非常高兴。
答案 0 :(得分:-1)
int manyCandles=1000, crossOverCandle;
double theOpenPrice;
for(int lastCandle=1; lastCandle<manyCandles; lastCandle++){
crossOverCandle=0;
double firstMA = iMA(_Symbol,_Period,maPeriod,0,MODE_SMA,PRICE_CLOSE,lastCandle);
double secondMA = iMA(_Symbol,_Period,maPeriod,0,MODE_SMA,PRICE_CLOSE,lastCandle);
double firstMAlast = iMA(_Symbol,_Period,maPeriod,0,MODE_SMA,PRICE_CLOSE,lastCandle+1);
double secondMAlast = iMA(_Symbol,_Period,maPeriod,0,MODE_SMA,PRICE_CLOSE,lastCandle+1);
if(secondMAlast>firstMAlast && secondMA<firstMA){
theOpenPrice = Open[lastCandle];
crossOverCandle = lastCandle;
Break;
}
} Comment(“最后一次交换发生在”,lastCandle“蜡烛上,价格为”,theOpenPrice);
您可以尝试上面的代码。