Помогите разобратся почему не совпадает Maximal Drawdown в тестере (разница $6..)
khorosh, не могу не согласится с вашим ответом seferer-у:
khorosh:
Цель вашего поста - показать как правильно считать просадку или показать, что тестер неправильно считает просадку? Дайте пожалуйста развернутый ответ, не будьте так лаконичны, здесь не все профессионалы. Спасибо за советник.
т.е., спасибо конечно за ссылку, чтиво бесспорно интересное но так как сроки подпирают а вы явно знакомы с проблемой, то уж пожалуйста дайте и вы "развернутый ответ"? По крайней мере укажите пожалуйста что доказывает статья - в коде ошибка или в тестере?
Я потому спрашиваю, что следить за изменением AccountEquity конечно не сложно но мне нужно рассчитать просадку за период который уже в прошлом так что мне етот метод не подходит...
Тоесть в тестере я код гоняю только для того чтоб научится как правильно считать Max Drawdown ... а в дейсвительности потом код должен будет работать на реале (или demo), изпользуая функции вроде iClose i iBarShift ...
Тоесть в тестере я код гоняю только для того чтоб научится как правильно считать Max Drawdown ... а в дейсвительности потом код должен будет работать на реале (или demo), изпользуая функции вроде iClose i iBarShift ...
DD_money = ( Prc_dd_tN - Prc_dd_t0 ) * Lots * LOTSIZE = $34.20 USD
Предполагаю, что ошибка у вас закралась вот тут. Я думаю, что вам нужно отследить, чтобы Prc_dd_tN по оси времени находилось правее, чем Prc_dd_t0. Так как, если худшая цена находится слева, то она демонстрирует рост, а не падение.
Извините, если что не так. Написал первое, что пришло в голову!
Да! Вот я уточнил:
"Maximal drawdown, максимальная просадка - это максимальная разница между одним из локальных верхних экстремумов графика изменения баланса и последующих нижних экстремумов:
MaximalDrawDown = Max of (Maximal Peak - next Minimal Peak)"
Да я понимаю Max_DD именнно так, но возможно что обяснил коряво. ( Prc_dd_tN - Prc_dd_t0 )... у меня всего лишь псевдо-код так сказать и то только для указанного примера BUY.
Я также *АБСОЛЮТНО* уверен что проверяю что Prc_dd_tN по оси времени находится правее, чем Prc_dd_t0 ... видно из логов и видно в визуализации Советника (желтые прямоугольники которые Советник рисует показывают период где произошла Макс Просадка)! Да и простым взглядом на график за период сделки видно что Max. DD произошел именно там где мой советник его показывает.
Тоесть - ошибка, если она у меня есть - не в том как я определяю где случился Max.DD (по времени и ценам). Остается что ошибка в том как я его вычисляю на базе этих данных... ошибки однако не вижу да и вычислить профит/убыль зная стар и стоп цену и колич. лотов не так уж сложно.
Если кто видит ошибку в вычислениях - скажите пожалуйста где. А если момент Максимального DD я определи правильно и убыток в этот период тоже посчитал правильно, то уж прошу покорно извинить но ТЕСТЕР СЧИТАЕТ НЕПРАВИЛЬНО!
Да я понимаю Max_DD именнно так, но возможно что обяснил коряво. ( Prc_dd_tN - Prc_dd_t0 )... у меня всего лишь псевдо-код так сказать и то только для указанного примера BUY.
Я также *АБСОЛЮТНО* уверен что проверяю что Prc_dd_tN по оси времени находится правее, чем Prc_dd_t0 ... видно из логов и видно в визуализации Советника (желтые прямоугольники которые Советник рисует показывают период где произошла Макс Просадка)! Да и простым взглядом на график за период сделки видно что Max. DD произошел именно там где мой советник его показывает.
Тоесть - ошибка, если она у меня есть - не в том как я определяю где случился Max.DD (по времени и ценам). Остается что ошибка в том как я его вычисляю на базе этих данных... ошибки однако не вижу да и вычислить профит/убыль зная стар и стоп цену и колич. лотов не так уж сложно.
прошу покорно извинить но ТЕСТЕР СЧИТАЕТ НЕПРАВИЛЬНО!

- Бесплатные приложения для трейдинга
- Форексный VPS бесплатно на 24 часа
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Написал тему на EN forum но там пока еще никто не принял близко к серцу а тема по моему интересная так что перенесу и сюда:
В кратце проблема вот в чем:
Написал EA с целью подтвердить что понимаю и могу посчитать Maximal Drawdown (тот что в тестерском табе "Reports" ) и сам.
Черта с два.
Кто-то врет - или я или Tester. Я конечно, как всегда уверен что не я, но к сожалению опыт показывает друоге.
Так помогите пожалуйста разобратся... Вот тема в Англ. форуме, там код и картинки https://www.mql5.com/en/forum/149185
А вот и примерный рассчет МахDD
- AccountCurrency = USD
- Initial Deposit = 10,000
- Symbol = EURUSD
- LOTSIZE = 100,000
- Operation = BUY
- Lots = 0.1
- Prc_Open = 1.37602
- Prc_dd_t0 = Ask Price at local Max (upper left corner of the Yell. rectangle) = 1.37973
- Prc_dd_tN = Bid Price at local Min (lower right corner of the Yell. rectangle) = 1.37631
- Prc_Close = 1.37871
.. тоестьPrc_Open - Цена откр. сделки
Prc_dd_t0 - Лучшая цена в период наибольшего локального DD
Prc_dd_tN - Худшая цена в период наибольшего локального DD
Prc_Close - Цена закр. сделки
Теперь считаем:
-------------------------------
Убыток за период локального DD : DD_money = ( Prc_dd_tN - Prc_dd_t0 ) * Lots * LOTSIZE = $34.20 USD
... теперь, так как Max DD % = DD_money / Equity к моменту t0 * 100 ...
... вычисляю Equity[ t0 ] = Balance + Profit() = 10,000 + ( 1.37973 - 1.37602 ) * 100,000 * 0.1 = 10,037.10
Таким образом Max DD % = 34.20 / 10,037.10 * 100 = 0.0034 = 0.34%
-------------------------------
Tester же говорит что Maximal Drawdown . . 40.80 (0.41%)
... a у меня (вверху) получается . . . . . . . . . . . 34.20 (0.34%)
-------------------------------
... и ни как не пойму откуда разница, вроде все правильно просчитал... Помогит пожалуйста, а то уже ум за разум заходит....