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

Метод Монте-Карло в трейдинге

Определение объема сделки в трейдинге — задача не из легких. Существует ряд подходов к вычислению доли капитала под риском:

  • некая случайная величина, основанная на интуиции (не самый лучший подход);
  • фиксированный лот;
  • фиксированная фракция (или фиксированный риск на сделку);
  • критерий Келли и т.д.

В своей алгоритмической практике я предпочитаю фиксированную фракцию. В этой статье показан подход для вычисления оптимальной фракции (доли) капитала под риском с помощью метода Монте-Карло.

Содеражание

Видео о методе Монте-Карло

Что такое метод Монте-Карло

Метод Монте-Карло (МК) — вероятностный метод вычисления различных событий, где финальный результат в большей степени непредсказуем. Если еще проще, данный метод помогает получить вероятностный исход любого события.

Если брать трейдинг и инвестиции, то данный подход может подсказать лучший или худший сценарий для определенной стратегии или портфеля. Именно это мы и будем делать в данной статье. Но обо всем по порядку. 

Виды Монте-Карло

Подойти к использованию МК можно творчески. Разберем несколько вариаций.

Рандомизация месячной доходности

Допустим, есть у нас какая-то результативность стратегии на бэктесте. Что можем попробовать с ней сделать? Можно, например, начать менять значения месячной доходности местами в случайном порядке. По итогу финальная доходность у нас будет примерно одна и та же, а вот просадка может меняться. Сделав такую симуляцию раз 100, мы получим много полезных данных.

Метод Монте-Карло
Черная кривая — кривая доходности стратегии на бэктесте. Остальные кривые — те самые симуляции с заменой месячной доходности.

Рандомизация отдельных трейдов

Аналогично можно поработать и с отдельными сделками. Меняя их местами в случайном порядке, мы проводим дополнительный краш-тест стратегии.

Метод Монте-Карло
Черная кривая — кривая доходности стратегии на бэктесте, остальные кривые — симуляции с заменой.

Есть еще несколько других симуляций, но на них не будем сейчас останавливаться. Перейдем к тому методу Монте-Карло, который используем мы. И сперва начнем с исследования риск-модели.

Какие факторы играют в вычислении объема сделки?

Прежде чем приступить к обсуждению логики вычисления оптимальной фракции (риск на сделку) нужно ввести 2 условия.

Первое — это обязательное использование стоп-лосса. Без стоп-лосса всякие вычисления становятся бессмысленными.

Стоп-лосс — это самый важный фактор, который лежит в основе всей логики, которую мы станем описывать ниже. Когда срабатывает стоп-лосс, наш счет сокращается на некую величину. Эта величина может быть суммой в валюте счета, которую мы можем себе позволить потерять. Также это может быть величина, соответствующая оптимальной фракции, вычислениями которой мы сейчас займемся.

Подробнее о важности стоп-лосса — в статье Что такое стоп-лосс, в чем его ценность и какой лучше использовать? Разберемся на анализе 2 365 алгоритмов или в видео ниже:

Второе условие.

В экспериментах ниже мы допускаем, что фракция капитала остается одинаковой вне зависимости от размера счета.

Одна стандартная фракция — это хороший подход. Ведь тогда вам все равно, каким капиталом вы управляете. Это может быть несколько сот долларов или несколько миллионов. Логика всегда одна.

Ок, переходим к факторам.

За 1 час поможем разобраться с факторами успеха и причинами неудач на финансовых рынках

6 уроков онлайн-курса и 50 минут видео подскажут, как не терять деньги при трейдинге и куда следовать для эффективного развития.

Фактор №1. Количество сделок на истории

Чтобы успешно вычислить оптимальную фракцию, нам понадобится достаточное количество исторических сделок. Очевидно, что 20-ти сделок будет недостаточно, потому что они не всегда будут раскрывать статистическое преимущество вашей стратегии.

Тогда сколько достаточно? Оставим это на ваше усмотрение. В классических книгах Роберта Пардо можно встретить значение 30 сделок и более. С моей точки зрения, эта величина зависит от средней продолжительности сделки. Например, если средняя сделка работает 2.5 дня, может быть, надо увеличить этот порог до 100 сделок?

В симуляциях ниже будем всегда использовать 250 сделок.

Фактор №2. Доля прибыльных сделок

Точность вашей стратегии играет одну из главных ролей. В действительности лучшие трейдеры из лучших редко совершают более 50% прибыльных сделок. Получить 70% прибыльных сделок и выше — уже нереалистично (в долгосрочной перспективе). Впрочем, такой показатель можно почти всегда найти на бэктесте, но к нему всегда будет компенсирующий момент. Это наш следующий фактор.

В нашей алготорговле показатель “доля прибыльных сделок” редко доходит до 40-45%. Это значит, что примерно одна сделка из трех закрывается с прибылью.

