Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 1162

 
Aliaksandr Kryvanos:

Здравствуте всем, у меня вопрос, можно ли на лету изменять параметры индикатора, без открытия окна настроек?

https://www.mql5.com/ru/forum/213718#comment_5624828

Можно ли поменять входные параметры автоматически?
Можно ли поменять входные параметры автоматически?
  • 2017.08.17
  • www.mql5.com
Хочу сделать универсального солдата, который позволил бы, менять входные параметры на ходу, + чтобы советник переинициализовался Информации, по пов...
 
Сергей:

так я его писал... не понимаю почему именно на парах с jpy показывает неправильно... попробуйте в терминале присоединить на любую пару без jpy, а после на пару с jpy, результаты разные...

Нашел, в чем дело - парах с jpy значение Point другое. Взял MarketInfo("СИМВОЛ",MODE_POINT)). заменил шрифт, его размер и цвет. Еще одну ошибку исправил


Файлы:
 
STARIJ:
Нашел, в чем дело - парах с jpy значение Point другое. Взял MarketInfo("СИМВОЛ",MODE_POINT)). заменил шрифт, его размер и цвет. Еще одну ошибку исправил



сюда бы не мешало добавить синхронизацию по времени, так как не всегда тик приходит на все графики одновременно и при смене бара у Вас будут неправильные данные...

просто у меня примерно такая же система и в реале было замечены расхождения в результатах.

Я решил у себя это таки образом -

    BarShift_AUDUSD = iBarShift("AUDUSD",0,Time[1],true); if(BarShift_AUDUSD <= 0) return;
    BarShift_NZDUSD = iBarShift("NZDUSD",0,Time[1],true); if(BarShift_NZDUSD <= 0) return;
    BarShift_USDCAD = iBarShift("USDCAD",0,Time[1],true); if(BarShift_USDCAD <= 0) return;
    BarShift_USDJPY = iBarShift("USDJPY",0,Time[1],true); if(BarShift_USDJPY <= 0) return;

    vol = iMA("AUDUSD",0,13,0,MODE_SMA,PRICE_CLOSE,BarShift_AUDUSD);
    vo2 = iMA("NZDUSD",0,13,0,MODE_SMA,PRICE_CLOSE,BarShift_NZDUSD);
    vo3 = iMA("USDCAD",0,13,0,MODE_SMA,PRICE_CLOSE,BarShift_USDCAD);
    vo4 = iMA("USDJPY",0,13,0,MODE_SMA,PRICE_CLOSE,BarShift_USDJPY);

это синхронизирует все показания остальных графиков по открытому графику - то есть пока на всех графиках не начнётся новый бар...

 
elmucon:
сюда бы не мешало добавить синхронизацию по времени, так как не всегда тик приходит на все графики одновременно и при смене бара у Вас будут неправильные данные...
просто у меня примерно такая же система и в реале было замечены расхождения в результатах.
Я решил у себя это таки образом -
это синхронизирует все показания остальных графиков по открытому графику - то есть пока на всех графиках не начнётся новый бар...

посмотрите внимательно выложенный код. А вообще ставил задачу просто устранить ошибки, помочь Сергею в достижении big profit

 


Подскажите почему значение индикатора iCustom всегда равно 0. Даже на вершинах. Это если получать значения в индикаторе. Тогда как в советнике без проблем. Второй буфер в индикаторе без проблем.


//--------------------------------------------------------------------
#property indicator_separate_window    // Индик. рисуется в основном окне
#property indicator_buffers 2       // Количество буферов
#property indicator_color1 Blue     // Цвет первой линии
#property indicator_color2 Red      // Цвет второй линии
double zz; 
double Buf_0[],Buf_1[];             // Объявление массивов (под буферы индикатора)
//--------------------------------------------------------------------
int init()                          // Специальная функция init()
  {
   SetIndexBuffer(0,Buf_0);         // Назначение массива буферу
   SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
   SetIndexBuffer(1,Buf_1);         // Назначение массива буферу
   SetIndexStyle (1,DRAW_LINE,STYLE_DOT,1);// Стиль линии
   return;                          // Выход из спец. ф-ии init()
  }
//--------------------------------------------------------------------
int start()                         // Специальная функция start()
  {
  
   int i,                           // Индекс бара
       Counted_bars;                // Количество просчитанных баров 
//--------------------------------------------------------------------
   Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
   while(i>=0)                      // Цикл по непосчитанным барам
     {
      zz=iCustom(NULL,0,"Zig_Zag",15,5,5,0,i);
      Buf_0[i]= zz;                 // Значение 0 буфера на i-ом баре
      Buf_1[i]=Low[i];              // Значение 1 буфера на i-ом баре
      i--;                          // Расчёт индекса следующего бара
     }
//--------------------------------------------------------------------
   return;                          // Выход из спец. ф-ии start()
  }
//--------------------------------------------------------------------
 
Александр:

Подскажите почему значение индикатора iCustom всегда равно 0. Даже на вершинах. Это если получать значения в индикаторе. Тогда как в советнике без проблем. Второй буфер в индикаторе без проблем.

Посмотрите, может быть приложенный скрипт Вам подскажет. ЗигЗаг везде, кроме вершин, равен нулю. iCustom - функция для вычисления пользовательского индикатора

Файлы:
 
STARIJ:

Посмотрите, может быть приложенный скрипт Вам подскажет. ЗигЗаг везде, кроме вершин, равен нулю. iCustom - функция для вычисления пользовательского индикатора

 Я специально сказал: -"Даже на вершинах". Т.е на вершинах iCustom должен показывать значения. Что он и делает в советнике. Но не делает в индикаторе. Почему?

 
Александр:

 Я специально сказал: -"Даже на вершинах". Т.е на вершинах iCustom должен показывать значения. Что он и делает в советнике. Но не делает в индикаторе. Почему?

посмотрите выложенный скрипт - может быть найдете ответ на Ваш вопрос. Вообще, с помощью скриптов можно многое проверить, выяснить, уточнить ...
 
STARIJ:
посмотрите выложенный скрипт - может быть найдете ответ на Ваш вопрос. Вообще, с помощью скриптов можно многое проверить, выяснить, уточнить ...
ОК
 
АлександрОК

изучение скриптов, написание скриптов - хороший способ изучать язык и искать ошибки

Причина обращения: