Глюки со стопами во время визуального тестирования

 
замеченные глюки связаны с перемещением стопов у открытых позиций, сначала появился глюк - функция OrderStopLoss() стала возвращать одно и тоже неверное значение несмотря на вызов RefreshRates() перед выбором ордера, эту проблему удалось решить храня значение тек. стопов в переменной, но появилась другая: во время визуального тестирования у первых 5 последовательно открывающихся ордеров трейлинги срабатывают, а у остальных уже нет. т.е. трейлинги перестают со временем работать :(((
релиз 202
 
Как Вы анализируете ошибки после команды модификации ордера, изменяющей StopLoss?
 
как обычно:
void MSL(int _OTicket, double _OOpenPrice, double _OStopLoss, double _OTakeProfit, datetime _OExpiration=0 , color _AColor = DeepPink){          
 int i, Pause = 500;
 int LastError=0;
 bool fm=true; 
 for (i=0; i<tryes; i++){
  Pause = Pause+Pause;
  fm = OrderModify(_OTicket,_OOpenPrice,_OStopLoss,_OTakeProfit,_OExpiration,_AColor); 
  if(!fm){LastError=GetLastError(); if(LastError>0){Info("1.2.3",1,"","There was an ERROR while order modify "+ErrorDescription(LastError)+" at "+i+" try.");} Sleep(Pause); }
  if(fm){Info("1.2",2,"","Order "+_OTicket+" Succesfully Modifyied at "+i+" try."); break;} 
 }
} 


 
больше всего интересует почему функция OrderStopLoss() стала возвращать одно и тоже неверное значение несмотря на вызов RefreshRates() перед выбором ордера, специально выводил в Print() в логах отчетливо видно что несмотря на то что стоп меняется OrderStopLoss() все равно возвращает нето, и во время визуального тестирования получалось что трейлинг тупо водил стоп за ценой, хотя в коде прописано что стоп должен двигаться только в сторону увеличения профита

(после переустановки терминала OrderStopLoss() глючить перестала, но основная проблема осталась, стоп по прежнему пляшет )
 
фрагмент лога здесь видно как стоп пляшет за ценой:
и почемуто большинство поз закрываются или в 0 или рядом а стопы во время трейлингования ходят строго за ценой пока не коснутся тейк профита или цены открытия :((
03:19:17 2007.01.08 02:00  Full_Template GBPUSD,M30: open #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9399 tp: 1.9095 ok
03:19:17 2007.01.08 02:19  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9295 tp: 1.9095 ok
03:19:17 2007.01.08 02:19  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9294 tp: 1.9095 ok
03:19:17 2007.01.08 02:20  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9293 tp: 1.9095 ok
03:19:17 2007.01.08 02:20  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9294 tp: 1.9095 ok
03:19:17 2007.01.08 02:20  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9293 tp: 1.9095 ok
03:19:17 2007.01.08 02:20  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9295 tp: 1.9095 ok
03:19:17 2007.01.08 02:21  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9294 tp: 1.9095 ok
03:19:17 2007.01.08 02:21  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9295 tp: 1.9095 ok
03:19:17 2007.01.08 02:39  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9294 tp: 1.9095 ok
03:19:17 2007.01.08 02:39  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9293 tp: 1.9095 ok
03:19:17 2007.01.08 02:40  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9292 tp: 1.9095 ok
03:19:17 2007.01.08 02:40  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9293 tp: 1.9095 ok
03:19:17 2007.01.08 02:40  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9292 tp: 1.9095 ok
03:19:17 2007.01.08 02:40  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9293 tp: 1.9095 ok
03:19:17 2007.01.08 02:40  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9292 tp: 1.9095 ok
03:19:17 2007.01.08 02:40  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9293 tp: 1.9095 ok
03:19:17 2007.01.08 02:40  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9292 tp: 1.9095 ok
03:19:17 2007.01.08 02:40  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9293 tp: 1.9095 ok
03:19:17 2007.01.08 02:41  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9292 tp: 1.9095 ok
03:19:17 2007.01.08 02:41  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9294 tp: 1.9095 ok
03:19:17 2007.01.08 02:41  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9293 tp: 1.9095 ok
03:19:17 2007.01.08 02:41  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9294 tp: 1.9095 ok
03:19:17 2007.01.08 02:41  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9293 tp: 1.9095 ok
03:19:17 2007.01.08 02:41  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9294 tp: 1.9095 ok
03:19:17 2007.01.08 02:41  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9293 tp: 1.9095 ok
03:19:17 2007.01.08 02:42  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9294 tp: 1.9095 ok
03:19:17 2007.01.08 02:42  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9293 tp: 1.9095 ok
03:19:17 2007.01.08 02:42  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9294 tp: 1.9095 ok
03:19:17 2007.01.08 02:42  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9293 tp: 1.9095 ok
03:19:17 2007.01.08 02:43  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9292 tp: 1.9095 ok
03:19:17 2007.01.08 02:43  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9291 tp: 1.9095 ok
03:19:17 2007.01.08 02:43  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9290 tp: 1.9095 ok
03:19:17 2007.01.08 02:43  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9289 tp: 1.9095 ok
03:19:17 2007.01.08 02:43  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9288 tp: 1.9095 ok
03:19:17 2007.01.08 02:44  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9287 tp: 1.9095 ok
03:19:17 2007.01.08 02:44  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9286 tp: 1.9095 ok
03:19:17 2007.01.08 02:44  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9285 tp: 1.9095 ok
03:19:17 2007.01.08 02:45  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9284 tp: 1.9095 ok
03:19:17 2007.01.08 02:45  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9285 tp: 1.9095 ok
03:19:17 2007.01.08 02:45  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9284 tp: 1.9095 ok
03:19:17 2007.01.08 02:45  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9285 tp: 1.9095 ok
03:19:17 2007.01.08 02:45  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9284 tp: 1.9095 ok
03:19:17 2007.01.08 02:45  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9285 tp: 1.9095 ok
03:19:17 2007.01.08 02:45  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9284 tp: 1.9095 ok
03:19:17 2007.01.08 02:45  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9286 tp: 1.9095 ok
03:19:17 2007.01.08 02:46  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9285 tp: 1.9095 ok
03:19:17 2007.01.08 02:46  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9286 tp: 1.9095 ok
03:19:17 2007.01.08 02:46  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9285 tp: 1.9095 ok
03:19:17 2007.01.08 02:46  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9286 tp: 1.9095 ok
03:19:17 2007.01.08 02:46  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9285 tp: 1.9095 ok
03:19:17 2007.01.08 02:46  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9287 tp: 1.9095 ok
03:19:17 2007.01.08 02:46  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9286 tp: 1.9095 ok
03:19:17 2007.01.08 02:47  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9287 tp: 1.9095 ok
03:19:17 2007.01.08 02:47  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9286 tp: 1.9095 ok
03:19:17 2007.01.08 02:47  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9287 tp: 1.9095 ok
03:19:17 2007.01.08 02:47  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9286 tp: 1.9095 ok
03:19:17 2007.01.08 02:47  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9285 tp: 1.9095 ok
03:19:17 2007.01.08 02:48  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9284 tp: 1.9095 ok
03:19:17 2007.01.08 02:48  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9283 tp: 1.9095 ok
03:19:17 2007.01.08 02:48  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9282 tp: 1.9095 ok
03:19:17 2007.01.08 02:48  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9281 tp: 1.9095 ok
03:19:17 2007.01.08 02:48  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9280 tp: 1.9095 ok
03:19:17 2007.01.08 02:48  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9279 tp: 1.9095 ok
03:19:17 2007.01.08 02:49  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9278 tp: 1.9095 ok
03:19:17 2007.01.08 02:49  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9277 tp: 1.9095 ok
03:19:17 2007.01.08 02:49  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9276 tp: 1.9095 ok
03:19:17 2007.01.08 02:49  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9275 tp: 1.9095 ok
03:19:17 2007.01.08 02:50  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9274 tp: 1.9095 ok
03:19:17 2007.01.08 02:50  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9275 tp: 1.9095 ok
03:19:17 2007.01.08 02:50  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9274 tp: 1.9095 ok
03:19:17 2007.01.08 02:50  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9275 tp: 1.9095 ok
03:19:17 2007.01.08 02:50  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9276 tp: 1.9095 ok
03:19:17 2007.01.08 02:50  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9275 tp: 1.9095 ok
03:19:17 2007.01.08 02:50  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9277 tp: 1.9095 ok
03:19:17 2007.01.08 02:51  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9276 tp: 1.9095 ok
03:19:17 2007.01.08 02:51  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9277 tp: 1.9095 ok
03:19:17 2007.01.08 02:51  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9276 tp: 1.9095 ok
03:19:17 2007.01.08 02:51  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9278 tp: 1.9095 ok
03:19:17 2007.01.08 02:51  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9277 tp: 1.9095 ok
03:19:17 2007.01.08 02:51  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9278 tp: 1.9095 ok
03:19:17 2007.01.08 02:52  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9279 tp: 1.9095 ok
03:19:17 2007.01.08 02:52  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9278 tp: 1.9095 ok
03:19:17 2007.01.08 02:52  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9279 tp: 1.9095 ok
03:19:17 2007.01.08 02:52  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9278 tp: 1.9095 ok
03:19:17 2007.01.08 02:52  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9279 tp: 1.9095 ok
03:19:17 2007.01.08 02:52  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9278 tp: 1.9095 ok
03:19:17 2007.01.08 02:53  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9279 tp: 1.9095 ok
03:19:17 2007.01.08 02:53  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9278 tp: 1.9095 ok
03:19:17 2007.01.08 02:53  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9279 tp: 1.9095 ok
03:19:17 2007.01.08 02:53  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9278 tp: 1.9095 ok
03:19:17 2007.01.08 02:53  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9279 tp: 1.9095 ok
03:19:17 2007.01.08 02:53  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9277 tp: 1.9095 ok
03:19:17 2007.01.08 02:53  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9278 tp: 1.9095 ok
03:19:17 2007.01.08 02:53  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9277 tp: 1.9095 ok
03:19:17 2007.01.08 02:54  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9278 tp: 1.9095 ok
03:19:17 2007.01.08 02:54  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9277 tp: 1.9095 ok
03:19:17 2007.01.08 02:54  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9278 tp: 1.9095 ok
03:19:17 2007.01.08 02:54  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9277 tp: 1.9095 ok
03:19:17 2007.01.08 02:54  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9278 tp: 1.9095 ok
03:19:17 2007.01.08 02:55  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9277 tp: 1.9095 ok
03:19:17 2007.01.08 02:55  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9278 tp: 1.9095 ok
03:19:17 2007.01.08 02:55  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9277 tp: 1.9095 ok
03:19:17 2007.01.08 02:55  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9279 tp: 1.9095 ok
03:19:17 2007.01.08 02:55  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9278 tp: 1.9095 ok
03:19:17 2007.01.08 02:55  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9279 tp: 1.9095 ok
03:19:17 2007.01.08 02:56  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9280 tp: 1.9095 ok
03:19:17 2007.01.08 02:56  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9281 tp: 1.9095 ok
03:19:17 2007.01.08 02:56  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9280 tp: 1.9095 ok
03:19:17 2007.01.08 02:56  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9282 tp: 1.9095 ok
03:19:17 2007.01.08 02:56  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9281 tp: 1.9095 ok
03:19:17 2007.01.08 02:56  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9283 tp: 1.9095 ok
03:19:17 2007.01.08 02:56  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9282 tp: 1.9095 ok
03:19:17 2007.01.08 02:57  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9283 tp: 1.9095 ok
03:19:17 2007.01.08 02:57  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9284 tp: 1.9095 ok
03:19:17 2007.01.08 02:59  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9292 tp: 1.9095 ok
03:19:17 2007.01.08 03:00  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9293 tp: 1.9095 ok
03:19:17 2007.01.08 03:00  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9292 tp: 1.9095 ok
03:19:17 2007.01.08 03:00  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9293 tp: 1.9095 ok
03:19:17 2007.01.08 03:00  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9292 tp: 1.9095 ok
03:19:17 2007.01.08 03:00  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9293 tp: 1.9095 ok
03:19:17 2007.01.08 03:00  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9292 tp: 1.9095 ok
03:19:17 2007.01.08 03:01  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9293 tp: 1.9095 ok
03:19:17 2007.01.08 03:01  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9291 tp: 1.9095 ok
03:19:17 2007.01.08 03:01  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9292 tp: 1.9095 ok
03:19:17 2007.01.08 03:01  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9291 tp: 1.9095 ok
03:19:17 2007.01.08 03:01  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9292 tp: 1.9095 ok
03:19:17 2007.01.08 03:02  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9291 tp: 1.9095 ok
03:19:17 2007.01.08 03:02  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9292 tp: 1.9095 ok
03:19:17 2007.01.08 03:02  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9291 tp: 1.9095 ok
03:19:17 2007.01.08 03:02  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9292 tp: 1.9095 ok
03:19:17 2007.01.08 03:02  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9291 tp: 1.9095 ok
03:19:17 2007.01.08 03:03  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9292 tp: 1.9095 ok
03:19:17 2007.01.08 03:03  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9291 tp: 1.9095 ok
03:19:17 2007.01.08 03:03  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9292 tp: 1.9095 ok
03:19:17 2007.01.08 03:03  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9291 tp: 1.9095 ok
03:19:17 2007.01.08 03:03  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9293 tp: 1.9095 ok
03:19:17 2007.01.08 03:03  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9292 tp: 1.9095 ok
03:19:17 2007.01.08 03:04  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9293 tp: 1.9095 ok
03:19:17 2007.01.08 03:04  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9292 tp: 1.9095 ok
03:19:17 2007.01.08 03:04  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9293 tp: 1.9095 ok
03:19:17 2007.01.08 03:04  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9292 tp: 1.9095 ok
03:19:17 2007.01.08 03:05  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9293 tp: 1.9095 ok
03:19:17 2007.01.08 03:05  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9292 tp: 1.9095 ok
03:19:17 2007.01.08 03:05  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9293 tp: 1.9095 ok
03:19:17 2007.01.08 03:05  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9292 tp: 1.9095 ok
03:19:17 2007.01.08 03:05  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9291 tp: 1.9095 ok
03:19:17 2007.01.08 03:06  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9292 tp: 1.9095 ok
03:19:17 2007.01.08 03:06  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9290 tp: 1.9095 ok
03:19:17 2007.01.08 03:06  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9291 tp: 1.9095 ok
03:19:17 2007.01.08 03:06  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9290 tp: 1.9095 ok
03:19:17 2007.01.08 03:07  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9289 tp: 1.9095 ok
03:19:17 2007.01.08 03:07  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9290 tp: 1.9095 ok
03:19:17 2007.01.08 03:07  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9289 tp: 1.9095 ok
03:19:17 2007.01.08 03:07  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9290 tp: 1.9095 ok
03:19:17 2007.01.08 03:08  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9291 tp: 1.9095 ok
03:19:17 2007.01.08 03:08  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9292 tp: 1.9095 ok
03:19:17 2007.01.08 03:08  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9293 tp: 1.9095 ok
03:19:17 2007.01.08 03:08  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9294 tp: 1.9095 ok
03:19:17 2007.01.08 03:09  Full_Template GBPUSD,M30: modify #1 sell 1.00 GBPUSD at 1.9295 sl: 1.9295 tp: 1.9095 ok
 


 
хотя в коде явно прописано, изменять для коротких позиций стоп только в сторону увеличения профита!!!

   for ( i=0; i<OrdersTotal(); i++) { RefreshRates();
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { 
         if (OrderSymbol()==Symbol() && OrderMagicNumber()==ExpertID) { 
            if (OrderType()==OP_SELL) { 
               if (OrderOpenPrice()-Ask>UsualTrailingValue*Point) { 
                  if (OrderStopLoss()>Ask+(UsualTrailingValue*Point) || LSS==0)  
                     ModifyStopLoss(OrderTicket(),OrderOpenPrice(),(Ask+(UsualTrailingValue*Point)),OrderTakeProfit(),0,CLR_NONE); 
               } 
            } 
         } 
      } 
   } 

 
сейчас непонятно почему для лонгов все срабатывает а для шортов по прежнему стоп тупо пляшет за ценой вверх вниз хотя в коде таких условий вообще нет, и судя по логам программа двигает стоп не обращаясь к функции ModifyStopLoss() !!! с чем это связано не могу понять :((
 
Уважаемые разработчики если вас не затруднит объясните плиз почему программа самостоятельно решает трейлинговать мои позиции во время визуального тестирования???, я сейчас полностью отключил все трейлинги в коде, выставил стопы по 100 пипсов. и при визуальном тестировании прога опять продолжает тупо двигать стопы за ценой!!! при этом закрывая позы или в безубытке или в минусе т.к. стопы перемещаются сами по себе!!! че это за бред проверьте плиз,
качал терминал вот отсюда: http://liteforex.org/downloads/sig4setup.exe
обновлен до 202 рел.
 
Pavel VL., stolko "osibok" skolko nashli Vi po-moemu ne nahodil eshe nikto :|
 
Pavel VL., stolko "osibok" skolko nashli Vi po-moemu ne nahodil eshe nikto :|


а что делать пытаюсь работать с тем что есть :)
 
Вот код советника наглядно демонстрирующий проблему зацикливания перемещения стопов во время визуального тестирования, почему то по лонгам трейлинг иногда работает (а иногда также пляшет) а по шортам постоянно пляшет за ценой нисмотря на условия в коде предусматривающее перемещение стопа только в сторону увеличения профита:

//+------------------------------------------------------------------+
//|                                                  Check_Stops.mq4 |
//|                      Copyright © 2007, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"
#include <stdlib.mqh>


extern int      ExpertID   =  916505;   
extern string   ExpName = "000104";
extern int      TPLevel = 100;               //  Тейк профит           
extern int      StopLevel   = 100;           //  SL.  
extern string _Parameters_b_Lots ="Параметры модуля расчёта лота";
extern double   Lots = 1;                   // Минимальный фиксированный лот.
extern int LotsWayChoice  = 1;              // Способ выбора рабочего лота: 
                                            //  0-фиксированный, 
                                            //  1-процент от депозита, 
extern int LotsPercent    =10;              
extern int MaxRiskPercent =30;              
extern int KLots          =2;            
extern int LotsDeltaDepo  =500;             
extern int LotsDepoForOne =500;            
extern int LotsMax        =10000;  
extern int      CountTrailingMode = 3;      // трал 0-отключен, 1 -NRTR, 3 - обычный,
extern int      UsualTrailingValue = 11;    // значение обычного трала
extern int MinLastProfit  =5;               
extern int DealsCount     =1;            
extern string Parameters_Trailing =         "Параметры модуля трейлинг стопа.";
extern int Profitunity= 50;
extern int TryesToOpen = 1;
extern int TryesToClose = 2;
extern double Patr=9;
extern double Prange=30;
extern double Kstop=1.13;
extern double kts=2;
extern double Vts=1;

double cnt,ValATR,hi,lo,SL,TS,prevBars, LLS=0, LSS=0;
double midlot; 
int tryes=1;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
if(ExistPositions()){
if(CountTrailingMode>0){TrailingCounting();}
}

//----
  if(!ExistPositions(ExpertID,1) && High[0]>High[1] && High[1]>High[2]){OpenBuy();} 
  if(!ExistPositions(ExpertID,2) && Low[0]<Low[1] && Low[1]<Low[2]){OpenSell();}
//----
   return(0);
  }
//+------------------------------------------------------------------+

int OpenBuy(){//1
double idLot=GetSizeLot(); 
int Slippage=1; 
double ldStop=GetStopLossBuy(); 
double ldTake=GetTakeProfitBuy();
string _OrderComment=ExpName; 
int _OrderMadic=ExpertID;
int _OrderExp=0;  
color _Color=DeepSkyBlue;
if(idLot==0){Info("1.2.3",2,""," Opening Buy were blocked by Money Management system, Current free margin is "+DoubleToStr(AccountFreeMargin(),2)+", Equity "+DoubleToStr(AccountEquity(),2));return(0);}
double OpPrice = NormalizeDouble(Ask,Digits); 
int LastError=0;
int Pause = 500; 
int i,i2,i3,fc;
  for (i2=1; i2<=TryesToOpen; i2++){//3 
   if(IsTradeAllowed()||IsTesting()){//4   
   Pause=Pause+Pause;  
   fc = OrderSend(Symbol(),OP_BUY,idLot,OpPrice,Slippage,ldStop,ldTake,_OrderComment,_OrderMadic,_OrderExp,_Color);
   LastError = GetLastError();
   if(fc<0||LastError>0){Info("1.2.3",1,"","ERROR OPENING BUY with Vol "+DoubleToStr(idLot,1)+" SL "+DoubleToStr(ldStop,Digits)+" TP "+DoubleToStr(ldTake,Digits)+" last try "+i2+" - "+ErrorDescription(LastError));}else{if(fc>0){Info("1.2.3",2,"","OPEN BUY last try "+i2+" at price "+DoubleToStr(OpPrice,Digits)+" Ticket "+fc);return(fc);}}
   }else{Sleep(Pause);}//4
  }//3
 }//2
double GetSizeLot(){      
  double dLot; 
  if (LotsWayChoice==0) dLot=Lots; 
  // фиксированный процент от депозита 
  if (LotsWayChoice==1){dLot=MathCeil(GetAccountFreeMargin()/10000*LotsPercent)/10;}
  // фракционно-пропорциональный 
  if (LotsWayChoice==2) { 
    int k=LotsDepoForOne; 
    for (double i=2; i<=LotsMax; i++) { 
      k=k+i*LotsDeltaDepo; 
      if (k>AccountFreeMargin()) { 
        dLot=(i-1)/10; break; 
      } 
    } 
  }
  // 3-фракционно-фиксированный, 
  if (LotsWayChoice==3){dLot=MathCeil((GetAccountFreeMargin()-LotsDepoForOne)/LotsDeltaDepo)/10;}    

  dLot= (MathCeil(dLot*10)/10)-Lots;
  if (dLot<Lots) dLot=Lots;
  if (dLot>LotsMax) dLot=LotsMax;
  Info("1.2",3,"","Counted lot is "+DoubleToStr(dLot,2)+" counting by "+LotsWayChoice+" mode");
  return(dLot);  
  } 

int OpenSell(){//1
double idLot=GetSizeLot(); 
int Slippage=1; 
double ldStop=GetStopLossSell(); 
double ldTake=GetTakeProfitSell();
string _OrderComment=ExpName; 
int _OrderMadic=ExpertID;
int _OrderExp=0;  
color _Color=DeepPink;
if(idLot==0){Info("1.2.3",2,""," Opening Sell were blocked by Money Management system, Current free margin is "+DoubleToStr(AccountFreeMargin(),2)+", Equity "+DoubleToStr(AccountEquity(),2));return(0);}
int LastError=0;                                                                  
int Pause = 500;                                                                  
   double OpPrice = NormalizeDouble(Bid,Digits);                                    
int i,i2,i3,fc;                                                                    
  for (i2=1; i2<=TryesToOpen; i2++){//3 
   if(IsTradeAllowed()||IsTesting()){//4   
   Pause=Pause+Pause;  
   fc = OrderSend(Symbol(),OP_SELL,idLot,OpPrice,Slippage,ldStop,ldTake,_OrderComment,_OrderMadic,_OrderExp,_Color);
   LastError = GetLastError();
   if(fc<0||LastError>0){Info("1.2.3",1,"","ERROR OPENING SELL with Vol "+DoubleToStr(idLot,1)+" SL "+DoubleToStr(ldStop,Digits)+" TP "+DoubleToStr(ldTake,Digits)+" last try "+i2+" - "+ErrorDescription(LastError));}else{if(fc>0){Info("1.2.3",2,"","OPEN SELL last try "+i2+" at price "+DoubleToStr(OpPrice,Digits)+" Ticket "+fc);return(fc);}}
   }else{Sleep(Pause);}//3
  }//2
 }//1 
//********************************************************************************
bool ExistPositions(int MAGIC=0, int op=0){//1
int i;
 if(MAGIC !=0 && op!=0){//2	
  for ( i=0; i<OrdersTotal(); i++){//3
   if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){//4
  	 if (OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC && OrderType()== OP_BUY && op==1){//5
  	 Info("1.2.3",3,"","ExistPositions() found long positions ");
  	 return(True);
  	 }//5
  	 if (OrderSymbol()==Symbol() && OrderMagicNumber()==MAGIC && OrderType()== OP_SELL && op==2){//5
  	 Info("1.2.3",3,"","ExistPositions() found short positions ");
  	 return(True);
  	 }//5
  	}//4 
  }//3 
 }else{//2
 for ( i=0; i<OrdersTotal(); i++) {//3
  if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {//4
   if (OrderSymbol()==Symbol()) {//5
   Info("1.2.3",3,"","ExistPositions() found "+(i+1)+" positions ");
   return(True);
   }//5
  }//4 
 }//3 
}//2
}//1


double GetStopLossBuy() {return(NormalizeDouble(Bid-StopLevel*Point,Digits));} 
double GetStopLossSell() {return(NormalizeDouble(Ask+StopLevel*Point,Digits));} 
double GetTakeProfitBuy() { 	return(NormalizeDouble(Ask+TPLevel*Point,Digits)); } 
double GetTakeProfitSell() { 	return(NormalizeDouble(Bid-TPLevel*Point,Digits));} 



double Info(string MessageType="1,0,0", int Actuality = 1, string MessageHead="", string MessageBody="HI"){//1
}//1

double GetAccountFreeMargin(){  
double floatProfit;
floatProfit = AccountEquity()-AccountBalance(); 
if(floatProfit>=0){return(AccountFreeMargin());}
if(floatProfit<0 && (AccountMargin()+MathAbs(floatProfit)>=(AccountBalance()/100*LotsPercent))){return(0);}else{return(AccountFreeMargin());} 
}



double TrailingCounting(){
if(CountTrailingMode==1){ //NRTR
  int i,mode,ticket,total;
  if (prevBars!=Bars) 
  {
    ValATR=0;
    for(i=1; i<=Patr; i++) { if(i<=Patr) { ValATR+=High[i]-Low[i]; } }
    ValATR=ValATR/Patr;
     
    hi=High[Highest(NULL,0,MODE_HIGH,Prange,Prange)]; 
    lo=Low[Lowest(NULL,0,MODE_LOW,Prange,Prange)]; 
 
    if (Vts==1)  {TS=kts*ValATR; SL=Kstop*ValATR;}
    if (Vts==2)  {TS=(hi-lo);    SL=Kstop*(hi-lo);}
    prevBars = Bars;
  }

  if (Vts<1 || Vts>2)  return(0);

//-------------------------------------------------------

  for (cnt=0; cnt<=OrdersTotal(); cnt++)
  { RefreshRates();
    OrderSelect(cnt,SELECT_BY_POS, MODE_TRADES);
    mode=OrderType();
    if(OrderSymbol()==Symbol())
    {
//First Stop---------------------------------
      if (mode==OP_BUY && OrderStopLoss() == 0)
      {
        MSL(OrderTicket(),OrderOpenPrice(),Low[0]-SL,OrderTakeProfit(),0,CLR_NONE);
        //PlaySound("expert.wav");
        return(0);
      }

      if (mode==OP_SELL && OrderStopLoss() == 0)
      {
        MSL(OrderTicket(),OrderOpenPrice(),High[0]+SL,OrderTakeProfit(),0,CLR_NONE);
        //PlaySound("expert.wav");
        return(0);
      }
//Main Trailing-------------------------------
      if ((mode==OP_BUY && High[0]-OrderOpenPrice()>TS && OrderStopLoss()<High[0]-TS) || OrderStopLoss()==0)
      { 
        MSL(OrderTicket(),OrderOpenPrice(),High[0]-TS,OrderTakeProfit(),0,CLR_NONE);
        //PlaySound("expert.wav");
        return(0);
      }

      if ((mode==OP_SELL && OrderOpenPrice()-Low[0]>TS && OrderStopLoss()>Low[0]+TS) || OrderStopLoss()==0)
      { 
        MSL(OrderTicket(),OrderOpenPrice(),Low[0]+TS,OrderTakeProfit(),0,CLR_NONE);
        //PlaySound("expert.wav");
        return(0);
      }
    }
  
  return(0);
}
}
if(CountTrailingMode==3){ // Usual mode

   for ( i=0; i<OrdersTotal(); i++) { RefreshRates(); 
      if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { 
         if (OrderSymbol()==Symbol() && OrderMagicNumber()==ExpertID) { 
            if (OrderType()==OP_BUY) { 
               if (Bid-OrderOpenPrice()>UsualTrailingValue*Point) { 
                  if (OrderStopLoss()<Bid-UsualTrailingValue*Point){
                     Print(StringConcatenate("********",OrderStopLoss()," ",Bid-(UsualTrailingValue*Point)));
                     MSL(OrderTicket(),OrderOpenPrice(),(Bid-(UsualTrailingValue*Point)),OrderTakeProfit(),0,CLR_NONE); 
                  } 
               } 
            } 
         } 
      } 
   }
   
   for ( i=0; i<OrdersTotal(); i++) { RefreshRates();
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { 
     if (OrderSymbol()==Symbol() && OrderMagicNumber()==ExpertID) { 
      if (OrderType()==OP_SELL) { 
       if (OrderOpenPrice()-Ask>(UsualTrailingValue*Point)) { 
        if (OrderStopLoss()>(Ask+(UsualTrailingValue*Point)))  
         Print(StringConcatenate("Short Stops ",OrderStopLoss()," New Stops ",(Ask+(UsualTrailingValue*Point))));
         MSL(OrderTicket(),OrderOpenPrice(),Ask+(UsualTrailingValue*Point),OrderTakeProfit(),0,CLR_NONE); 
        } 
       } 
      } 
     } 
   } 
}
return(0);
}


double ND(double D,int Dig){return(NormalizeDouble(D,Dig));}
double SD(string S){return(StrToDouble(S));}
int SI(string S){return(StrToInteger(S));}
int SL(string S){return(StringLen(S));}
string STRL(string S){return(StringTrimRight(StringTrimLeft(S)));}



void MSL(int _OTicket, double _OOpenPrice, double _OStopLoss, double _OTakeProfit, datetime _OExpiration=0 , color _AColor = DeepPink){          
 int i, Pause = 500;
 int LastError=0;
 bool fm=true; 
 for (i=0; i<tryes; i++){
  Pause = Pause+Pause;
  fm = OrderModify(_OTicket,_OOpenPrice,_OStopLoss,_OTakeProfit,_OExpiration,_AColor); 
  if(!fm){LastError=GetLastError(); if(LastError>0){Info("1.2.3",1,"","There was an ERROR while order modify "+ErrorDescription(LastError)+" at "+i+" try.");} Sleep(Pause); }
  if(fm){Info("1.2",2,"","Order "+_OTicket+" Succesfully Modifyied at "+i+" try."); break;} 
 }
} 


Причина обращения: