Обсуждение статьи "Кроссплатформенный торговый советник: Временные фильтры"

 

Опубликована статья Кроссплатформенный торговый советник: Временные фильтры:

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

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

Результат теста также показан в приложении к статье (tester_time_days.html). Скриншот последней сделки:

time days last trade


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

Автор: Enrico Lambino

 

Привет,

Спасибо, что поделились этим замечательным решением.

Не могли бы вы объяснить, как мне установить SL/TP при отправке ордера? Вот что я нашел в COrderManager::TradeOpen :

ret=SendOrder(type,lotsize,price,0,0);

Похоже, что SL/TP всегда установлены на 0. Как мне это изменить? Какой-то другой метод должен быть использован для отправки ордера с SL или TP?

 

Это очень странно... Опубликовано так много статей, и ни одна из них не объясняет, как использовать SL, TP. Зачем мне эти временные фильтры, если я не знаю, как установить SL для своей позиции?

Не могли бы вы поделиться хотя бы кусочком кода, демонстрирующим использование стопов, пока не выйдет соответствующая статья? Спасибо.

 

Есть ли метод получения открытого времени торговли/позиции?

 
Привет, mbjen,
mbjen:

Привет,

Спасибо, что поделились этим замечательным решением.

Не могли бы вы объяснить, как мне установить SL/TP при отправке ордера? Вот что я нашел в COrderManager::TradeOpen :

Похоже, что SL/TP всегда установлены на 0. Как мне это изменить? Какой-нибудь другой метод должен быть использован для отправки ордера с SL или TP?

mbjen:

Это действительно странно... Опубликовано так много статей, и ни одна из них не объясняет, как использовать SL, TP. Зачем мне нужны эти временные фильтры, если я не знаю, как установить SL для своей позиции?

Не могли бы вы поделиться хотя бы кусочком кода, демонстрирующим использование стопов, пока не выйдет соответствующая статья? Спасибо.

Честно говоря, это не так просто реализовать. Смотрите Кроссплатформенный эксперт: Стопы.


mbjen:

Есть ли способ получить время открытия сделки/позиции?

В MQL5 его можно получить из COrderInfo или CPositionInfo, но это также зависит от того, используете ли вы режим неттинга или хеджирования. Например, я могу ошибаться, но, насколько я знаю, если вы разворачиваете позицию в режиме неттинга, вы все равно получаете время открытия исходной позиции, а не время, когда вы ее разворачивали. Поэтому я думаю, что отслеживание ордера, который сгенерировал позицию, намного лучше. Что касается версии MQL4, я думаю, вы уже знаете об этом.

 
Enrico Lambino:

В MQL5 вы можете получить его из COrderInfo или CPositionInfo, но это также зависит от того, используете ли вы режим неттинга или хеджирования. Например, я могу ошибаться, но, насколько я знаю, если вы разворачиваете позицию в режиме неттинга, вы все равно получаете время открытия исходной позиции, а не время, когда вы ее разворачивали. Поэтому я думаю, что отслеживание ордера, который сгенерировал позицию, намного лучше. Что касается версии MQL4, я думаю, вы уже знаете об этом.


Да, я знаю об этом. Но в этом случае код будет отличаться для версий MT4 и MT5... Он не будет полностью кроссплатформенным. Собираетесь ли вы реализовать какое-либо решение для этого?

upd. В любом случае это не очень важно. Я могу использовать команду #ifdef для этого.

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

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

 

Отличное решение, мне кажется одно из лучших, может есть люди которые брали себе данный класс за основу, структурировав под себя в более удобном виде для использования, а то тут он встроен в робота и через кучу ссылок и т.д. как то сложно разобраться что к чему там привязано.

Поделитесь если у кого есть чисто класс, без робота.

 
MetaQuotes Software Corp.:

Новая статья Кроссплатформенный эксперт: Опубликованы временные фильтры:

Автор: Энрико Ламбино

Спасибо за вашу работу, она была очень познавательной. Она сэкономила мне несколько дней работы. Пожалуйста, пишите больше!!!