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

 
msl271170:   Научите, как остановить работу советника и запустить при появлении новой свечи.

в терминале есть пример советника Moving Average.mq4 - в нем так:

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

В другом видел:

datetime LastTime;  // Время начала тика для побарного режима
void OnTick()
{
  if (Time[0] == LastTime) return;
  LastTime = Time[0];
........
}
 
msl271170:   Я так понимаю, в MT5 другой язык программирования. Мой код там работать не будет?

Используйте   MT4Orders - библиотека для MetaTrader 5

 

Я пытаюсь разобраться с CopyTime, но не понимаю почему DayData[] не заполняется (хочу увидеть дату округлённую до целого дня). Ниже добавил пример, если кто заметит ошибку,пожалуйста, укажите или поправьте:

datetime Data[3]={D'2017.09.22 08:05',D'2017.09.22 10:05',D'2017.09.22 12:05'};
int count=0;
datetime DayData[];
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   count++;
   
   if(count<4)
     {
      int copied=CopyTime(NULL,PERIOD_D1,Data[count-1],1,DayData);
      ArrayResize(DayData,count);
      Print("0 Data[",count-1,"]= ",Data[count-1]," DayData[count-1]= ",DayData[count-1]); // 1 control
     }

   for(int i=0; i<ArraySize(DayData);i++)
      Print("1 Data[",i,"]= ",Data[i]," DayData[i]= ",DayData[i]);  // 2 control

  }
//+------------------------------------------------------------------+
 

Целая страница пустых постов (ошибка форума). Пришлось удалить.

 

Всем доброго времени суток!


Постепенно вникаю в mql4 по литературе Евгения Жданова.

В ней описан пример использования Envelopes, Zigzag.

Там описаны функции iCustom и iEnvelopes для получения данных индикаторов Envelopes и ZigZag.

Подскажите где можно найти информацию и выучить данные - чем описывать другие индикаторы? для начала классику - RSI и Bollinger Bands.

Может есть ссылка на ресурс где я смогу разобраться какими функциями какие индикаторы описываются? 

Или все это есть в справке?

Заранее искренне благодарен!

 

смотрите iRsi и iBands

https://docs.mql4.com/ru/function_indices

Список функций языка MQL4 - Справочник MQL4
Список функций языка MQL4 - Справочник MQL4
  • docs.mql4.com
Читает из файла типа CSV строку одного из форматов: "YYYY.MM.DD HH:MM:SS", "YYYY.MM.DD" или "HH:MM:SS" - и преобразует ее в значение типа datetime
 
Taras Slobodyanik:

смотрите iRsi и iBands

https://docs.mql4.com/ru/function_indices


Огромное вам спасибо!


Взял акваланг, пошел на погружение!

 

Есть еще такой вопрос.

Прописан советник

Если ZigZag меньше двух Envelopes - открыть бай.

Если ZigZag больше двух Envelopes - открыть селл.

Далее если ордер открыт советником -  модифицировать ордер на такой то тейк и такой то стоп.

В компиляции ошибок нет.

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

Это какая то ошибка в коде может иметь место?

Либо это особенность работы тестера такая? В настройках выбираю "использовать дату" - и с какой бы даты я его бы не гонял - всегда первый ордер в покупку который не модифицируется. Далее все в продажу которые прекрасно модифицируются и отлично отрабатывают.

Нигде пока не нашел информации про это.

Спасибо за уделенное внимание!

 

Почему тестер выдает различные результаты при

extern bool Tral =true;

...

void OnTick()

{

    if (Tral)Trailing();....

и если Tral не выносить во внешние переменные, а просто использовать туже функцию при тех же переменных:

void OnTick()

{

   Trailing();


 
RichLux:

Почему тестер выдает различные результаты при ....

Попробуйте :

input bool Tral =true;

... или вам действительно нужно extern ?