Статья: Как сократить код торгового эксперта, попутно упростив себе жизнь и уменьшив число возможных ошибок
double closePrice = iif( orderDirection() > 0, Bid, Ask ); bool modified = OrderModify( OrderTicket(), OrderOpenPrice(), closePrice - orderDirection() * Point * TrailingStop, OrderTakeProfit(), OrderExpiration() ); int error = GetLastError(); if( !modified && error != ERR_NO_RESULT ) { Print( "Failed to modify order " + OrderTicket() + ", error code: " + error ); }Вроде обсуждалось на форуме , что факт модификации так отследить нельзя.
Извиняюсь за непонятливость, а в чем собственно вопрос?
|
А что непонятного-то? Не понимаю... Какие могут быть альтернативы - либо модифицировал, либо нет... Все.
|
Вроде обсуждалось на форуме , что факт модификации так отследить нельзя.
А вот идентификация факта модификации посредстсвом булевой функции - это что-то непонятное.
Вроде обсуждалось на форуме , что факт модификации так отследить нельзя.
'Движение стопа'
FION, не знаю, поняли Вы уже или нет, но скажу на всякий случай. Вы ошибочно смешали в кучу две разные вещи:
- Исполнение функции OrderModify()
- Модификация ордера
Факт исполнения функции OrderModify() проверяется возвращаемым ею значением логического типа. True - функция исполнилась, False - функция не исполнилась.
Факт модификации ордера проверяется сравнением значений функций:
- OrderPriceOpen()
- OrderStopLoss()
- OrderTakeProfit()
- OrderExpiration()
после модификации ордера со значениями этих же функций до модификации ордера. Если какое-то значение изменилось, значит ордер был модифицирован.
В кусочке кода, который Вы привели в своём первом посте этой темы, автор кода отслеживает факт исполнения функции OrderModify(), а не факт модификации ордера.
Описанная концепция, на мой взгляд, обладает следующими серьезными преимуществами:
сокращение исходного кода, без потери функциональности, и как следствие, сокращение временных затрат на разработку и отладку торговых систем;
уменьшение числа потенциальных ошибок;
увеличение вероятности обнаружения существующих ошибок;
упрощение дальнейшей модификации торгового эксперта (изменения автоматически распространяются как на длинные, так и на короткие сигналы и позиции).
Автор: Roman Kramar