Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Причем тут ава? На форуме писать у него нет возможности, вечный бан.
Причем тут ава? На форуме писать у него нет возможности, вечный бан.
Нет, его разбанили.
Забаненные юзеры зачеркнутым написаны.
Нет, его разбанили.
Забаненные юзеры зачеркнутым написаны.
Особенности:
Получив подтверждение (TRADE_RETCODE_PLACED ) в коде возврата функции OrderSend() и билет ордера,
а для функции OrderSendAsync() в OnTradeTransaction(), это совсем не означает, что
ордер действительно ВЫСТАВЛЕН на биржу.
Поэтому нужна дополнительная проверка состояния ордера (ровно как и для других действий над ордером).
https://www.mql5.com/ru/docs/constants/structures/mqltraderesult
Здесь сказано, что тикет заполняется только тогда когда тип торговой операции TRADE_ACTION_PENDING.
Если операция TRADE_ACTION_DEAL, вернется ли тикет ордера в result.order?
Да.
А в каких случаях бывает ошибка 10013 в ответ на вызов OrderCheck() ?
Вот код моего скрипта:
Вот лог который получаю:
А в каких случаях бывает ошибка 10013 в ответ на вызов OrderCheck() ?
Вот код моего скрипта:
Вот лог который получаю:
Прошел когда добавил m_request.expiration =0, хотя в справке написано:
Exchange Execution
Торговый ордер на открытие позиции в режиме Exchange Execution (биржевой режим исполнения торговых приказов). Требуется указание 5 полей:
Можно также задать значения полей magic и comment.
На этом однако странности не заканчиваются.
1 лот Buy:
Check (RTS-6.16,M30) OnStart: retcode=0, balance=530863.24, equity=538989.4399999999, profit=2.121995790965272e-314, margin=211242.25, margin_free=319620.99, margin_level=255.1522907941001, comment=Done
Check (RTS-6.16,M30) OnStart: symbol=RTS-6.16, operation=0, volume=1.0
Маржа для операции 211242.25, то же что и текущая маржа - всё правильно так как текущая короткая позиция по RTS-6.16 2 контракта. Начальная маржа для 1 контракта RTS-6.16 17388.75
Добавляю еще один лот.
2 лот Buy:
Check (RTS-6.16,M30) OnStart: retcode=0, balance=651428.4399999999, equity=659212.76, profit=2.121995790965272e-314, margin=211242.25, margin_free=440186.19, margin_level=312.0648260468727, comment=Done
Check (RTS-6.16,M30) OnStart: symbol=RTS-6.16, operation=0, volume=2.0
Всё ок, т.к. текущая поза 2 Sell, маржа остается без имзенений.
Теперь 3 контракта Buy:
2016.04.28 01:26:47.319 Check (RTS-6.16,M30) OnStart: retcode=0, balance=651428.4399999999, equity=658739.4, profit=2.121995790965272e-314, margin=246019.75, margin_free=405408.69, margin_level=267.7587470111648, comment=Done
2016.04.28 01:26:47.319 Check (RTS-6.16,M30) OnStart: symbol=RTS-6.16, operation=0, volume=3.0
Значение маржи сразу 246019.75. Откуда? За 1 контракт всего 17к. А что с другими полями (в предыдущих случаях тоже)? Откуда такой эквити и баланс? У меня на счету даже нет столько. margin_free тоже неправильное, про profit и не говорю.
Кто-нибудь может у себя проверить, может что то не то делаю?
Прошел когда добавил m_request.expiration =0, хотя в справке написано:
Всегда инициализируйте все переменные и структуры нулями сразу после объявления. У вас в поле expiration какой-то мусор был, вот и получали ошибку.
Всегда инициализируйте все переменные и структуры нулями сразу после объявления. У вас в поле expiration какой-то мусор был, вот и получали ошибку.