почитай здесь по поводу сравнения двух вещественных, вставь вывод GetLastError, а тестер выдает ошибку потому что у тебя текущий с.л. уже равен тому что ты хочешь поставить с точностью до ...., а вот если брать большую точность, то не равны
Да GetLastError выдает, соответсвенно, 1. Это и в логе видно
15:25:14 2007.01.23 11:06 May Test GBPUSD,H4: OrderModify error 1
15:25:14 2007.01.23 11:06 May Test GBPUSD,H4: OrderModify error 1
зачем гадать, преобразуй в текстовое с точностью например до 8 знаков и выведи
Print( DoubleToStr(OrderStopLoss(),8) ," < ",DoubleToStr(SL,8));
Вставил.
Вот результат
Вот результат
09:47:23 2007.08.24 20:35 May Test GBPUSD,H1: 1.98450000 < 1.98450000
Легче не стало. Может касяк в не в советнике, а в MT4?
Господа разработчики. Кто тут не прав. Рассудите.
да, что-то не то .... (может разница дальше, я думал восьми знаков будет достаточно)
ну наверно не повредит все таки сделать так: вставляем функцию
ну наверно не повредит все таки сделать так: вставляем функцию
//+---------------------------------------------------------------------------------------------------------------------------------------------------+ //| функция возвращает истину если первое число больше второго | //+---------------------------------------------------------------------------------------------------------------------------------------------------+ bool GreaterDoubles(double number1,double number2,int dig) { if(NormalizeDouble(number1-number2,dig)>0) return(true); else return(false); } //=====================================================================================================================================================
и вместо if(OrderStopLoss()<SL)
пишем if( GreaterDoubles(SL,OrderStopLoss(),Digits) )
Всего в double 15 знаков должно быть. То есть если взять разность и умножить на 10000000 разница должна всплыть в восьмом знаке. Если конечно эти операции её не уничтожат :)
bool GreaterDoubles(double number1,double number2,int dig)
Вроде все случилось. Огромное спасибо.
:) бувай
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Может я что-то не вижу в упор.
Вот кусок кода
И после всего этого тостер периодически выдает ошибку OrderModify error 1.
В логе он пишет вот што:
15:25:14 2007.01.23 11:06 May Test GBPUSD,H4: 1.9546 < 1.9546
15:25:14 2007.01.23 11:06 May Test GBPUSD,H4: OrderModify error 1
15:25:14 2007.01.23 11:06 May Test GBPUSD,H4: 1.9546 1.9546
То есть по его мнению 1.9546 меньше 1.9546. Что тут за беда?