Специально для Вас, sergeev:
//+------------------------------------------------------------------+ // Expert Trade Transaction function | //+------------------------------------------------------------------+ void OnTradeTransaction( const MqlTradeTransaction &trans, const MqlTradeRequest &request, const MqlTradeResult &result ) { switch( trans.type ) { case TRADE_TRANSACTION_DEAL_ADD: Print( "Trans type = ", EnumToString(trans.type), " Order state = ", EnumToString( trans.order_state ), " Ticket = ", trans.order ); break; } }
Добрый день!
Кто-нибудь сможет объяснить:
Почему, когда совершается сделка (TRADE_TRANSACTION_DEAL_ADD),
состояние ордера ORDER_STATE_STARTED???
Возможно, потому что ORDER_STATE_STARTED=0 :)
Внимательно прочитайте Структура торговой транзакции (MqlTradeTransaction).
Специально для Вас, sergeev:
вот. а в сервисдеске все телепаты. им не надо ваш код.
теперь ждите ответа от разрабов. а лучше сразу к ним напрямую.
Возможно, потому что ORDER_STATE_STARTED=0 :)
Внимательно прочитайте Структура торговой транзакции (MqlTradeTransaction).
Yurich, спасибо!
Т.е это поле не заполняется.
yurich, спасибо!
т.е это поле не заполняется.
я тоже на это натыкался. неудобная неоднозначность.
предложите в сд исправить код started?
я тоже на это натыкался. неудобная неоднозначность.
предложите в сд исправить код started?
Зачем исправлять? Следуя этой логике, много чего еще можно исправить, например, POSITION_TYPE_BUY :)
Yourich!
НУЖНО исправлять!
Это же очень просто:
POSITION_TYPE_NULL или ORDER_STATE_NULL и т.д
Тогда НИКТО не будет натыкаться....
Это просто БЕЗГРАМОТНОЕ программирование!
Ведь в ENUM 0 всегда должен быть обозначен, например:
enum ENUM_ORDER_STATE { ORD_NO_STATE = 0, ORD_BUY_DO_SET = 1, ORD_BUY_DO_MODIFY = 2, ORD_BUY_WORK = 3, ORD_BUY_DO_CANCEL = 4, ORD_SELL_DO_SET = 5, ORD_SELL_DO_MODIFY = 6, ORD_SELL_WORK = 7, ORD_SELL_DO_CANCEL = 8 };
ORD_NO_STATE = 0,
yourich!
нужно исправлять!
это же очень просто:
position_type_null или order_state_null и т.д
тогда никто не будет натыкаться....
это просто безграмотное программирование!
ведь в enum 0 всегда должен быть обозначен, например:
ord_no_state = 0,
сомнительные утверждения. и про безграмотное программирование, и про enun 0.
для enum есть значение wrong_value.
если параметр не определен, то зачем его проверять? этот вопрос как раз относится к грамотности :)
если нет позиции, то и нет смысла узнавать ее тип.
upd. А где заглавные буквы?(это вопрос к программистам сайта)
Yiurich!
Пусть каждый останется при своём мнении!
НО, если 2 человека говорят, что это не корректно, то, вероятно, стоит прислушаться.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Добрый день!
Кто-нибудь сможет объяснить:
Почему, когда совершается сделка (TRADE_TRANSACTION_DEAL_ADD),
состояние ордера ORDER_STATE_STARTED???
2014.08.04 15:15:45.705 Forts_trader (GAZR-9.14,H1) Trans type = TRADE_TRANSACTION_DEAL_ADD Order state = ORDER_STATE_STARTED Ticket = 6509891
Из справки MQ:
ORDER_STATE_STARTED - Ордер проверен на корректность, но еще не принят брокером!