Индикатор работает некорректно. Уровни правильно отражаются только на истории, при появлении новых баров они не отслеживаются.
На рисунке: красная линия, момент, когда был индикатор прикреплен к графику. Слева от нее все правильно, справа - неправильно.
Индикатор работает некорректно. Уровни правильно отражаются только на истории, при появлении новых баров они не отслеживаются.
На рисунке: красная линия, момент, когда был индикатор прикреплен к графику. Слева от нее все правильно, справа - неправильно.
После последнего обновления MT5 этот индикатор сломался. Он просто печатает точки на максимуме и минимуме каждой свечи.
Что не так?
После последнего обновления MT5 этот индикатор сломался. Он просто печатает точки на максимуме и минимуме каждой свечи.
Что не так?
Да, у меня сборка 1016. Я снова скачал индикатор и перекомпилировал его с 0 ошибками и 0 предупреждениями. По-прежнему не работает, просто показывает точки на максимуме и минимуме.
Но это не страшно, теперь я использую Fibo retracement или рисую уровни s/r самостоятельно.
Да, у меня сборка 1016. Я снова скачал индикатор и перекомпилировал его с 0 ошибками и 0 предупреждениями. По-прежнему не работает, просто показывает точки на максимуме и минимуме.
Но это не страшно, теперь я использую Fibo retracement или рисую уровни s/r самостоятельно.
Вы можете загрузить график?
Конечно, вот он:
Скриншоты торговой платформы MetaTrader
MetaQuotes Software Corp., MetaTrader 5, демо
temp_file_screenshot_27398.png

Попробуйте это
//+------------------------------------------------------------------+ //|Поддержка и сопротивление.mq5 | //|Copyright © 2005, Дмитрий | //|Обновление декабрь 2014 | //+------------------------------------------------------------------+ #property copyright "Copyright © 2006, MetaQuotes Software Corp." #property link "http://www.metaquotes.net/" //---- версия #property version "1.01" //---- индикатор в окне графика #property indicator_chart_window //---- используются 2 индикаторных буфера #property indicator_buffers 2 //---- используются 2 графических графика #property indicator_plots 2 //+----------------------------------------------+ //| Опции медвежьего индикатора | //+----------------------------------------------+ //---- тип рисунка как стрелка #property indicator_type1 DRAW_ARROW //---- Пурпурный цвет #property indicator_color1 Magenta //---- Ширина линии #property indicator_width1 1 //---- Support label #property indicator_label1 "Support" //+----------------------------------------------+ //| Опции бычьего индикатора | //+----------------------------------------------+ //---- тип рисунка как стрелка #property indicator_type2 DRAW_ARROW //---- Цвет лайма #property indicator_color2 Lime //---- Ширина линии #property indicator_width2 1 //---- Ярлык сопротивления #property indicator_label2 "Resistance" //+----------------------------------------------+ //| Входные параметры индикатора | //+----------------------------------------------+ //вход int iPeriod=70; //период ATR //+----------------------------------------------+ //---- объявление динамических массивов, используемых в качестве индикаторных буферов double SellBuffer[]; double BuyBuffer[]; //--- int StartBars; int FRA_Handle; //+------------------------------------------------------------------+ //| Пользовательская функция инициализации индикатора | //+------------------------------------------------------------------+ void OnInit() { //---- инициализация глобальных переменных StartBars=6; //---- получить хэндл индикатора iFractals FRA_Handle=iFractals(NULL,0); if(FRA_Handle==INVALID_HANDLE)Print(" INVALID_HANDLE FRA"); //---- установить SellBuffer в качестве индикаторного буфера SetIndexBuffer(0,SellBuffer,INDICATOR_DATA); //---- установите indxex начального бара для построения графика PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,StartBars); //---- установите метку для поддержки PlotIndexSetString(0,PLOT_LABEL,"Support"); //---- установить код стрелки PlotIndexSetInteger(0,PLOT_ARROW,159); //---- установите индексацию как временные ряды ArraySetAsSeries(SellBuffer,true); //---- установить BuyBuffer в качестве индикаторного буфера SetIndexBuffer(1,BuyBuffer,INDICATOR_DATA); //---- установите индекс начального бара для построения графика PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,StartBars); //--- установите метку для сопротивления PlotIndexSetString(1,PLOT_LABEL,"Resistance"); //---- установить код стрелки PlotIndexSetInteger(1,PLOT_ARROW,159); //---- установите индексацию в виде временных рядов ArraySetAsSeries(BuyBuffer,true); //---- установить точность IndicatorSetInteger(INDICATOR_DIGITS,_Digits); //---- краткое название индикатора string short_name="Support & Resistance"; IndicatorSetString(INDICATOR_SHORTNAME,short_name); //---- } //+------------------------------------------------------------------+ //| Пользовательская функция итерации индикатора| //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[] ) { //---- проверка баров if(BarsCalculated(FRA_Handle)<rates_total || rates_total<StartBars) return(0); //---- объявление локальных переменных int to_copy,limit,bar; double FRAUp[],FRALo[]; //---- расчет количества баров для копирования //---- и начальный индекс (предел) для цикла пересчета баров if(prev_calculated>rates_total || prev_calculated<=0)// проверка первого вызова { to_copy=rates_total; // бары для копирования limit=rates_total-StartBars-1; // начальный индекс } else { to_copy=rates_total-prev_calculated+3; // бары для копирования limit=rates_total-prev_calculated+2; // начальный индекс } //---- установите индексацию как временные ряды ArraySetAsSeries(FRAUp,true); ArraySetAsSeries(FRALo,true); ArraySetAsSeries(high,true); ArraySetAsSeries(low,true); //---- копирование данных индикатора в массивы if(CopyBuffer(FRA_Handle,0,0,to_copy,FRAUp)<=0) return(0); if(CopyBuffer(FRA_Handle,1,0,to_copy,FRALo)<=0) return(0); //---- главный цикл for(bar=limit; bar>=0; bar--) { BuyBuffer[bar] = 0.0; SellBuffer[bar] = 0.0; if(FRAUp[bar] != DBL_MAX) BuyBuffer[bar] = high[bar]; else BuyBuffer[bar] = BuyBuffer[bar+1]; if(FRALo[bar] != DBL_MAX) SellBuffer[bar] = low[bar]; else SellBuffer[bar] = SellBuffer[bar+1]; } //---- return(rates_total); } //+------------------------------------------------------------------+
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Support and Resistance:
Индикатор Support and Resistance отображает уровни поддержки и сопротивления на основе индикатора Fractals.
Уровни поддержки строятся на уровне фракталов вниз, а уровни сопротивления - фракталов вверх.
Автор: Nikolay Kositsin