Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
У меня теперь более серьезная проблема, мой брокер склонен частично исполнять ордера.
Уважаемый клиент,
Настоящим сообщаем, что Ваша сделка была открыта частично (2.32 лота из 15.84) по цене 587.318.
Если у вас возникнут дополнительные вопросы по данной проблеме, не стесняйтесь обращаться к нам.
С уважением,
Брокер.
вот что говорят в службе поддержки:
Пожалуйста, имейте в виду, что в периоды высокой волатильности или низкой ликвидности лимитные ордера могут исполняться частично. Это означает, что позиция будет исполнена немедленно полностью или частично, если цена будет достигнута. В вашем случае ваш ордер был исполнен частично, поэтому вы получили письмо-уведомление.
Я понимаю, как закрыть все ордера, несмотря на их частичное закрытие, нужно просто сделать Close all Orders while OrdersTotal() > 0, но я не знаю, что делать, когда ордера открываются частично.
edit:
Только что понял, что мне нужно проверить правильность ордеров Symbol и magicnumber, это немного сложнее.
edit: вот функция close all orders, которая должна закрывать ордера даже при частичном закрытии
переписано
переписано
вау!
это немного сложно для меня, я прочитал это 4 или 5 раз, прежде чем понял. Спасибо!
и... что происходит, если OrderSelect возвращает false?
Как часто OrderSelect возвращает false? Возможно ли это вообще?
Ух ты!
Это немного сложно для меня, я прочитал это 4 или 5 раз, прежде чем понял. Спасибо!
и... что происходит, если OrderSelect возвращает false?
Как часто OrderSelect возвращает false? Возможно ли это вообще?
i= 0
возвращается из цикла
i = -1
if(OrderSelect(-1,SELECT_BY_POS,MODE_TRADES)==false) break; // ==> заканчиваем проверку сделок, прерываем цикл
следующий CloseOrder()
какие общие ошибки могут быть возвращены из GetLastError()
Если закрытие не удалось, то возможно, что следующее закрытие также не удастся из-за ошибки, например, tradecontext слишком занят или другой ошибки...
Что можно сделать, чтобы избежать многих таких ситуаций?
Так что вы можете сделать, чтобы избежать многих подобных ситуаций?
Пока не знаю. Мне нужно все обдумать.
Сейчас я столкнулся с другой проблемой.
Я поставил своего советника на VPS windows 2003 и теперь он выдает ошибку "завершен по таймауту", но я никогда не видел такой ошибки на своем домашнем компьютере.
Причем ошибка выскакивает не тогда, когда выполняются циклы закрытия и открытия ордеров, а когда эксперт проверяет пересечение и переходит в режим ожидания.
То есть, программа проверяет открытие нового бара, trailingstop = 0, поэтому вызов функции трейлинг-стопа не происходит, затем, если новый бар открылся, она проверяет пересечение EMA, пересечения нет (в те разы, когда я получал ошибки таймаута, линии EMA были далеки от пересечения), поэтому программа возвращает(0).
Нет никаких циклов! Как она может быть завершена по таймауту?
пока не знаю. Мне нужно все обдумать.
Сейчас я столкнулся с другой проблемой.
Я поставил советника на VPS windows 2003 и теперь он выдает ошибку "завершен по таймауту", но я никогда не видел такой ошибки на своем домашнем компьютере.
Причем ошибка выскакивает не тогда, когда выполняются циклы закрытия и открытия ордеров, а когда эксперт проверяет пересечение и переходит в режим ожидания.
То есть, программа проверяет открытие нового бара, trailingstop = 0, поэтому вызов функции трейлинг-стопа не происходит, затем, если новый бар открылся, она проверяет пересечение EMA, пересечения нет (в те разы, когда я получал ошибки таймаута, линии EMA были далеки от пересечения), поэтому программа возвращает(0).
Нет никаких циклов! Как она может быть завершена по таймауту?
это не цикл?
это не цикл?
Я имею в виду, что во время завершения работы советника линии EMA были далеки от пересечения, поэтому функция NewOrder не была вызвана, поэтому цикл, о котором вы говорите (который находится внутри функции NewOrder), не был запущен.
добавлено условие IsStopped