Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Как определить время открытия следующего бара, то есть того который еще не сформировался?
Можно так зациклить запрос для открытия ордера? )
Нежелательно. Представьте, например, что вместо TRADE_RETCODE_DONE сервер будет возвращать ответ, что ордер размещён. Тогда Ваш код забъёт сервер однотипными запросами.
Так будет лучше?
Вряд ли. Посмотрите описание функции OrderSend(). Там должно быть сказано, что при удачном её выполнении всё равно необходимо проверять код возврата. Поэтому придётся идти самым нудным путём, а именно: взять перечень кодов возврата и продумать поведение программы для каждого из этих кодов. Т.е. "отправили OrderSend(), получили код возврата, отреагировали на полученный retcode".
Второй момент. Лучше использовать событийную модель. Т.е. не зацикливать выполнение функции после прихода одного тика, а после нескольких неудачных попыток выходить и дожидаться нового тика.
Всё равно, когда-нибудь это придётся сделать :) Говорю, исходя из собственного опыта.
Простите, а как сделать условие, чтобы в тестере не было, а в тестере в визуальном режиме было?
Список свойств этого не позволяет, а такое условие у меня почему-то не работает:
if(MQL5InfoInteger(MQL5_TESTER)!=1 || MQL5InfoInteger(MQL5_TESTER)==1 && MQL5InfoInteger(MQL5_VISUAL_MODE)==1)
из этого условия выходит, что оно будет выполнять в трех ситуациях:
1)Когда работает тестер
2)Когда тестер НЕ работает
3)Когда работает визуальный тестер
таким образом функция будет всегда работать, скорее всего вам надо убрать второе условие, а первое и третье соединить с помощью &&