Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 811

 
SILVERPRINT:
Mql4 при обращении к индикатору вместо данных тестере выходило последние данные в Mql5 тоже самое?

Ничего не понял. Попробуйте перефразировать и поставить знаки препинания.

 

Все индикаторы созданные методами из стандартной библиотеки надо обновлять в ручную ?

Есть два метода 

RefreshCurrent
Refresh


Я так понял  первый нужен, если необходиммо автоматическое обновление?

А второй, просто Refresh чтобы в ручную, обновить один раз при тике весь массив данных? 

 
SILVERPRINT:

Все индикаторы созданные методами из стандартной библиотеки надо обновлять в ручную ?

Есть два метода 


Я так понял  первый нужен, если необходиммо автоматическое обновление?

А второй, просто Refresh чтобы в ручную, обновить один раз при тике весь массив данных? 


Покажите код, как Вы создаёте индикатор в советнике.

 
Vladimir Karputov:

Ничего не понял. Попробуйте перефразировать и поставить знаки препинания.


В mql4 информация от индикаторов по индексу ноль в тестере выдавала ласт дате из истории. Приходилось ибаршифтить в mql5 тоже самое?

 
SILVERPRINT:

В mql4 информация от индикаторов по индексу ноль в тестере выдавала ласт дате из истории. Приходилось ибаршифтить в mql5 тоже самое?


Перефразируйте. Поставьте знаки препинания. Пишите по русски.

 
Vladimir Karputov:

Покажите код, как Вы создаёте индикатор в советнике.

#include <Indicators\Trend.mqh>
#include <Indicators\Oscilators.mqh>
#include <Indicators\TimeSeries.mqh>

MqlTick infotick;
MqlDateTime currentTime;
CiMA ValueofMA200;
CiMA ValueofMA20;
CiMA ValueofMAHour;
CiATR atr;
CiTime timeh1;
CiTime timeD1;


   sym=_Symbol;
   ValueofMA200.Create(sym,PERIOD_D1,slowma,0,MODE_SMA,PRICE_CLOSE);
   ValueofMA20.Create(sym,PERIOD_D1,fastwma,0,MODE_SMA,PRICE_CLOSE);
   ValueofMAHour.Create(sym,PERIOD_H1,mahours,0,MODE_SMA,PRICE_CLOSE);
   atr.Create(sym,PERIOD_H1,200);
   timeh1.Create(sym,PERIOD_H1);
   timeD1.Create(sym,PERIOD_H1);
   
   timeh1.BufferResize(25);
   timeD1.BufferResize(200);
   
   timeh1.Refresh(PERIOD_H1);
   timeD1.Refresh(PERIOD_D1);

         ValueofMA200.Main(0);
         ValueofMA20.Main(0);
         ValueofMAHour.Main(0);    
         atr.Main(0);
Примерно так
 
SILVERPRINT:
Примерно так

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

 
Vladimir Karputov:

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

А как эти методы работают? что лучше использовать?

RefreshCurrent
Refresh
Я как понял RefreshCurrent затратный метод при каждом тике.
 
SILVERPRINT:

1) А как эти методы работают? 2) Что лучше использовать?


1) Пройдите в редакторе по этому методу (клик средней кнопки мышки на названии метода перекинет Вас в этот метод) - так Вы увидите, КАК работает этот метод. Рецепт универсален: клик средней кнопкой мышки на любом методе или функции перекидывает на сам код функции или метода.

2) На вкус и цвет друзей нет. Кто-то использует создание индикаторов через классы, кто-то через создание хендлов (iMA, iMACD ...).

 
Vladimir Karputov:

1) Пройдите в редакторе по этому методу (клик средней кнопки мышки на названии метода перекинет Вас в этот метод) - так Вы увидите, КАК работает этот метод. Рецепт универсален: клик средней кнопкой мышки на любом методе или функции перекидывает на сам код функции или метода.

2) На вкус и цвет друзей нет. Кто-то использует создание индикаторов через классы, кто-то через создание хендлов (iMA, iMACD ...).


На моей мышке нет средней кнопки, мышь из чистого серебра )).  Скорее всего за годы уже решили мои проблемы с оптимальным вызовом. Мне бы не хотелось при каждом тике весь массив обновлять. 

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