Фактор №3. Соотношение средней прибыльной и убыточной сделки

Этот фактор переигрывает низкое значение предыдущего фактора — доли прибыльных сделок. Ведь даже если у вас только 1 сделка из 3 закрывается с прибылью, на длинной дистанции все равно можно хорошо себя чувствовать. Дело в высокой средней прибыли от одной сделки. Если ваша средняя прибыльная сделка в 2.5-3 раза крупнее среднего убытка, то все в порядке.

Фактор №4. Полная потеря

Для успешного вычисления оптимальной фракции нужно сначала определиться — какой уровень потери стартового капитала выводит нас из трейдинга. Например, у нас на счете 10000 USD. Мы говорим: “ОК, выходим из игры, когда капитал снизится до 8000 USD”. То есть наш уровень полной потери — это 20%.

Фактор №5. Риск полной потери

Изменение фракции капитала под риском, как покажут вычисления, напрямую влияет на риск полной потери. Чем выше фракция, тем выше вероятность получить полную потерю капитала или то, что мы считаем полной потерей (20%, как выше).

В нашем Telegram-канале есть то, чего не публикуем на сайте 👇

Вычисление оптимальной фракции: настройки и примеры

Теперь объединим все факторы выше и проведем несколько симуляций. С их помощью мы научимся вычислять оптимальную фракцию. Зададим полную потерю на уровне 20%. Это означает, что после просадки в 20% мы выходим из игры.

Количество симуляций по всем экспериментам будет одинаковым: 10000. Этого более чем достаточно, чтобы получить адекватную картину наших шансов зарабатывать на дистанции.

Что касается фракции, то начинать будем с 1% капитала под риском. Это означает, что, когда срабатывает стоп-лосс (условие №1), наш счет сокращается на 1%.

Пример №1. Преждевременная фиксация профитов — реалистично и легко достижимо

Давайте допустим, что вы начинающий трейдер, который любит рано закрывать прибыльные сделки, а убыточным дает поработать в надежде на разворот. Такой подход очевидно плох, но для примера подходит отлично. По вашим подсчетам вы делаете 250 сделок в год, и теперь вам надо вычислить оптимальную фракцию.

В таком случае настройки эксперимента следующие:

  • Сделок: 250
  • Доля прибыльных сделок: 80%
  • Соотношение средней прибыльной к средней убыточной: 0.1

Высокая доля прибыльных и маленькая средняя прибыльная — это реалистичные параметры для нашего примера. Нельзя рассчитывать на высокую долю прибыльных сделок и одновременно, чтобы они были крупнее среднего убытка. Это просто нереалистично, как бы вы ни старались.

Генератор Монте-Карло
С таким подходом наши шансы полной потери около 90%.

10000 симуляций показали, что средняя максимальная просадка (MDD — maximum drawdown) выше 25%, это означает полную потерю, отсюда такая высокая вероятность ее наступления. Что касается роста капитала, то с данными настройками таких надежд нет. Распределение финансовых результатов показывает, что наш капитал снизится до уровня примерно 7400 USD (если начинать с 10000 USD).

Теперь попробуем сократить фракцию до 0.1% в надежде исправить ситуацию.

Генератор Монте-Карло
Теперь мы не получили полной потери, но роста капитала тоже нет. Проблема зашита в настройках: слишком мала средняя прибыльная сделка и слишком велика средняя убыточная.

Теперь попробуем сделать среднюю прибыльную лишь в 5 раз меньше средней убыточной (и вернем фракцию на 1%). Посмотрим, что получится.

Генератор Монте-Карло
Весьма низок риск полной потери, но роста капитала тоже не наблюдается.

Получается, нам нужно поменять подход к торговле и пересмотреть ключевые показатели: долю прибыльных (точность стратегии) и величины средних прибыльных и убыточных сделок.

Пример №2. Много прибыльных сделок, прибыль чуть выше убытка — реалистично, но трудно достижимо

Представим более опытного трейдера, который делает примерно 50% прибыльных сделок. Его средняя прибыльная сделка немного превышает среднюю убыточную.

Судя по прошлым бэктестам, такой результат реалистичен, но достичь его трудно. На мой взгляд, результативность такого подхода граничит со случайностью. Похоже, что при таком подходе не используется статистическое преимущество, например, тренды или волатильность.

Таким образом, настроим следующий эксперимент:

  • Сделок: 250
  • Доля прибыльных сделок: 50%
  • Соотношение средней прибыльной к средней убыточной: 1.1
Генератор Монте-Карло
Начиная с фракции 1%, мы видим, что вероятность полной потери (20%) весьма низка. Зато встает вопрос, за счет чего будет расти капитал. Видим, что средняя максимальная просадка 14.6% и что можно ожидать рост на 13%. Почти 1 к 1.

