Ошибки, баги, вопросы - страница 1126 1...111911201121112211231124112511261127112811291130113111321133...3775 Новый комментарий Aleksandr Prishenko 2014.04.12 15:04 #11251 Как объясняется такое закрытие позиции в тестере? Расширением спреда? Скриншоты торговой платформы MetaTrader EURUSD, M20, 2014.04.12 Альфа-Форекс, MetaTrader 5, Real temp_file_screenshot_63279.png Artem Temnikov 2014.04.12 15:11 #11252 Crucian: Как объясняется такое закрытие позиции в тестере? Расширением спреда?[img]https://charts.mql5.com/4/434/eurusd-m20-alfa-foreks-temp-file-screenshot-63279-png.png[/img] Если произошло расширение спрэда (а судя по скрину - пунктов на 720! по пятизнаку), то всё верно.Позиция на продажу закрылась по цене Ask. Это если были выставлены стопы.Кстати, у вашего брокера Альфа-Форекс в конце недели и в начале бывают просто гигантские спрэды.Наверное они записались в историю котировок, а тестер сэмулировал торговлю по ним. Стопы на выходные оставлять опасно - от гэпа они всё равно не спасут, а расширение спрэда поймать могут легко. Стратегия инвестирования в валютную Почему BUY сделки совершаются Цена исполнения выше максимума A100 2014.04.12 15:35 #11253 Fleder: for(int t=0;t<LONG_MAX+1;t++) {max++;} //так предупреждение есть, но цикл не работаетЗдесь нет ошибки, поскольку LONG_MAX+1 < 0 for(int t=0;t<LONG_MAX;t++) {max++;} //так получаем предупреждение expression is always true, цикл работаетЗдесь предупреждение обоснованнное (t<LONG_MAX всегда true, если t int ) бесконечный цикл Artem Temnikov 2014.04.12 15:51 #11254 void OnStart() { uchar max=0; for(int t=0;t<ULONG_MAX-1e0;t++) {max++;} //так цикл работает, предупреждения нет так как ULONG_MAX-1e0 имеет тип double for(int t=0;t<ULONG_MAX-1;t++) {max++;} //а так нет и предупреждения тоже нет Print("Done!"); } A100 2014.04.12 16:03 #11255 Fleder: for(int t=0;t<ULONG_MAX-1;t++) {max++;} //а так нет и предупреждения тоже нет Здесь нет ошибки, поскольку ULONG_MAX-1 < 0, т.е. в операции сравнения приводится к int или long - точнее идет побитовое сравнение Artem Temnikov 2014.04.12 16:18 #11256 A100: Нет ошибки, поскольку ULONG_MAX-1 < 0, поскольку в операции сравнения приводится к int Тогда как объяснить это:void OnStart() { long t=0; bool comp=(ULONG_MAX-1>t); Print("comp = ",comp); //comp = true Print(ULONG_MAX-1); //18446744073709551614 Print(ULONG_MAX); //18446744073709551615 } Artem Temnikov 2014.04.12 16:32 #11257 A100: Здесь нет ошибки, поскольку ULONG_MAX-1 < 0, т.е. в операции сравнения приводится к int или long Вы имеете в виду сравнение именно в проверяемом выражении в цикле?Потому как в простом сравнении вроде как не так. Artem Temnikov 2014.04.12 16:42 #11258 A100: Просто поменяйте их местами :)А что даёт эта перестановка? t как была меньше, чем ULONG_MAX-1, так и осталась.void OnStart() { long t=0; Print( (t < ULONG_MAX-1) == (ULONG_MAX-1 < t)); //false } A100 2014.04.12 16:48 #11259 Fleder: А что даёт эта перестановка? t как была меньше, чем ULONG_MAX-1, так и осталась.Это я неправильный пример привел - там было сравнение с int, а здесь с longfor(int t=0void OnStart() { long t=0; Artem Temnikov 2014.04.12 16:49 #11260 Приоритет типов uint и ulong выше, чем у int и long: Логично было бы в сравниваемых выражениях использовать преобразование к старшему типу.Но похоже, что это не относится к проверяемым выражениям циклов. 1...111911201121112211231124112511261127112811291130113111321133...3775 Новый комментарий
Как объясняется такое закрытие позиции в тестере? Расширением спреда?
Скриншоты торговой платформы MetaTrader
EURUSD, M20, 2014.04.12
Альфа-Форекс, MetaTrader 5, Real
temp_file_screenshot_63279.png
Как объясняется такое закрытие позиции в тестере? Расширением спреда?
[img]https://charts.mql5.com/4/434/eurusd-m20-alfa-foreks-temp-file-screenshot-63279-png.png[/img]
Если произошло расширение спрэда (а судя по скрину - пунктов на 720! по пятизнаку), то всё верно.
Позиция на продажу закрылась по цене Ask. Это если были выставлены стопы.
Кстати, у вашего брокера Альфа-Форекс в конце недели и в начале бывают просто гигантские спрэды.
Наверное они записались в историю котировок, а тестер сэмулировал торговлю по ним.
Стопы на выходные оставлять опасно - от гэпа они всё равно не спасут, а расширение спрэда поймать могут легко.
Здесь нет ошибки, поскольку LONG_MAX+1 < 0
Здесь предупреждение обоснованнное (t<LONG_MAX всегда true, если t int ) бесконечный циклНет ошибки, поскольку ULONG_MAX-1 < 0, поскольку в операции сравнения приводится к int
Тогда как объяснить это:
Здесь нет ошибки, поскольку ULONG_MAX-1 < 0, т.е. в операции сравнения приводится к int или long
Вы имеете в виду сравнение именно в проверяемом выражении в цикле?
Потому как в простом сравнении вроде как не так.
Просто поменяйте их местами :)
А что даёт эта перестановка? t как была меньше, чем ULONG_MAX-1, так и осталась.
А что даёт эта перестановка? t как была меньше, чем ULONG_MAX-1, так и осталась.
Это я неправильный пример привел - там было сравнение с int, а здесь с long
Приоритет типов uint и ulong выше, чем у int и long:
Логично было бы в сравниваемых выражениях использовать преобразование к старшему типу.
Но похоже, что это не относится к проверяемым выражениям циклов.