Скачать MetaTrader 5

Обсуждение статьи "Рецепты MQL5 - Мультивалютный советник и работа с отложенными ордерами на MQL5"

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
MetaQuotes Software Corp.
Модератор
182649
MetaQuotes Software Corp.  

Опубликована статья Рецепты MQL5 - Мультивалютный советник и работа с отложенными ордерами на MQL5:

На этот раз рассмотрим создание мультивалютного советника, торговый алгоритм которого строится на работе с отложенными ордерами Buy Stop и Sell Stop. Схему будем строить для внутридневной торговли/тестов. В статье будут рассмотрены следующие вопросы:

  • Торговля в указанном временном диапазоне. Сделаем так, чтобы можно было указать время начала и окончания торговли. Например, это может быть временной диапазон во время европейской или американской торговых сессий. Конечно же, будет возможность подобрать наилучший временной диапазон во время оптимизации параметров эксперта.
  • Установка/модификация/удаление отложенных ордеров.
  • Обработка торговых событий: проверка закрытия последней позиция по Тейк Профит или Стоп Лосс, контроль истории сделок на каждом символе.\

Рецепты MQL5 - Мультивалютный советник и работа с отложенными ордерами на MQL5

Автор: Anatoli Kazharski

Комбинатор
16032
Комбинатор  

По времени.

Часов не всегда хватает, минуты тоже надо. Например если открытие закрытие рынка в дробное время.

Ну и вот эта функция вызывает вопросы -- через полночь торговать надобится намного чаще, чем минуты

bool IsInTradeTimeRange(int symbol_number)
  {
//--- Если включена торговля во временном диапазоне
   if(TradeInTimeRange[symbol_number])
     {
      //--- Структура даты и времени
      MqlDateTime last_date;
      //--- Получим последние данные даты и времени
      TimeTradeServer(last_date);
      //--- Вне разрешенного временного диапазона
      if(last_date.hour<StartTrade[symbol_number] ||
         last_date.hour>=EndTrade[symbol_number])
         return(false);
     }
//--- В разрешенном временном диапазоне
   return(true);
  }
Anatoli Kazharski
58159
Anatoli Kazharski  
TheXpert:

По времени.

Часов не всегда хватает, минуты тоже надо. Например если открытие закрытие рынка в дробное время.

Ну и вот эта функция вызывает вопросы -- через полночь торговать надобится намного чаще, чем минуты

Да, согласен. Попробую потом изобразить, в какой-нибудь новой схеме.

Тогда наверное вместо перечислений нужно сделать строку, где пользователь сам указывает время. Например: "9 : 35". Иначе список параметров расширяется ещё тремя параметрами (в схеме статьи) для указания минут.

Было бы здорово, если бы была удобная штатная возможность указывать время. Сейчас есть datetime, нужно ещё сделать time. ) 

revers45
203
revers45  

Фактически сплошной программный код, ИМХО как статья это не катит, скорее это для раздела Code Base.

Anatoli Kazharski
58159
Anatoli Kazharski  
revers45:

Фактически сплошной программный код, ИМХО как статья это не катит, скорее это для раздела Code Base.

Ну что же. Удачной работы тогда. Пишите и выкладывайте всё в Code Base. ;)
Andrey Khatimlianskii
56501
Andrey Khatimlianskii  
revers45:

Фактически сплошной программный код, ИМХО как статья это не катит, скорее это для раздела Code Base.

Такие статьи удобны для изучения языка.

Проще читать и текст и код, и сразу смотреть иллюстрации, чем отдельно скроллить статью, а отдельно коды из разных файлов.

 

Но соглашусь, что не хватает какой-то описательной части. Концепции и основных моментов реализации в виде обычного текста. 

Anatoli Kazharski
58159
Anatoli Kazharski  
komposter:

Такие статьи удобны для изучения языка.

Проще читать и текст и код, и сразу смотреть иллюстрации, чем отдельно скроллить статью, а отдельно коды из разных файлов.


Но соглашусь, что не хватает какой-то описательной части. Концепции и основных моментов реализации в виде обычного текста. 

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

Даже не представляю, что можно было бы ещё добавить в статью. Но ничего страшного. ))

Alexander
155
Alexander  
  Зачем нагорожено столько кода для нескольких символов? Не проще ли по одному эксперту поставить на разных символах, по-моему так будет и программа быстрее исполняться. В связи с этим, уважаемый автор, не подскажите  как преобразовать эти функции для работы с отложенными ордерами, чтобы они были только для одного символа, кроме способа поставить в переменной  #define NUMBER_OF_SYMBOLS один?
Anatoli Kazharski
58159
Anatoli Kazharski  
kuva:
Зачем нагорожено столько кода для нескольких символов?

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

kuva:
Не проще ли по одному эксперту поставить на разных символах, по-моему так будет и программы быстрее исполняться. В связи с этим, уважаемый автор, не подскажите  как преобразовать этот код, чтобы он был работал только на  одном символе, кроме способа поставить в переменной  #define NUMBER_OF_SYMBOLS один?

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

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий