Выложить код, может кто и глянет. Или не выкладывать - может кто-нибудь догадается о Вашем коде.
Выложить код, может кто и глянет. Или не выкладывать - может кто-нибудь догадается о Вашем коде.
Приведу процедуру которая удаляет такие ордера. Весь код выкладывать ... его больше 30Кб :)
//+------------------------------------------------------------------+ //| Delete Stop Orders | //+------------------------------------------------------------------+ bool DeleteAllStops(int type=-1, int nMagic = 0, string sym=""){ int total; bool result; double price; int cmd,error; //---- total=OrdersTotal(); if (total==0) return(true); if (sym == "") sym = Symbol(); for(int i=total-1; i>=0; i--) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { cmd=OrderType(); if((cmd==type || (type == -1 && cmd >1) ) && sym == OrderSymbol() && OrderMagicNumber() == nMagic) { //---- print selected order Print("Delete Order ");OrderPrint(); //---- delete order while(true) { result=OrderDelete(OrderTicket()); if(result!=TRUE) { error=GetLastError(); Print("LastError = ",error); } else error=0; if(error==135) RefreshRates(); else if (error==6) Sleep(500); else break; } //---- } } else { Print( "DeleteAllStops::Error when order select ", GetLastError()); Print("i=",i," total=",total); } } //---- return(true); }
очень непонятная ситуация. пришлите пожалуйста весь код эксперта на stringo at metaquotes dot ru
пожалуйста, сообщите параметры тестирования.
конфиденциальность гарантирую.
пожалуйста, сообщите параметры тестирования.
конфиденциальность гарантирую.
получил. прогнал на тестере. ни одной ошибки.
сообщите более подробную информацию:
1. с какого сервера взята история
2. размер истории
3. номер и дата билда
4. было ли в тот момент подключение, если да, то к какому серверу
5. модель тестирования (я понял, что every tick)
6. ограничивающие даты тестирования
сообщите более подробную информацию:
1. с какого сервера взята история
2. размер истории
3. номер и дата билда
4. было ли в тот момент подключение, если да, то к какому серверу
5. модель тестирования (я понял, что every tick)
6. ограничивающие даты тестирования
1. с какого сервера взята история
с сервера alpari
2. размер истории
вся имеющаяся там с 06.2004
3. номер и дата билда
186 от 10.11.2005
4. было ли в тот момент подключение, если да, то к какому серверу
да. к серверу utgfx.com 217.74.34.253
5. модель тестирования (я понял, что every tick)
правильно поняли
6. ограничивающие даты тестирования
не зависит от того есть ли ограничение по датам или нет, также не зависит от того, тестируется ли на истории загруженой с сервера альпари или на небольшой доступной истории, что скачивает сам терминал с текущего сервера
скачайте с нашего сайта билд 186 от 17 ноября и попробуйте потестировать снова, пожалуйста.
скачайте с нашего сайта билд 186 от 17 ноября и попробуйте потестировать снова, пожалуйста.
скачал .. проверил ... все работает! ошибка исчезла !
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В онлайне (на демо и реале) такого нет ... только в тестере
Для того что бы хоть как то по подробнее объяснить ситуацию приведу кусок лога тестера
Здесь обратите внимание на судьбу ордера #25
Т.о. ордер удалился спустя 45 минут от первой попытки удалить его.
Точно такая же ситуация с OrderModify()
Т.е. иногда ордер удаляется/модифицируется спустя несколько минут(часов) если с момента первой попытки не происходит ни каких других событий (открытие/закрытие/модификация/удаление). Если же происходят другие события с ордерами, то проблемный ордер после них порой удаляется/модифицируется.
Честно говоря "задрала" уже эта ошибка! Я понимаю, что вам будет трудно, что-либо полезное мне ответить, но хотя бы скажите, что я могу сделать для прояснения ситуации?!