risk management

Python: скрипт для risk management

Небольшое дополнение к посту от Aspirin и Avals. Простенькая число-дробилка, которая показывает ожидаемые параметры по системе, рассчитывает NetProfit, MaxDD, PF, %win, и число убыточных сделок подряд.

Ее можно использовать для оценки рисков по системе (risk management), т.к. как правило MaxDD одного теста нерепрезентативно, потому как может не учитывать все вероятности получения череды убыточных сделок.

Вот результат моделирования “системы” у которой avgwin = 50, avgloss = 50, win% = 50%. Теоретически мы знаем, что МО этой системы = 0. Но в зависимости от того, как падает наша монетка, мы можем получить как + так и – по этой системе.

Я прогнал 100 000 случайных генераций, по 100 трейдов с описанными выше параметрами. Что дало следующие результаты:

13

На картинке мы видим распределение случайных результатов по процентилям, 50% процентиль – это среднее значение, и оно нам подтверждает что система имеет МО = 0. Также результат показывает, что в среднем мы можем ожидать 6 убыточных сделок подряд, и есть 10% вероятность, что мы увидим 8 убытков к ряду.

Самая главная часть, состоит в том, что в 5% случаях есть вероятность увидеть просадку выше -1050, это число кстати может быть оптимистичнее, чем то что есть у вас на тестах. В силу того, что этот скрипт работает со средними значениями, его результаты несколько оптимистичны. У меня есть другой скрипт, который я опубликую для членов клуба позже.

Настройки:
1. Вероятность выигрыша в долях единицы 0.5 = 50%
winperc = 0.50
2. Средний выигрыш в % или деньгах
avgwin = 50
3. Средний проигрыш в % или деньгах
avgloss = 50
4. Минимальное число сделок в год
mintradesperyear = 100
5. Максимальное число сделок в год
maxtradesperyear = 100

FYI: Скрипт считает модель на основе годового периода, хотя это полнейшая условность.Мин и Макс число сделок в год вносит дополнительную “случайность”, можно ставить одинаковое значение.

Сам код:
Читать далее…