//+------------------------------------------------------------------+//| подсчет пересечений Ma .mq4 |//| Copyright 2017, MetaQuotes Software Corp. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright "Copyright 2016, MetaQuotes Software Corp."#property link "https://www.mql5.com"#property version "1.00"#property strictextern int Баров = 500; // Баров для подсчета пересечений МАextern int MA_1 =10;extern int MA_2 =100;void OnTick(){ int Бар, Счетчик; double MA_1_Предыдущая, MA_2_Предыдущая, MA_1_Следующая, MA_2_Следующая; ObjectsDeleteAll(); // Удалить вертикальные линии for(Счетчик=0, Бар=0; Бар<Баров; Бар++) // Начинаем с послнего бара { MA_1_Предыдущая = iMA(Symbol(),PERIOD_M5,MA_1,0,MODE_SMA,PRICE_CLOSE,Бар+1); MA_1_Следующая = iMA(Symbol(),PERIOD_M5,MA_1,0,MODE_SMA,PRICE_CLOSE,Бар); MA_2_Предыдущая = iMA(Symbol(),PERIOD_M5,MA_2,0,MODE_SMA,PRICE_CLOSE,Бар+1); MA_2_Следующая = iMA(Symbol(),PERIOD_M5,MA_2,0,MODE_EMA,PRICE_CLOSE,Бар); if((MA_1_Предыдущая>=MA_2_Предыдущая && MA_1_Следующая<=MA_2_Следующая) || (MA_1_Предыдущая<=MA_2_Предыдущая && MA_1_Следующая>=MA_2_Следующая)) { Счетчик++; Alert(Счетчик, " Бар = ", Бар, " T = ",Time[Бар]); // Создать вертикальную линию ObjectCreate( (string)Счетчик+"_"+(string)Бар,OBJ_VLINE,0,Time[Бар],0); if(Счетчик == 5) break; // 5 линий есть - выход } }}