Проверка минимального стопа в советниках, публикуемых в маркете. - страница 15

 

засада, 

не могу понять причину.

 

 

Мин стоп на сервере 18 пунктов

 

сообщение в журнале:

2016.04.06 08:32:02     Core 1  2016.01.05 21:36:00   Result = 10016 symbol EURUSD volume 0.01 action 1 tp 1.07441 sl 1.07389 type 0 price 1.07415   Invalid stops in the request
2016.04.06 08:32:02     Core 1  2016.01.05 21:36:00   failed instant buy 0.01 EURUSD at 1.07415 sl: 1.07389 tp: 1.07441 [Invalid stops]

 

 

цена открытия сделки = 1,07415

Стоплосс =  1,07389 = 26 пунктов

Тейкпрофит = 1,07441 = 26 пунктов

 

И все равно пишет неправильные стопы.  

 
Vladislav Andruschenko:

засада, 

не могу понять причину.

 

 

Мин стоп на сервере 18 пунктов

 

сообщение в журнале:

 

 

цена открытия сделки = 1,07415

Стоплосс =  1,07389 = 26 пунктов

Тейкпрофит = 1,07441 = 26 пунктов

 

И все равно пишет неправильные стопы.  

У вас 'slippage" случаем не больше чем 'Мин стоп на сервере 18 пунктов'?
 

Slipage= 2 спреда

получается 20 пунктов, больше да.  

 
Vladislav Andruschenko:

Slipage= 2 спреда

получается 20 пунктов, больше да.  

Ну так посчитайте - проскальзывание больше чем устанавливаемый уровень SL, TP.

Во избежания такого  сначала открываю SL; TP=0 а потом модифицирую  SL; TP= Ask-26*_Point

Если нет, надо мин стоп уровень посчитать от цены +- Slipage.

 

Спасибо.  по проскальзованию поразмышляю - но никогда таких проблем не было. код работал всегда, а после предпоследнего билда (спустя с декабря) если Выставлять на стопы мин уровень сервера - то не открывает и все. 

 
Vladislav Andruschenko:

Мин стоп на сервере 18 пунктов

 цена открытия сделки = 1,07415

Стоплосс =  1,07389 = 26 пунктов

Тейкпрофит = 1,07441 = 26 пунктов

 

И все равно пишет неправильные стопы.  

Стоп для бай должен отсчитываться от цены Бид (по которой он сработает).

А у вас от СЛ до Бид всего 16 пунктов. 

 

Так а что мешает, при возникновении ошибки, отодвигать ТП/СЛ? Поймали ошибку — подвинули на спред, еще раз поймали — еще подвинули... 

 
Taras Slobodyanik:

Так а что мешает, при возникновении ошибки, отодвигать ТП/СЛ? Поймали ошибку — подвинули на спред, еще раз поймали — еще подвинули... 

Не, нужно с первого раза угадать. Код должен работать без ошибок )
 
Igor Volodin:
Не, нужно с первого раза угадать. Код должен работать без ошибок )

Именно

Andrey Khatimlianskii:

Стоп для бай должен отсчитываться от цены Бид (по которой он сработает).

А у вас от СЛ до Бид всего 16 пунктов. 

там спред учитывается, спред равнялся 8 пунктов. + мин стоп 18=26 пунктов

вот на 27 все ок.  

и далее, если человеку нужно поставить стоплосс на 100 пунктов это значит что он потеряет 100 пунктов, значит для БАЙ от цены АСК нужно считать 100 пунктов.  

а для СЕЛЛ от БИД соответственно.

//Вычисляем стоплосс
   if(StopLoss!=0)sl=MarketInfo(Symbol(),MODE_ASK)-StopLoss*Point; else sl=0;
// ВЫчисляем тейкпрофит
   if(TakeProfit!=0)tp=MarketInfo(Symbol(),MODE_ASK)+TakeProfit*Point; else tp=0;
   OPs(Symbol(),OP_BUY,GetSizeLot(),sl,tp,Magic,"");

//Вычисляем стоплосс
   if(StopLoss!=0)sl=MarketInfo(Symbol(),MODE_BID)+StopLoss*Point; else sl=0;
// ВЫчисляем тейкпрофит
   if(TakeProfit!=0)tp=MarketInfo(Symbol(),MODE_BID)-TakeProfit*Point; else tp=0;
   OPs(Symbol(),OP_SELL,GetSizeLot(),sl,tp,Magic,"");
 
Igor Volodin:
Не, нужно с первого раза угадать. Код должен работать без ошибок )

так а как не гадать? если брокер дает невреный стоплевел? %)

...понятно, что после  всех проверок  уже угадывать надо, чтобы узнать минимальный отступ

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