Теперь попробуем снизить фракцию до 0.25% и посмотрим, что получится. Вероятность полной потери, скорее всего, упадет, но что станет с прибылями и просадками?

Генератор Монте-Карло
Опять видим, что после уменьшения фракции мы по-прежнему недалеки от случайного результата.

Нам снова нужно сделать несколько важных изменений в торговом подходе: в идеале это увеличить среднюю прибыльную сделку даже за счет снижения их количества в общей массе.

Пример №3. Трендослежение, мало прибыльных сделок, но они крупные — очень реалистично

Если вы трендоследящий трейдер, вы постоянно пытаетесь ухватиться за тренд. Это происходит за счет большого количества убыточных сделок. Но как только мы входим в тренд, доход может быть огромен. Подробнее — в статье Тренд — лучшее, что вы можете использовать в своей торговле. Исследования тренд-аномалий за 136 лет и в видео ниже:

Ок, смоделируем подобную ситуацию. Представим, что у нас мало прибыльных сделок, но зато высокое отношение средней прибыльной к средней убыточной.

  • Сделок: 250
  • Доля прибыльных сделок: 35%
  • Соотношение средней прибыльной к средней убыточной: 2.5

Даже со стартовой фракцией в 1% результат намного лучше прежних.Ок, 

Генератор Монте-Карло
Вероятность потерять 20% капитала остается довольно высокой, но взглянем на среднюю максимальную просадку в 15.2% и вероятный доход в конце — средний финансовый результат 1.754, то есть чистый профит 75.4%.

Очень неплохо. Нужно сделать еще несколько манипуляций, чтобы снизить вероятность полной потери, и всё, мы молодцы.

Сперва сократим фракцию до 0.66%.

Генератор Монте-Карло
Выглядит многообещающе. Риск полной потери почти у нуля, а чистый доход всё ещё довольно высок — 44.5% со средней максимальной просадкой в 9.6%.

Теперь снизим фракцию до 0.5%.

Генератор Монте-Карло
Почти! Риск полной потери 0.2%. Всего две симуляции из 10000 выдали максимальную просадку выше 20%.

Что касается доходной части, то мы получаем солидный средний доход в 32.6%. Справедливости ради отметим, что есть немалое число симуляций, которые в конце привели к убытку. Даже при таких хороших исходных данных эксперимента или исторической торговли убыток в реальном времени возможен.

Теперь запустим последнюю симуляцию с фракцией 0.45% в надежде, что с ней риск полной потери будет нулевым.

Генератор Монте-Карло
Ура, мы достигли поставленной цели!

Если наша цель — нулевой риск полной потери при сохранении адекватных значений средней максимальной просадки и средней чистой прибыли, то в условиях этого эксперимента нужно задать фракцию 0.45%.  Это значит, что всякий раз, когда сделка закрывается с убытком, наш капитал сокращается в среднем на 0.45%. Когда сделка закрывается с прибылью, наш капитал увеличивается на 0.45% * 2.5 = 1.125% в среднем.

Судя по результатам эксперимента, в реальном времени можно ожидать просадку в 7.1% в среднем, а доход  в 29% в среднем.

Выводы

Есть много подходов к нахождению оптимальной фракции капитала под риском. Ваш ответ должен зависеть от целей, которые вы перед собой ставите.

Целью нашего эксперимента было достичь нулевого риска полной потери с сохранением шансов получить адекватную прибыль при низкой просадке.

Благодаря вычислительным возможностям, доступным сегодня каждому, мы можем легко провести тысячи симуляций и прийти к нужной фракции, замеряя максимальную просадку и чистую прибыль.

Литература по теме рисков и оптимальной фракции

Чтобы глубже разобраться в теме рисков и математики для вычисления позиций, обратитесь к книгам таких авторов, как: Райан Джонс, Ральф Винс, Кеннет Грант.

Скачать симулятор Монте-Карло

Скачать генератор Монте-Карло, использованный в этой статье, можно по кнопке ниже. Доступны версии для 32-х и 64-разрядных Windows. Не забудьте оставить отзыв в конце статьи или просто передать нам привет ;)

Материалы

Как создавать торговые стратегии на основе статистики и данных, способных работать 24/5

Не упустите возможность получить прибыльные торговые стратегии.

Поделиться статьей

С радостью ответим на ваши комментарии

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читайте также

Создавайте прибыльные торговые стратегии на основе статистики и математики

Не пропустите лучшие статьи и видео о трейдинге — подписывайтесь на наш Telegram

До 30% скидок на все курсы. Только для тех, кто прошел вступительный материал до конца

  1. Стоимость любого курса можно разделить на 4 части. Без переплат, комиссий или кредитных договоров.
  2. Если курсы вам не подойдут — вернем деньги без вопросов.

Знания и практика — это то, что нужно для прибыльного трейдинга. Начните трейдинг-эволюцию уже сейчас