Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 751

Artyom Trishkin
Модератор
58728
Artyom Trishkin  
Aleksey Vyazmikin:

Да нет же, там, в статье, речь о полноценном управлении оптимизатором из советника через ini файл, а в ini, я думаю, можно не только оптимизацию прописать но и любые настройки, они вроде там сохраняются после последнего запуска тестера в каком либо режиме. Потом уже (в коде советника можно) сохранить шаблон и перекопировать его в другой терминал (на сколько я понял рекомендуется использовать для терминала для работы тестера и советника). Ну и соответственно по окончанию этой процедуры вызвать шаблон, где уже все будет.

Я не читал ту статью.

webpred
5
webpred  
Здравствуйте, только постигаю азы, подскажите если какая функция или какой самый простой способ указать эксперту работать и проверять условия алгоритма на определенном таймфрейме (скажем 5 мин), скажем в момент новой свечи 5 мин, а не при каждом тике. Спасибо
btc.mmd
60
btc.mmd  
Всем привет, кто подскажет,
Существует фибо с настройками по цвету и добавлением линий вне терминала ручной или с авторастяжкой, для МТ4, МТ5 если есть сбросьте. 
Заранее благодарен.
Konstantin Erin
2161
Konstantin Erin  
webpred:
Здравствуйте, только постигаю азы, подскажите если какая функция или какой самый простой способ указать эксперту работать и проверять условия алгоритма на определенном таймфрейме (скажем 5 мин), скажем в момент новой свечи 5 мин, а не при каждом тике. Спасибо

в терминале есть эксперт Moving Average.mq4, и в нем есть строки, попробуйте их (хотя многие делают иначе):

//--- go trading only for first tiks of new bar
   if(Volume[0]>1) return;

germes_88
10
germes_88  

Добрый день! Нужна консультация по индикатору iAO. Возникает разница в показаниях для iAO и значениями на графике.  Происходит сдвиг на 2 бара. Нулевому бару может присваиваться значение 3-го, первому - 4-й. Почему такое может происходить, но не постоянно.


double aoH1[],aoH4[],aoD[];
   ArrayResize(aoH1,6);
   ArrayResize(aoH4,6);
   ArrayResize(aoD,6);
   for(int i=0; i<6; i++)
      {
      aoH1[i]=iAO(Symbol(),PERIOD_H1,i);
      aoH4[i]=iAO(Symbol(),PERIOD_H4,i);
      aoD[i]=iAO(Symbol(),PERIOD_D1,i);
   //   Alert(Symbol(), " H1(",i,")= ",aoH1[i]," Н4(",i,")= ",aoH4[i]," D(",i,")= ",aoD[i]);
      }

Artyom Trishkin
Модератор
58728
Artyom Trishkin  
germes_88:

Добрый день! Нужна консультация по индикатору iAO. Возникает разница в показаниях для iAO и значениями на графике.  Происходит сдвиг на 2 бара. Нулевому бару может присваиваться значение 3-го, первому - 4-й. Почему такое может происходить, но не постоянно.


double aoH1[],aoH4[],aoD[];
   ArrayResize(aoH1,6);
   ArrayResize(aoH4,6);
   ArrayResize(aoD,6);
   for(int i=0; i<6; i++)
      {
      aoH1[i]=iAO(Symbol(),PERIOD_H1,i);
      aoH4[i]=iAO(Symbol(),PERIOD_H4,i);
      aoD[i]=iAO(Symbol(),PERIOD_D1,i);
   //   Alert(Symbol(), " H1(",i,")= ",aoH1[i]," Н4(",i,")= ",aoH4[i]," D(",i,")= ",aoD[i]);
      }

Потому, что вы проверяете бары индикатора с иного таймфрейма, отличного от таймфрейма текущего графика.

Nikolay Khrushchev
21434
Nikolay Khrushchev  
Konstantin Erin:

в терминале есть эксперт Moving Average.mq4, и в нем есть строки, попробуйте их (хотя многие делают иначе):

//--- go trading only for first tiks of new bar
   if(Volume[0]>1) return;

это ошибочный вариант. обьем на открытии свечи не всегда будет равен 1, бывает что равен 2.
верный способ это ориентироваться на время нулевой свечи.

datetime time_bar;
void OnTick() {
   if(time_bar != Time[0]) {
      time_bar = Time[0];
      // анализируем что либо на открытии свечи (закрытии свечи)
      }
   }
germes_88
10
germes_88  
Artyom Trishkin:

Потому, что вы проверяете бары индикатора с иного таймфрейма, отличного от таймфрейма текущего графика.

Но мне нужны именно разные таймфреймы. Это как-то обойти можно?
Artyom Trishkin
Модератор
58728
Artyom Trishkin  
germes_88:
Но мне нужны именно разные таймфреймы. Это как-то обойти можно?

Ну так вы же получаете данные. И получаете их верно. Только минутный бар №1 и часовой бар №1 будут иметь совсем иное время открытия. Ну кроме одного раза - когда время открытия минутного бара совпадает с временем открытия часового - раз в час.

psyman
161
psyman  
Artyom Trishkin:

Можно создать текстовый ini-файл, из которого индикатор и советник будут считывать данные и использовать их в качестве параметров настройки индикатора. Далее создать шаблон с советником и индикатором и вручную или скриптом загружать этот шаблон на график.
Можно просто рисовать в советнике графическими объектами линии индикатора.
Можно ещё что-нибудь придумать.
Можно ... а можно и не париться и вводить вручную, или использовать МТ5, где всё можно :)


Артем посоветуйте каким способом лучше реализовать добавление на график и удаление нескольких индикаторов одновременно.

Я пробовал через назначение горячей клавиши скриптам с ChartIndicatorAdd/ChartIndicatorDelete, но там нельзя делать настройку стиля. 

Сейчас есть идея запилить их кастомами в одном файле, но может есть более лучший вариант?