Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вот шайтан... Прошел валидацию, и теперь
no trading operations
уже не ошибка
P.S. Это был случайный выстрел. Следующий тест опять та же шляпа
Да тут не ошибка, я вообще не понимаю что за дичь. Ставлю костыль (деление на ноль) перед торговой функцией:
Он срабатывает:
Убираю его, выдаёт уже неизменное
no trading operations.
Я не понимаю, что мешает валидатору сделать этот OrderSend(). Ведь если он до него доходит, должны быть ошибки выставления (хотя я их все пофиксил) 130, 131, 134, ..., а не "no trading operations". Осталось только прописать в OnInit() выставление какой нибудь отложки где нибудь далеко чтобы не сработала, не знаю уже как бороться с этим.
А какой смысл в таком костыле если под условие, при котором должна быть сделка, выполнение кода не входит?
Почему не входит?! Посмотри внимательно, Алексей. Как раз перед OrderSend костыль и стоит.
Правильно. Если не выполняется OrderSend значит до него выполнение кода не доходит по каким-то причинам. И хоть что перед ним ставьте в блок условия нет входа и нет исполнения, даже деления на ноль.
Постойте, я не понимаю. Если выполняется оператор 1 (деление на ноль), то следующий на очереди оператор if. А значит проверка его условия. Для проверки условия нужно выполнить функцию OrderSend, получается что она следующая на очереди после деления на ноль.
Ну да бог с ним. Для чистоты эксперимента я изменил код:
Результат тот же. С костылём - ошибка деления на ноль, без него результат выложил выше: no trading operations.
Постойте, я не понимаю. Если выполняется оператор 1 (деление на ноль), то следующий на очереди оператор if. А значит проверка его условия. Для проверки условия нужно выполнить функцию OrderSend, получается что она следующая на очереди после деления на ноль.
Ну да бог с ним. Для чистоты эксперимента я изменил код:
Результат тот же. С костылём - ошибка деления на ноль, без него результат выложил выше: no trading operations.
Вы зря картинкой код выкладываете. Читать совершенно невозможно. Да и не в этом куске кода проблема. Проблема в том, что не выполняется какое-то из условий при каких-то входных параметрах, а уведомления об этом отсутствует.
Почему не входит?!
А зачем вы пытаетесь писать в маркет, хуже чем для себя ?
это-же просто - перед тем как отправлять приказ, посмотреть "а вообще исполним ли он?"
проверить лимиты (про это сказали), проверить средства и маржу (у вас этого нет), посмотреть есть ли связь и разрешена-ли торговля.
(опция) если были тяжкие рассчёты, не грех и RefreshRates до чтения Bid Ask
Вот для себя любимого вы все эти проверки будете делать. Почему сейчас-то НЕТ ?
Вы думаете, я не проверяю. Размер лота проверяется в отдельной функции
Лимиты тут не нужны, т.к. Stop Loss и Take Profit равны нулю при открытии сделки. RefreshRates() обновляет данные при расчёте лота. Проверки связи и т.д. конечно нет перед каждым входом, но дело то не в этом во всём. Если бы OrderSend отправила запрос, была бы конкретная ошибка: 130, 131 и т.д. Но у меня то
Вообще не пытается отправить приказ на открытие. Даже в последнем тесте, когда из функции OnInit() я выставляю контрольную отложку
Вы зря картинкой код выкладываете. Читать совершенно невозможно. Да и не в этом куске кода проблема. Проблема в том, что не выполняется какое-то из условий при каких-то входных параметрах, а уведомления об этом отсутствует.
Возможно. Но я уже перепроверил всё. Не знаю куда дальше копать.
Вы думаете, я не проверяю. Размер лота проверяется в отдельной функции
Лимиты тут не нужны, т.к. Stop Loss и Take Profit равны нулю при открытии сделки. RefreshRates() обновляет данные при расчёте лота. Проверки связи и т.д. конечно нет перед каждым входом, но дело то не в этом во всём. Если бы OrderSend отправила запрос, была бы конкретная ошибка: 130, 131 и т.д. Но у меня то
Вообще не пытается отправить приказ на открытие. Даже в последнем тесте, когда из функции OnInit() я выставляю контрольную отложку
Возможно. Но я уже перепроверил всё. Не знаю куда дальше копать.
Посмотрите как сделаны прочие приказы в советнике. Где-то же вы собирались закрывать/изменять ордера ? не думаю что советник только и исключительно открывает
на открытии установился ticket<0 - гляньте прочую логику, что как она в реальности на это среагирует