Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Торговые и котировочные сессии не помогут проблему решить?
К сожалению, нет. В соответствии со спецификацией контракта, котировочная сессия начинается в понедельник с 00:00:00.
Собственно, здесь Rosh дает ответ, что начало котировочной сессии не гарантирует наличие котировок в ней. Что, в принципе, понятно.
Пока использую "костыль" в виде следующей проверки:
Буду признателен, если кто поделится более изящным решением (все мультивалютники должны были столкнуться с этим).
П.С.
Изящный вариант предложил Konstantin Gruzdev в своей статье Реализация мультивалютного режима в MetaTrader 5.
Но на чемпионате данный вариант не пройдет по требованиям.
Ыыы... задел за живое. :)) Последнюю строку вручную правил в сообщении на форуме, так что простительно. =)
Кстати, твой код тоже не компилируется (в последней строке закрывающую скобку забыл). :-Р
К тому же, работает он в 2-3 раза медленнее (сейчас замерил на скрипте), а качество проверки такое же. :-Р
В общем, пока нет грамотного кода по определению значащего младшего разряда, воспользуюсь советом Компостера: нормализировать объем до 8-го знака после запятой.
Надеюсь, подводных камней не появится.
В справке:
Функцию Sleep() нельзя вызывать из пользовательских индикаторов, так как индикаторы выполняются в интерфейсном потоке и не должны его тормозить.
таки совсем-совсем нельзя, или если очень хочется, то можно, но осторожно? :)
Проблема с доступом к данным другого символа из индикатора.
при наличии отсутствия тиков)
OrderCheck не помогает?
Неа. Перед торговлей пишу строку:
В логах все-равно ошибка. :(
В догонку про нормализацию лота
Ребята, зачем теоретизировать?
Ситуация, когда шаг лота будет больше минимального лота - абсурдна. Ну, представьте: мин = 0.1, шаг = 1.0. И что, разрешены только лоты 1.1, 2.1, 3.1, ...? Это бред.
Если упражняться в арифметике и программировании, то ваши варианты победят. Но если речь идет о прикладном (в торговом смысле) программировании, то при lot_step > lot_min нужно завершать программу с критической ошибкой и срочно менять брокера, т.к. у этого не хватает денег даже на зарплату человеку, который бы мог нормально настроить сервер ;)
Всего должно быть в меру. Мой вариант работает на реалах больше 5 лет, с разными брокерами, типами счетов, инструментами - ошибки не было ни разу.komposter
Почему же абсурд? Возьмем простой пример: минимальный лот = 1.0, минимальный шаг = 0.3. Требования удовлетворяют принципу "безабсурдности" (min_lot >= lot_step). :)
Вы передаете в функцию нормализации объем 1.3 лота. Из нее Вам возвращается 1.2 лота.
Модернизированная редакция вернет 1.3. В ней шаги идут "правильно": от минимального лота, а не от нуля.
Другой вопрос - наличие "в жизни" шагов, отличных от "1.0, 0.1, 0.01 и т.д.".
Тут, как мне кажется, цена вопроса (потеря производительности) ничтожна мала, по сравнению с решением возможной гипотетической ошибкой. ИМХО.
В конце-концов, так просто правильнее считать: шаги от минимального лота, а не от нуля.
Неа. Перед торговлей пишу строку:
В логах все-равно ошибка. :(
Посмотрел, на чемпионатных счетах все инструменты торгуются в одно время. Зарегистрируйтесь)
TradeCheckResult.retcode != TRADE_RETCODE_DONE
как-то не уверен я в правильности этого условия..
можно ещё попробовать:
if(текущая цена == 0.0) return;
komposter
Почему же абсурд? Возьмем простой пример: минимальный лот = 1.0, минимальный шаг = 0.3. Требования удовлетворяют принципу "безабсурдности" (min_lot >= lot_step). :)
Вы передаете в функцию нормализации объем 1.3 лота. Из нее Вам возвращается 1.2 лота.
Модернизированная редакция вернет 1.3. В ней шаги идут "правильно": от минимального лота, а не от нуля.
Другой вопрос - наличие "в жизни" шагов, отличных от "1.0, 0.1, 0.01 и т.д.".
Тут, как мне кажется, цена вопроса (потеря производительности) ничтожна мала, по сравнению с решением возможной гипотетической ошибкой. ИМХО.
В конце-концов, так просто правильнее считать: шаги от минимального лота, а не от нуля.
"минимальный лот = 1.0, минимальный шаг = 0.3" - это тоже абсурд. Шаг должен быть кратным мин. лоту.
Я уже высказал свое мнение - в конкурсе математиков и программистов вариант с вычитанием мин_лота победит, для реальной торговли он не нужен.
Предмета для дальнейшей дисскуссии не вижу, все остались при своих ;)