ошибка 4756 - страница 4

 
RaptorUK:

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

Хорошо, одна загадка решена... Я не знал, что спред, используемый в тестере стратегий, берется из исторических данных, в частности, из данных M1. Причина, по которой у меня недействительные стопы в моем тестере стратегий, заключается в том, что спред больше, чем мой SL. Я добавлю тест для этого.

 

Konstantin83:
2013.03.10 11:19:18    2012.01.04 15:00:00   failed buy stop 1.00 EURUSD at 1.30505 sl: 1.28375 tp: 1.30375 [Invalid stops]

Я не понимаю недействительный стоп. sl находится ниже buy sl: 1.28375 <1.30505?

 
Konstantin83:

CopyHigh(_Symbol,_Period,TimeCurrent(),5,hg);

Top = NormalizeDouble(rates[ArrayMaximum(hg,0,WHOLE_ARRAY)].high,_Digits); 

- Непонятная конструкция.
Выбираем среди значений максимума double и используем его вместо целочисленного индекса

спасибоKonstantin83 :

но я не понимаю, что вы говорите.

top - это максимум из последних 5 свечей и top - это двойной, а не целочисленный индекс

вверху
 

dan5:

Я не понимаю недействительный стоп. sl ниже buy sl: 1.28375 <1.30505?


Не воспринимайте "Недействительные стопы" слишком буквально. Это не только Stop Loss, это также может быть цена входа и/или TP. Когда вы получите ошибку, распечатайте следующую информацию, это поможет вам разобраться, что пошло не так:

  1. тип сделки, Buy Limit, Buy, Sell, Sell Stop и т.д.
  2. цена Ask
  3. цена Bid
  4. цена входа
  5. SL
  6. ТП
  7. уровень заморозки
  8. уровень стопов
  9. номер ошибки (и описание ошибки, если очень хочется).
Вы также должны прочитать эту статью, она была написана для mql4, но я уверен, что она применима и к mql5:Требования и ограничения при заключении сделок
Requirements and Limitations in Making Trades - Appendixes - MQL4 Tutorial
  • book.mql4.com
Requirements and Limitations in Making Trades - Appendixes - MQL4 Tutorial
 

dan5:

2013.03.10 11:19:18 2012.01.04 15:00:00 failed buy stop 1.00 EURUSD at 1.30505 sl: 1.28375 tp: 1.30375 [Invalid stops]


Я не понимаю недействительный стоп. sl находится ниже buy sl: 1.28375 <1.30505 ?


Вы заметили, что вход 1.30505 > TP 1.30375?
 
RaptorUK:
Вы заметили, что вход 1.30505 > TP 1.30375?

спасибо за помощь, я изменил свои sl и tp, теперь все в порядке.

mrequest.sl = NormalizeDouble( mrequest.price + STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormalizeDouble( mrequest.price - TKP*_Point,_Digits);// Take Profit

вместо:

mrequest.sl = NormalizeDouble(latest_price.bid + STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormalizeDouble(latest_price.bid - TKP*_Point,_Digits); // Take Profit

 
dan5:

спасибо за помощь, я изменил свои sl и tp, теперь все в порядке.

mrequest.sl = NormalizeDouble( mrequest.price + STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormalizeDouble( mrequest.price - TKP*_Point,_Digits);// Take Profit

вместо:

mrequest.sl = NormalizeDouble(latest_price.bid + STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormalizeDouble(latest_price.bid - TKP*_Point,_Digits); // Take Profit

Это хорошая новость, надеюсь, вы не возражаете, что я подмял под себя вашу тему, но я думаю, что мы оба получили что-то полезное из этого в конце концов :-)
 
RaptorUK:
Это хорошие новости, надеюсь, вы не возражаете, что я подмял под себя вашу тему, но я думаю, что мы оба получили что-то полезное из этого в конце концов :-)
Нашли ли вы другое решение, которое я предлагаю с помощью OnTradeTransaction, чтобы продолжить sl & tp на Market Execution (ECN брокер) случае?
 
angevoyageur:
Нашли ли вы другое решение, которое я предлагаю с помощью OnTradeTransaction, чтобы продолжить sl & tp в случае рыночного исполнения (ECN брокер)?
Код, который я предложил в этом посте https://www.mql5.com/en/forum/11051#comment_446272 работает нормально, насколько я могу судить, я предположил, что он не работает в тестере стратегий из-за того, что мое предположение о фиксированном спреде (как в MT4) было неверным. Мой код теперь работает в тестере стратегий и в демо для символов с типом исполнения Instant или Exchange, мой код определяет тип и посылает соответствующий запрос(ы). В идеале я хотел бы, чтобы мой код автоматически обрабатывал любой тип исполнения.
 
RaptorUK:
Код, который я предложил в этом посте https://www.mql5.com/en/forum/11051#comment_446272 работает нормально, насколько я могу судить, я предположил, что он не работает в тестере стратегий из-за того, что мое предположение о фиксированном спреде (как в MT4) было неверным. Теперь мой код работает в тестере стратегий и в демо для символов с типом исполнения Instant или Exchange, мой код определяет тип и посылает соответствующий запрос(ы). В идеале я хотел бы, чтобы мой код автоматически обрабатывал любой тип исполнения.
А, хорошо, я пропустил это.