Ответить
03.06.2014, 22:30
Аватар для dzennn2
dzennn2 dzennn2 вне форума Новичок форума
Регистрация: 15.01.2013 / Сообщений: 16
Поблагодарили 21 раз(а) / Репутация: 22

По умолчанию Не одинаково компилятся старые совы в 4хх и в 6хх терминале

Всем известный сов паук.
Исходник откомпиленный в 646 работает не так, как тот же исходник откомпиленный в 451.

строка в 451
if (OrderType() == OP_BUY && Bid - OrderOpenPrice() >= MaxTP * gdBeN248 || Bid - OrderOpenPrice() <= (-MaxSL) * gdBeN248) return (1);


должна быть с приоритетными скобками вот так
if (OrderType() == OP_BUY && (Bid - OrderOpenPrice() >= MaxTP * gd_248 || Bid - OrderOpenPrice() <= (-MaxSL) * gd_248) ) return (1);

иначе пипец.

Вывод старые совы нельзя перекомпиливать новым терминалом.
04.06.2014, 07:45
Аватар для AlexeyVik
AlexeyVik AlexeyVik вне форума Программист mql4 mql5
Регистрация: 19.11.2009 / Сообщений: 2,660
Поблагодарили 3,789 раз(а) / Репутация: 3781
Вывод старые совы нельзя перекомпиливать новым терминалом.
НЕПРАВИЛЬНЫЙ вывод.
Надо чуток побольше читать об изменениях языка. В mql4 старых билдов условие проверялось полностью, а в новых были внесены изменения и при первом не выполненном условии проверка прекращается. Поэтому все условия имеющие || надо переписывать с учётом этих изменений, что ты и сделал. Но это не значит что нельзя перекомпиливать новым терминалом.

Последний раз редактировалось AlexeyVik; 04.06.2014 в 07:47.
04.06.2014, 09:11
Аватар для dzennn2
dzennn2 dzennn2 вне форума Новичок форума
Регистрация: 15.01.2013 / Сообщений: 16
Поблагодарили 21 раз(а) / Репутация: 22
НЕПРАВИЛЬНЫЙ вывод.
Надо чуток побольше читать об изменениях языка. В mql4 старых билдов условие проверялось полностью, а в новых были внесены изменения и при первом не выполненном условии проверка прекращается. Поэтому все условия имеющие || надо переписывать с учётом этих изменений, что ты и сделал. Но это не значит что нельзя перекомпиливать новым терминалом.
Вывод правильный для тех, кто не может сам исправить сову. Т.е. старую сову нельзя копировать только как исходник mq4. Надо копировать и ex4.

Тут вообще просто как правило должно быть - старые совы только ex4. А иначе добавляется куча проблем - сравнительное тестирование на истории, потом исправление кода. И оно надо...???
Ответить


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Текущее время: 22:31. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO