Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Добрый день, профессионалам!
Заметил ситуацию, когда открывается 2 одинаковых по лоту ордера по одной цене. В принципе в моем советнике такого не должно быть по нескольким причинам (не буду вдаваться в подробности).
Хочу отследить момент, когда это происходит. А для этого нужно перебирать открытые и отложенные ордера по признаку: одна цена, одинаковый лот и одинаковый тип - выводить сообщение.
Подскажите, как сделать в коде.
Заранее благодарю!
Ну а просто в журнале посмотреть, без придумывания всяких кодов?
А признак одна цена? Вызывая OrderSend Вы в нем в обязательном порядке указываете Slippage. Сравнивание на абсолютное равенство цен открытия зыбко как-то.
Покумекал: такой вариант будет работать. Сам на свой вопрос ответил. Может кому пригодится.
for(i=1; i<=OrdersTotal(); i++) { if(!OrderSelect(i-1,SELECT_BY_POS,MODE_TRADES)) continue; if(OrderSymbol()!=SymbolMax[nnnn]) continue; OrderOpen=OrderOpenPrice(); OrderType1=OrderType(); OrderLot1=OrderLots(); for(w=0, q=1; q<=OrdersTotal(); q++) { if(!OrderSelect(q-1,SELECT_BY_POS,MODE_TRADES)) continue; if(OrderSymbol()!=SymbolMax[nnnn]) continue; if(OrderOpen==OrderOpenPrice() && OrderType1==OrderType() && OrderLot1==OrderLots()) { if(w==1) txt27="Ордер дублируется. Валют. пара: "+SymbolMax[nnnn]+". Тип: "+OrderType()+". Лот: "+OrderLots()+". Цена: "+OrderOpenPrice()+"."; w=1; //Print("Ордер дублируется. Валют. пара: ",SymbolMax[nnnn],". Тип: ",OrderType(),". Лот: ",OrderLots(),". Цена: ",OrderOpenPrice(),"."); } } }