Ошибки, баги, вопросы - страница 323

 
alexluek:

хм... опять появилась

наверное нехватает чтото  NormalizeDouble

при чем здесь нормализация числа к потере данных?

Документация по MQL5: Преобразование данных / NormalizeDouble
Документация по MQL5: Преобразование данных / NormalizeDouble
  • www.mql5.com
Преобразование данных / NormalizeDouble - Документация по MQL5
 

Возможно но факт - сейчас попробовал - ничего не изменилось.

HR      0       Prost_Dol-2 (USDCHF,M5) 16:47:53        2011.01.03 18:30:00   1,,,,,,,,,,,Open1[0]=0.93297Open2[0]=0.9329
IL      0       Prost_Dol-2 (USDCHF,M5) 16:47:53        2011.01.03 18:30:00   1,,,,,,,,,,,ss=6.999999999999999e-005

 как видно разница не та что по числам выше, походуся - идти нужно в сервисдеск?

 
alexluek:

Возможно но факт - сейчас попробовал - ничего не изменилось.

 как видно разница не та что по числам выше, походуся - идти нужно в сервисдеск?

6.999999999999999e-005 = 0.00006999999999999999 = 0.00007

всё верно

почитайте про вещественные числа, как Вам советуют

 
AlexSTAL:

6.999999999999999e-005 = 0.00006999999999999999 = 0.00007

всё верно

почитайте про вещественные числа, как Вам советуют

 

т.е. в расчетах (в программе) на работу программы это не влияет!

Понял спасибо! 

 
alexluek:

Возможно но факт - сейчас попробовал - ничего не изменилось.

 как видно разница не та что по числам выше, походуся - идти нужно в сервисдеск?

Ещё раз. Почитайте в справке про вещественные числа! Сервисдеск Вам тут не поможет.

Лучше организуйте самостоятельно форматирование вывода, а не надейтесь на чистую функцию Print 

Документация по MQL5: Общие функции / PrintFormat
Документация по MQL5: Общие функции / PrintFormat
  • www.mql5.com
Общие функции / PrintFormat - Документация по MQL5
 
alexluek:

Возможно но факт - сейчас попробовал - ничего не изменилось.

 как видно разница не та что по числам выше, походуся - идти нужно в сервисдеск?

Давайте поймем сначала, что именно Вы считаете неправильным?

Если вы имеете ввиду результат

6.999999999999999e-005

То это не ошибка. Это действительно так и описано это в справке. Именно по этой причине 0,93297-0,9329=0,00007 -> 6,999999999999999e-005. Вы получите тот же результат, если выполните

Print(0.00007);

Если вы хотите организовать красивый вывод на печать результата 0,93297-0,9329=0,00007, то используйте функцию DoubleToString.

 
alexvd:

Давайте поймем сначала, что именно Вы считаете неправильным?

Если вы имеете ввиду результат

То это не ошибка. Это действительно так и описано это в справке. Именно по этой причине 0,93297-0,9329=0,00007 -> 6,999999999999999e-005. Вы получите тот же результат, если выполните

Если вы хотите организовать красивый вывод на печать результата 0,93297-0,9329=0,00007, то используйте функцию DoubleToString.

 

т.е. в расчетах (в программе) на работу программы это не влияет!

Понял спасибо! 

 
alexluek:

т.е. в расчетах (в программе) на работу программы это не влияет!

Понял спасибо! 

Именно так
 

Возвращаясь к моему вопросу с падением тестера, поясню еще. Стандартный штатный советник Moving Average не падает, работает корректно.

Мой же советник не доходит до конца работы, происходит разрыв соединения:

Какие действия могут привести к разрыву соединения? Что я могу делать не так? 

Происходит это не сразу, на истории в 4 месяца только под конец 4-го происходит дисконнект, до этого тестер работает, сделки заключаются. 

 

В своё время не прояснил этот вопрос теперь мучаюсь в сомнениях.

Как правильно резервировать память?

так

ArrayResize(arr,2001,2016);
или так
ArrayResize(arr,2001,15);

И поправьте справку, а то очень двусмысленно.

ЗЫ В приведённых вариантах подразумевается что размер распределённой памяти с учётом резервирования должен быть 2016.

Причина обращения: