Алгоритм расчёта просадки, или Самостоятельная оценка результатов тестирования эксперта - страница 4
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Просадку надо считать по Equity.
А для этого надо проводить нужные расчеты не один раз в конце работы (в deinit()-е), а на каждом тике (в start()-е).
Но работа замедляется, в принципе, не сильно.
Ну наверное можно и в deinit'e пройтись по всем ордерам анализом.
Но мне все равно, лишь бы вычислительные затраты были приемлемые.
Дайте код плиз! :)
Точно! (вприпрыжку побежал набрасывать код контроля просадки...)
Причём, код по разному должен работать в тестере и в реале. В тестере нужно пользоваться... (вот опять наступаем на грабли непродуманной терминологии) глобальными переменными модуля, а в реале - глобальными переменными терминала.
В реале Гл. переменные не помогут - эксперт не в состоянии ловить все тики, да и паузы в работе могут быть (по разным причинам).
А к вопросу терминологии тут как-то сложилось терминальные переменные называть с большой буквы или GV. Все остальное - переменные, объявленные на глобальном уровне.
Ну наверное можно и в deinit'e пройтись по всем ордерам анализом.
Но мне все равно, лишь бы вычислительные затраты были приемлемые.
Дайте код плиз! :)
Не по любому символу получится точно рассчитать плавающую прибыль на истории, да и незачем это.
В старте вставьте вот такой код:
Если глобальные переменные терминала не помогут, то что поможет?
И потом, почему собс-но не помогут? С одной стороны, причём здесь ловля всех тиков? А с другой стороны, если эксперт работает не на древнем пне и не перегружен по самое не балуй, то нормально ловятся все тики. Пауза - ну извините, против лома нет приёма. Кроме как другого лома. Стоплоссы не надо забывать ставить. Пауза пройдёт, - пересчитаем эквити, не проблема.
Я бы в этот код добавил строку
eq = AccountEquity()
а потом работал бы с переменной. Вот так, например:
Уж больно неэффекивно каждый раз лопатить терминальную функцию работы со счётом.
Прогнал через тестер. И абсолютная и относительная просадка совпали с абсолютной точностью с тем, что считает сам терминал.
Если глобальные переменные терминала не помогут, то что поможет?
И потом, почему собс-но не помогут? С одной стороны, причём здесь ловля всех тиков? А с другой стороны, если эксперт работает не на древнем пне и не перегружен по самое не балуй, то нормально ловятся все тики. Пауза - ну извините, против лома нет приёма. Кроме как другого лома. Стоплоссы не надо забывать ставить. Пауза пройдёт, - пересчитаем эквити, не проблема.
Пропустив тик, на котором было максимальное эквити, вы получите ошибку в рассчете просадки.
Я бы в этот код добавил строку
eq = AccountEquity()
Я бы тоже добавил, если бы писал не в редакторе сообщений форума ;)
Не по любому символу получится точно рассчитать плавающую прибыль на истории, да и незачем это.
В старте вставьте вот такой код:
Ок! Хотя вначале я подумал, что Ваш код считает "просадку наоборот":
Но был не прав, то есть расчет верный.
Просто жаль было времени тратить на него, т.к., как видим, есть готовый.
P.S. Shaitan, Ваш еще не проверил.
Пропустив тик, на котором было максимальное эквити, вы получите ошибку в рассчете просадки.
Ну, это мелочи. Тиком меньше, тиком больше. Погоды не сделает.
Мне думается, такой подход не верен. Вот что он рассчитает, имхо:
А нужно то, где вопросы.
Но может я не прав?
Конечно не прав :) Вы перепутали прошлое с будущим, - очерёдность двух событий. Зелёную стрелку скорей следует назвать DrawUp! :)))
Я ж написал, код проверен, совпадение абсолютное.
Конечно не прав :) Вы перепутали прошлое с будущим, - очерёдность двух событий. Зелёную стрелку скорей следует назвать DrawUp! :)))
Я ж неписал, код проверен, совпадение абсолютное.
Почему это я перепутал?
Читаем мануал: Максимальная просадка — наибольший убыток от локального максимума в валюте депозита и в проценте от депозита.
На мой взгляд, зеленая линия как раз показывает наибольший убыток от локальной вершины, что и нужно.
А Вы как определяете, что такое максимальная просадка? Дайте определение или покажите на этом графике.
Ваш код все еще не проверил. :)