Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Я изучил старую ветку того обсуждения. Там народ старался придумать совершенный и универсальный способ определения закрытия рынка, совершенно не заботясь эффективностью и экономией. А ведь это предлагается делать на каждом тике!
Я замерил - один только вызов IsTradeAllowed(_Symbol, time) в 2.5 раза дольше, чем вычисление, что сейчас N часов субботы. Стандартное расписание мы знаем, а исключения (праздники) мы заметим по ошибке "market closed" и установим флаг. Этот флаг сбросим в OnTick().
Это не работает.
Что именно не работает? И у кого? Не хочу тянуть за язык. Но у меня описанная стратегия работает давно. Со времён, когда пришлось очень ужиматься в рамки недорогого и ограниченного в ресурсах VPS.
На нагрузку на VPS это, конечно, прямого влияния не оказывает, но занимать слабые ресурсы в выходные жалко.
Что именно не работает? И у кого? Не хочу тянуть за язык. Но у меня описанная стратегия работает давно. Со времён, когда пришлось очень ужиматься в рамки недорогого и ограниченного в ресурсах VPS.
На нагрузку на VPS это, конечно, прямого влияния не оказывает, но занимать слабые ресурсы в выходные жалко.
Вот:
Вторая форма вызова возвращает информацию о возможности торговли для заданного символа в указанное время.
bool IsTradeAllowed(
const string symbol // символ
datetime tested_time // время
);
Хотя да, в вашем случае нужны только выходные, так что она вам подойдёт, но если нужно узнать в будние дни, то она не работает
Наверное, я плохо объясняю (да, я не разжёвываю). Но я как раз против использования IsTradeAllowed и др. (что предлагалось в старом обсуждении), потому что обращения к терминалу, а тем более к серверу - дорогая операция.
А разве нельзя ее допустим запускать периодически и узнать будет ли разрешена торговля через час/сутки/неделю?
Ну можно посмотреть вот в сторону SymbolInfoSessionTrade
Зачем? Заложите в эксперт знание, что рынок открыт (к примеру, для большинства символов форекса) с понедельника с 0X:00 до субботы 0Y:00 (в зависимости от летнего/зимнего времени и брокера). Для простоты можно взять с запасом в час, чтобы не учитывать эти моменты. Ну, проработает он лишний час...
Конечно, именно это не принципиально важная тема, тут много процессора не сэкономишь. Просто стратегия избегания лишних обращений к системным функциям терминала и сервера - хороший способ оптимального кодинга.
Универсальных решений нет и это все знают, даже разработчики.
Это как один из вариантов:
Да ладно... Давно уже придумали как выкрутиться
https://www.mql5.com/ru/forum/5831/page6#comment_6531956
Зачем? Заложите в эксперт знание, что рынок открыт (к примеру, для большинства символов форекса) с понедельника с 0X:00 до субботы 0Y:00 (в зависимости от летнего/зимнего времени и брокера). Для простоты можно взять с запасом в час, чтобы не учитывать эти моменты. Ну, проработает он лишний час...
Конечно, именно это не принципиально важная тема, тут много процессора не сэкономишь. Просто стратегия избегания лишних обращений к системным функциям терминала и сервера - хороший способ оптимального кодинга.
Иногда это критично, и даже 5 минут критично. Нет свойства узнать, что рынок закрыт 1,5,10 и тд. минут назад
Это самое оптимальное:
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Как выключить таймер когда рынок закрыт?
Taras Slobodyanik, 2019.01.23 15:50
а как узнать что рынок закрылся?)
пс. когда-то делал синхронизацию времени (локального и серверного), и если тиков нет больше 30-60 сек, то считаем что рынок закрылся...насколько помню в МТ4 нет универсального решения чтобы определять закрыт или открыт рынок.
https://www.mql5.com/ru/forum/5831/page6#comment_6531956
Это очень дорогое решение, и оно не решает задачу, если рынок закрыт в связи с праздником, или другим событием, данные берутся со спецификации контрактов с "Обзора рынка"
Это очень дорогое решение, и оно не решает задачу, если рынок закрыт в связи с праздником, или другим событием, данные берутся со спецификации контрактов с "Обзора рынка"
да бесплатно ;)
как раз все решает, пользуюсь уже давно
например, рубль не торгуется со стольки то до стольки то в отличии от остальных пар, так и будет по нему отказ в это время, причем автоматически
вот упёртый дядя, лишь бы обхаять
возьми да и попробуй сначала