Обсуждение статьи "Автоматизация торговых стратегий на MQL5 (Часть 24): Система торговли на пробое лондонской сессии с риск-менеджментом и трейлинг-стопами" - страница 2

 
Где в коде вы собирались использовать переменную "MaxOpenTrades"? Она определена, но на нее никогда не ссылаются.
 
Allan Munene Mutiiria #:

Что касается второй проблемы, то в статье это объясняется, но если предположить, что ваша проблема связана с плохими тестовыми данными и дать подсказку, то когда диапазон находится в процессе расчета, вы всегда будете видеть статус "Calculating...", пока не будет достаточно данных для установки сессии лондонского диапазона или любой другой сессии, которую вы определите во входных данных. Предполагая, что вы используете настройки по умолчанию, с предлондонским временем 3, и ваше время из общего скриншота 13 февраля, 2 бара после 22:00, что составляет 2*15 минут = 30, следовательно, давая 22:30, находится вне времени расчета диапазона, поэтому данные на панели должны быть видны, так как предыдущий установленный диапазон все еще в игре, если первая сессия еще не найдена, и будет очищен, когда расчет диапазона будет достигнут с полуночи. См. ниже:

Вам может понадобиться следующая логика для определения диапазона

И как он устанавливается.

Смотрите изображение ниже, хотя мы не знаем год вашего тестирования, мы возьмем 2025, если это 2020, как в вашем случае, у нас нет качественных данных для этого, так что в любом случае мы используем 2025 и, таким образом, расчет диапазона должен начинаться в полночь.


Из изображения видно, что данные в 23:55 все еще нетронуты. Однако, когда наступит полночь, мы должны сбросить данные. Смотрите ниже.

Вы можете видеть, что мы сбросили данные в полночь для другого расчета диапазона. На самом деле, когда расчет диапазона завершен, визуализация может помочь вам понять, что произошло на самом деле. Например, в вашем случае при использовании настроек по умолчанию мы увидим столбики raneg с 03:00 до 08:00, потому что именно это мы и определили. См. ниже:

Надеюсь, это еще раз прояснит ситуацию. Вы можете настроить все в соответствии с вашим стилем торговли. Чтобы избежать проблем, с которыми вы столкнулись, рекомендуется использовать надежные тестовые данные. Спасибо.

Большое спасибо за исчерпывающий ответ.

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

Я добавил сообщения в логах в свою версию; из них видно, что панель не обновляется, когда диапазон слишком большой или слишком маленький, так что это может быть частью причины.

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

Большое спасибо за помощь.

 
Kyle Young Sangster #:

Большое спасибо за исчерпывающий ответ.

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

Я добавил сообщения в логах в свою версию; из них видно, что панель не обновляется, когда диапазон слишком большой или слишком маленький, так что это может быть частью причины.

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

Большое спасибо за помощь.

Конечно. Добро пожаловать.

 

Спасибо, что поделились с нами своим кодом.

Поскольку я сам писал сессионно-зависимых советников, могу сказать, что код работает только в том случае, если ваш брокер всегда находится в часовом поясе GMT+1, а также использует британское летнее время.

Во всех остальных случаях время начала сессии не будет работать. Почему? Потому что лондонская сессия начинается в 8:00 утра по британскому времени. Зимой это 8:00 по Гринвичу, а летом - 7:00 по Гринвичу.

TimeCurrent() возвращает не ваше местное время, а всегда время с торгового сервера.