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

 
DC2008:

1. Если упустить проверки, то можно вот так:

2. Да 

3. Вопрос не понятен.

1. Для чего нужны проверки? Если без них меньше ресурсов будет уходить?

2. В mql4 идут имена переменных например:

int start()
  {
   int
   Total,                           // Количество ордеров в окне 
   Tip=-1,                          // Тип выбран. ордера (B=0,S=1)
   Ticket;                          // Номер ордера
   double
   MA_1_t,                          // Значен. МА_1 текущее
   MA_2_t,                          // Значен. МА_2 текущее 
   One_Lot,                         // Стоимость одного лота
   Price,                           // Цена выбранного ордера
   SL,                              // SL выбранного ордера 
   TP;                              // TP выбранного ордера
   bool 
   Ans  =false,                     // Ответ сервера после закрытия
   Cls_B=false,                     // Критерий для закрытия  Buy
   Cls_S=false,                     // Критерий для закрытия  Sell

В каком разделе mql5 перечислить данные переменные, которые выше в коде что находятся в mql4 в int start?

 Глобальные переменные задаются до int start. Весь код советника взят из учебника здесь https://с.mql4.com/book

 
forexman77:

1. Для чего нужны проверки? Если без них меньше ресурсов будет уходить?

2. В mql4 идут имена переменных например:

В каком разделе mql5 перечислить данные переменные, которые выше в коде что находятся в mql4 в int start?

 Глобальные переменные задаются до int start. Весь код советника взят из учебника здесь https://с.mql4.com/book

1. Для надёжной работы советника на реале.

2. Это локальные переменные и Вы можете их скопировать в функцию OnTick, которая заменяет start() из четвёрки.

Однако, хотелось бы Вас предупредить: торговые функции переносить один в один НЕльзя!

 
DC2008:

1. Для надёжной работы советника на реале.

2. Это локальные переменные и Вы можете их скопировать в функцию OnTick, которая заменяет start() из четвёрки.

Однако, хотелось бы Вас предупредить: торговые функции переносить один в один НЕльзя!

Вы имеете ввиду, что в пятерке некоторые переменные по другому считаются? Извините, но в mql5 вообще никак пока не смыслю и не совсем могу Вас понять. Можно в качестве примера, почему нельзя переносить один в один функции из mql4. Есть ли на форуме ветка для совсем чайников?)

Пробую вставить код:

datetime iTimeMQL4(string symbol,int tf,int index)
{
   if(index < 0) return(-1);
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   datetime Arr[];
   if(CopyTime(symbol, timeframe, index, 1, Arr)>0)
        return(Arr[0]);
   else return(-1);
}

 в void OnTick() ошибки выдает:

 TFMigrate' - функция не определена ('TFMigrate' - function not defined)

 неявное преобразование перечисление (implicit enum conversion)

Пробовал в int OnInit() тоже ошибки. Что делаю не так?

mql5 в глобальные переменные заносим флаги, тикеты, стоп и профит лосы и прочее, что нужно хранить вне основного кода, то есть принцип тот же что и mql4?

 
forexman77:

Вы имеете ввиду, что в пятерке некоторые переменные по другому считаются? Извините, но в mql5 вообще никак пока не смыслю и не совсем могу Вас понять. Можно в качестве примера, почему нельзя переносить один в один функции из mql4. Есть ли на форуме ветка для совсем чайников?)...

Плюньте Вы на четвёрку и не переводите "тупо" строчку за строчкой, а начните "плясать от печки"! В кодобазе и в стандартной поставке от MQ для пятёрки очень много примеров и готовых советников. Если это для Вас "высшая математика", то закажите советник в разделе "Работа".

Теперь ответы на Ваши вопросы:

  1. Скопируйте из статьи функцию TFMigrate, она там в самом начале.
  2. Насчёт переменных, то принцип тот же.
 
DC2008:

Плюньте Вы на четвёрку и не переводите "тупо" строчку за строчкой, а начните "плясать от печки"! В кодобазе и в стандартной поставке от MQ для пятёрки очень много примеров и готовых советников. Если это для Вас "высшая математика", то закажите советник в разделе "Работа".

Теперь ответы на Ваши вопросы:

  1. Скопируйте из статьи функцию TFMigrate, она там в самом начале.
  2. Насчёт переменных, то принцип тот же.
Пробую занести Вашу функцию 
int HourMQL4(){MqlDateTime tm;TimeCurrent(tm);return(tm.hour);};
в void OnTick(), требует занести ее в глобальные 'HourMQL4' - function can be declared only in the global scope. Ее правда туда необходимо занести? Если заношу никаких ошибок. Точка с запятой после фигурной скобки нужна?
 
Как определить текущее время в минутах от начала дня? 

Придумал так:

datetime  vrema=TimeCurrent(MqlDateTime{int hour;});
int tek_vrema= vrema*60;
не уверен на счет первой строки на предмет, правильности кода.
 
forexman77:
Пробую занести Вашу функцию  в void OnTick(), требует занести ее в глобальные 'HourMQL4' - function can be declared only in the global scope. Ее правда туда необходимо занести? Если заношу никаких ошибок. Точка с запятой после фигурной скобки нужна?

Функцию в функцию включать нельзя. 

 
forexman77:
Как определить текущее время в минутах от начала дня? 

Придумал так:

не уверен на счет первой строки на предмет, правильности кода.

Вот так правильно:

   MqlDateTime tm;
   TimeCurrent(tm);
   int tek_vrema=tm.hour*60;
 
Добрый день, скажите пожалуйста индикатор или эксперт который уведомлял звуковым сигналом после формировании модели свечей как в картинке. Тоесть звуковой сигнал был после 7 противоположных свечей, или 6 свечей, чтобы этот номер можно было менять. Спасибо.
 
DC2008:

Вот так правильно:

Спасибо огромное! Работает.

Объясните логику mql5. В mql4, чтобы определить время в часах используется  int Hour(), в пятерке такой константы нет, насколько я понял.

1.Как программа распознает, что мы спрашиваем время в часах? Предполагаю, что из MqlDateTime?

2.Чтобы добавить текущее время в минутах к текущему времени в часах, то есть узнать текущее время в минутах, конструкция будет такой:

 MqlDateTime tm;
 TimeCurrent(tm);
 int tek_vrema=tm.hour*60+tm.min;

 

Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура даты
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура даты
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура даты - Документация по MQL5
Причина обращения: