терминал не падает пока я не нажму хотя бы одну из кнопок.
как только нажимаю сразу выдается сообщение о поиске причины краха и пути ее устранения...
Обратите внимание, что MQL5 скрипт после завершения OnStart автоматически выгружается, включая Вашу DLL.
То есть, в памяти висит Вами созданный поток с модальным окном, а у него из-под ног выбили табуретку. После закрытия модального окна возврат происходит в никуда.
В Вашем случае перед завершением MQL5 скрипта Вам нужно явно ждать пока все потоки DLL будут завершены штатно и гарантированно.
В случае, если в серии сделок не было ни одной убыточной, то показатели PROFIT FACTOR и SHARPE RATIO принимают какие-то нереальные/экстремальные значения. Это ошибка или такие моменты нужно просто учитывать и как-то обрабатывать? Как это сделать правильно?
tol64: В случае, если в серии сделок не было ни одной убыточной, то показатели PROFIT FACTOR и SHARPE RATIO принимают какие-то нереальные/экстремальные значения. Это ошибка или такие моменты нужно просто учитывать и как-то обрабатывать? Как это сделать правильно?
tol64: В случае, если в серии сделок не было ни одной убыточной, то показатели PROFIT FACTOR и SHARPE RATIO принимают какие-то нереальные/экстремальные значения. Это ошибка или такие моменты нужно просто учитывать и как-то обрабатывать? Как это сделать правильно?
Видимо ошибка, так как профитфактор не должен рассчитываться при отрицательных значениях, ну и как в данном случае при отсутствии отрицательных сделок.
Просто если взять формулу влоб (Gross Profit/Gross Loss) то при отсутствии отрицательных сделок получаем деление на ноль, а при большем Gross Loss получим число меньше 1, что тоже не правильно для дальнейшего анализа, тк разница между двумя положительными профитфакторами будет в разы больше чем разница между двумя условно говоря отрицательными.
Видимо ошибка, так как профитфактор не должен рассчитываться при отрицательных значениях, ну и как в данном случае при отсутствии отрицательных сделок.
Уже было сказано двумя постами выше, что это не ошибка, а признак невозможности рассчитать данный показатель.
Rosh: Уже было сказано двумя постами выше, что это не ошибка, а признак невозможности рассчитать данный показатель.
Спрашивающий не указал какое именно запредельное значение получается, поэтому я решил что #IND. А в случае с DBL_MAX вполне логично, если нельзя вычислить. Хотя можно сделать один финт, при каждом вычислении добавлять 1 цент и к Gross Porofit и к Gross Loss. Тогда прямая формула будет ((Gross Porofit+0.01)/(Gross Loss+0.01)) А формулу для вычисления обратного значения (когда Gross Loss больше) сделать -((Gross Loss+0.01)/(Gross Porofit+0.01)) Ну понятно что Gross Loss и Gross Porofit это модули.
Тогда линия будет симметрична с обоих сторон что хорошо для ГА и не будет вообще невычислимых ситуаций.
ЗЫ Но это будет полезно скорее не вам, а людям которые пишут свои критерии оптимизации.
Создаю пользовательский индикатор который использует значение нулевого и первого бара встроенного индикатора.
Отлично подойдет пример в котором будет построен индикатор в отдельном окне использующий для построения текущего бара значения встроенного индикатора для предыдущих баров.
Я не буду перечислять все новые возможности и особенности нового терминала и языка. Их действительно много, и некоторые новинки вполне достойны освещения в отдельной статье. Вы не увидите здесь кода, написанного по принципам объектно-ориентированного программирования — это слишком серьезная тема для того, чтобы просто быть упомянутой в контексте как дополнительная вкусность для кодописателей. В этой статье остановимся подробней на индикаторах, их строении, отображении, видах, а также особенностях их написания по сравнению с MQL4.
Господа, а кто-нибудь запускал мультивалютник в режиме визуализации по ценам открытия с обращением к другим ТФ?
Вот дневной график:
терминал не падает пока я не нажму хотя бы одну из кнопок.
как только нажимаю сразу выдается сообщение о поиске причины краха и пути ее устранения...
Обратите внимание, что MQL5 скрипт после завершения OnStart автоматически выгружается, включая Вашу DLL.
То есть, в памяти висит Вами созданный поток с модальным окном, а у него из-под ног выбили табуретку. После закрытия модального окна возврат происходит в никуда.
В Вашем случае перед завершением MQL5 скрипта Вам нужно явно ждать пока все потоки DLL будут завершены штатно и гарантированно.
Обратите внимание, что MQL5 скрипт после завершения OnStart автоматически выгружается, включая Вашу DLL.
То есть, в памяти висит поток с модальным окном, а у него из-под ног выбили табуретку. После закрытия модального окна возврат происходит в никуда.
В Вашем случае перед завершением MQL5 скрипта Вам нужно явно ждать пока все потоки DLL будут завершены штатно и гарантированно.
В случае, если в серии сделок не было ни одной убыточной, то показатели PROFIT FACTOR и SHARPE RATIO принимают какие-то нереальные/экстремальные значения. Это ошибка или такие моменты нужно просто учитывать и как-то обрабатывать? Как это сделать правильно?
EMPTY_VALUE (то же самое, что и DBL_MAX)
Можно конечно применить какойнибудь неопределённый nan, но тогда нельзя проводить сравнения.
EMPTY_VALUE (то же самое, что и DBL_MAX)
Можно конечно применить какойнибудь неопределённый nan, но тогда нельзя проводить сравнения.
В случае, если в серии сделок не было ни одной убыточной, то показатели PROFIT FACTOR и SHARPE RATIO принимают какие-то нереальные/экстремальные значения. Это ошибка или такие моменты нужно просто учитывать и как-то обрабатывать? Как это сделать правильно?
Видимо ошибка, так как профитфактор не должен рассчитываться при отрицательных значениях, ну и как в данном случае при отсутствии отрицательных сделок.
Просто если взять формулу влоб (Gross Profit/Gross Loss) то при отсутствии отрицательных сделок получаем деление на ноль, а при большем Gross Loss получим число меньше 1, что тоже не правильно для дальнейшего анализа, тк разница между двумя положительными профитфакторами будет в разы больше чем разница между двумя условно говоря отрицательными.
Видимо ошибка, так как профитфактор не должен рассчитываться при отрицательных значениях, ну и как в данном случае при отсутствии отрицательных сделок.
Уже было сказано двумя постами выше, что это не ошибка, а признак невозможности рассчитать данный показатель.
Хотя можно сделать один финт, при каждом вычислении добавлять 1 цент и к Gross Porofit и к Gross Loss.
Тогда прямая формула будет ((Gross Porofit+0.01)/(Gross Loss+0.01))
А формулу для вычисления обратного значения (когда Gross Loss больше)
сделать -((Gross Loss+0.01)/(Gross Porofit+0.01))
Ну понятно что Gross Loss и Gross Porofit это модули.
Тогда линия будет симметрична с обоих сторон что хорошо для ГА и не будет вообще невычислимых ситуаций.
ЗЫ Но это будет полезно скорее не вам, а людям которые пишут свои критерии оптимизации.
Добрый день.
Все никак не получается перейти c ML4 на ML5.
Создаю пользовательский индикатор который использует значение нулевого и первого бара встроенного индикатора.
Отлично подойдет пример в котором будет построен индикатор в отдельном окне использующий для построения текущего бара значения встроенного индикатора для предыдущих баров.
Уже спасибо.