//+------------------------------------------------------------------+ //| Рост_Parabolcв_советнике_Каждый_День_M5_NEW.mq4 | //| Copyright 2019, MetaQuotes Software Corp. | //| https://www.mql5.com | #property version "1.00" #property strict datetime PrevTime; input double step; input double maximum; input bool Grafik; //--- double OPEN, Parab_Price; double curlow = 0.0, curhigh = 0.0, lasthigh = 0.0, lastlow = 0.0; datetime curlow_time = 0.0, curhigh_time = 0.0, lasthigh_time = 0.0, lastlow_time = 0.0; int X_UP, X_DWN; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { if(Time[0] > PrevTime) { PrevTime = Time[0]; OPEN = NormalizeDouble(Open[0], Digits); //--- Parab_Price = iSAR(NULL, 0, step, maximum, 1); if(OPEN < Parab_Price) { if(!X_DWN) { lasthigh = High[iHighest(NULL, 0, MODE_HIGH, X_UP + 3, 0)]; lasthigh_time = Time[iHighest(NULL, 0, MODE_HIGH, X_UP + 3, 0)]; if(Grafik) Grafik(); } X_DWN++; X_UP = 0; } if(OPEN > Parab_Price) { if(!X_UP) { lastlow = Low[iLowest(NULL, 0, MODE_LOW, X_DWN + 3, 0)]; lastlow_time = Time[iLowest(NULL, 0, MODE_LOW, X_DWN + 3, 0)]; if(Grafik) Grafik(); } X_UP++; X_DWN = 0; } } lastlow =NormalizeDouble(lastlow , Digits); lasthigh = NormalizeDouble(lasthigh, Digits); //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ // Print(" lastlow = ", lastlow, " lasthigh = ", lasthigh, " Parab_Price = ", Parab_Price, " X_UP = ", X_UP, " X_DWN = ", X_DWN); // Print(" lastlow_time = ", lastlow_time, " lasthigh_time = ", lasthigh_time); } //+------------------------------------------------------------------+ int LowCounter; datetime Предидущ; //+------------------------------------------------------------------+ void Grafik() { // Print(" Прошли "); string ArrowName = " ZZ " + LowCounter; //--- //--- // if(lastlow_time != Предидущ) { ObjectCreate(ArrowName, OBJ_TREND, 0, lastlow_time, lastlow, lasthigh_time, lasthigh); Предидущ = lastlow_time; ObjectSet(ArrowName, OBJPROP_COLOR, Red); ObjectSet(ArrowName, OBJPROP_ARROWCODE, 167); ObjectSet(ArrowName, OBJPROP_RAY, false); LowCounter++; WindowRedraw(); } } //+------------------------------------------------------------------+