Скачать MetaTrader 5

#property indicator_type1 DRAW_COLOR_CANDLES

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Что такое социальный трейдинг? Прочти статью и узнай!
Oles Filonenko
584
Oles Filonenko 2014.02.27 10:59 

Приветствую.

Столкнулся с эффектом, который не могу исправить. Подскажите, что нужно сделать для преодоления сего досадного глюка.

Для простоты возьмём исходный код индикатора Хейкен Аши из стандартной поставки терминала. Полностью оставим его без изменений, но добавим пару строк:

...
// ДОБАВИМ ВХОДНОЙ ПЕРЕКЛЮЧАТЕЛЬ
input bool _Show_HA = false; 
...
// ДОБАВИМ ПРОВЕРКУ ПЕРЕКЛЮЧАТЕЛЯ В НАЧАЛО OnCalculate()
if ( _Show_HA ) {
// НУ И ДАЛЕЕ, СОБСТВЕННО, ИСХОДНЫЙ КОД БЕЗ ИЗМЕНЕНИЙ

Теперь если повесить на график эту модификацию, отражающую суть моей проблемы, то пощёлкав по таймфреймам получим вот такую картинку:

https://charts.mql5.com/4/18/eurusd-d1-metaquotes-software-corp-temp-file-screenshot-46157.png

Соответственно вопрос - как избавиться от этого?

P.S. Проблема решена: https://www.mql5.com/ru/forum/21154/page2#comment_783885

Vladimir Karputov
Модератор
46081
Vladimir Karputov 2014.02.27 16:03  
wtvirtual:

Приветствую.

Столкнулся с эффектом, который не могу исправить. Подскажите, что нужно сделать для преодоления сего досадного глюка.

Для простоты возьмём исходный код индикатора Хейкен Аши из стандартной поставки терминала. Полностью оставим его без изменений, но добавим пару строк:

Теперь если повесить на график эту модификацию, отражающую суть моей проблемы, то пощёлкав по таймфреймам получим вот такую картинку:

https://charts.mql5.com/4/18/eurusd-d1-metaquotes-software-corp-temp-file-screenshot-46157.png

Соответственно вопрос - как избавиться от этого?

Поправьте меня, но где в стандартной поставке этот индикатор?

Oles Filonenko
584
Oles Filonenko 2014.02.27 16:35  
barabashkakvn:

Поправьте меня, но где в стандартной поставке этот индикатор?

БазоваяДиректорияТерминала\MQL5\Indicators\Examples\Heiken_Ashi.mq5

Не знаю, есть ли исходник в КаталогеДанных, но в БазовойДиректории есть.

Oles Filonenko
584
Oles Filonenko 2014.02.27 16:41  
Впрочем, зачем искать? Прикрепляю исходник к сообщению.
Файлы:
Vladimir Karputov
Модератор
46081
Vladimir Karputov 2014.02.27 17:45  
wtvirtual:
Впрочем, зачем искать? Прикрепляю исходник к сообщению.
input bool _Show_HA = false;
.
.
.
//+------------------------------------------------------------------+
//| Heiken Ashi                                                      |
//+------------------------------------------------------------------+
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[])
  {
   int i,limit;
if ( _Show_HA ) {  // _Show_HA==false, значит будем всегда выходить из OnCalculate без просчета индикатора
//--- preliminary calculations
   if(prev_calculated==0)
     {
      //--- set first candle
При таком коде, OnCalculate() никогда не произведет расчет индикатора
Oles Filonenko
584
Oles Filonenko 2014.02.27 19:07  
barabashkakvn:
При таком коде, OnCalculate() никогда не произведет расчет индикатора
И что с того? Как это относится к сути моей проблемы?
Vladimir Karputov
Модератор
46081
Vladimir Karputov 2014.02.27 19:10  
wtvirtual:
И что с того? Как это относится к сути моей проблемы?
Для решения проблемы, эту проблему нужно, по крайней мере, увидеть.
Oles Filonenko
584
Oles Filonenko 2014.02.27 19:30  
barabashkakvn:
Для решения проблемы, эту проблему нужно, по крайней мере, увидеть.
Суть проблемы хорошо видна на картинке. Индикатор не следует логике переключателя. Когда переключатель в "трю", хейкен рисует свои свечи. Когда переключатель в "фолз", хейкен всё равно рисует, причём что попало, произвольные данные. Причём только под МТ5. Под МТ4 как и положено - ничего не рисует. Доступно объяснил? :)
Vladimir Karputov
Модератор
46081
Vladimir Karputov 2014.02.27 19:35  
wtvirtual:
Суть проблемы хорошо видна на картинке. Индикатор не следует логике переключателя. Когда переключатель в "трю", хейкен рисует свои свечи. Когда переключатель в "фолз", хейкен всё равно рисует, причём что попало, произвольные данные. Причём только под МТ5. Под МТ4 как и положено - ничего не рисует. Доступно объяснил? :)
У меня при значении флага == false индикатор ничего не рисует - и это логично, так как при флаге == false происходит выход из OnCalculate без единого расчета.
Oles Filonenko
584
Oles Filonenko 2014.02.27 19:53  
barabashkakvn:
У меня при значении флага == false индикатор ничего не рисует - и это логично, так как при флаге == false происходит выход из OnCalculate без единого расчета.
Прочтите ещё раз первый пост. И пощёлкайте по разным ТФ туда-сюда, от Н4 до месяца.
Vladimir Karputov
Модератор
46081
Vladimir Karputov 2014.02.27 20:02  
wtvirtual:
Прочтите ещё раз первый пост. И пощёлкайте по разным ТФ туда-сюда, от Н4 до месяца.

Еще раз - на любом таймфрейме при флаге == false абсолютно ничего не происходит, потому что - смотреть выше. Вам нужно модифицированный индикатор пересохранить под другим именем, а в теле индикатора изменить описание. 

У Вас, вероятно, используется компилированный индикатор, отличный от индикатора приложенного Вами. В общем путаница в именах индикатора.  

123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий