Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 15 из 23
  1. #1
    Administrator
    Вес репутации
    0

    Т. Правдюк: Оценка торговых систем методами Монте-Карло

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


    "What is the last thing you do before you climb on a ladder? You shake it. And that is Monte Carlo simulation."
    Sam Savage, Stanford University.


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

    Возвращаясь к аналогии Сэма Сэведжа, скажу еще раз, что моделирование методами Монте-Карло позволяет оценить устойчивость системы, чувствительность к входным параметрам и вероятность наступления конкретных сценариев развития. В этой статье я расскажу о нескольких способах применения Монте-Карло при оценке механических торговых систем. Можно выделить три основных подхода:

    1. Статистическая оценка математического ожидания торговой системы;

    2. Моделирование линии эквити и последовательностей сделок;

    3. Моделирование "истории" котировок.

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

    http://www.russian-trader.ru/article...ntekarlo/1.png

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


    СТАТИСТИЧЕСКАЯ ОЦЕНКА МАТЕМАТИЧЕСКОГО ОЖИДАНИЯ.


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

    - вероятность прибыли = 57,69%, соответственно вероятность убытка = 1 - прибыль = 42,31%

    - средняя прибыль = 0,73%

    - средний убыток = -0,29%.

    Теперь построим модель по методу Монте-Карло с использованием случайных чисел. Если выпавшее случайное число больше 0,4231 , то мы имеем прибыльную сделку в размере 0,73%. В противном случае мы имеем убыток в размере -0,29%. Сделаем последовательность из 192 сделок, чтобы сравнить результат моделирования с показателями тестового периода. Тут можно применить три варианта моделирования:

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

    - "плавающее" моделирование базовых параметров. Этот метод моделирования использует случайные, нормально распределенные значения параметров. При этом среднее значение равно базовому, а стандартное отклонение равно 1/10 от базового. То есть вероятность прибыльного исхода будет "нормально" колебаться вокруг 0,5769 со стандартным отклонением в 0,0576. Этот вариант удобно применять для оценки наихудших сценариев, потому что можно посчитать вероятность события, когда процент и величина средней прибыли упадет, а величина среднего убытка вырастет;

    - "плавающее" моделирование сделок. Самый реальный, но и наиболее ресурсоемкий вариант моделирования. Моделируется каждая сделка по отдельности с параметрами, аналогичными предыдущему варианту. То есть вероятность прибыли конкретной сделки является независимой случайной величиной, нормально распределенной вокруг базового значения в 57,69%. Точно так же пересчитывается средняя величина прибыли и убытка для каждой отдельной сделки.

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

    http://www.russian-trader.ru/article...ntekarlo/2.png

    На рисунке показаны распределения математического ожидания, прибыли после 192 сделок, максимальная серия убытков подряд и максимальная просадка. Поскольку это самый простой метод Монте-Карло моделирования, то некоторую предсказательную ценность имеют лишь оценки прибыли и максимальной серии убытков. Так, например, математическое ожидание сделки колеблется вокруг 0,3% , ожидаемая прибыль - 77-78%, максимальная серия убытков - 6. А вот ожидаемая просадка заметно занижена. В реальности прибыльные и убыточные сделки распределены гораздо менее равномерно, чем на этих графиках. Опытным путем можно использовать для первичной оценки удвоенное значение 99% доверительного интервала. Так, в нашем примере существует 1% вероятность того, что максимальная просадка превысит 3,85%. Значит для реальной оценки можно использовать значение в 7,7%.

    Очень большое значение имеет число испытаний, которому подвергается модель при испытаниях. Разница в значениях, полученных при 50 и 100 прогонах, достаточно существенна. А вот при переходе от 10000 к 50000 изменяется лишь четвертая цифра после запятой, что уже в пределах статистической погрешности. Поэтому считаю, что 1000 испытаний - это критический минимум для получения достоверных результатов. Оптимально - не меньше 10000. В моем случае было проведено 100000 испытаний. Такое большое число позволяет оценить чувствительность модели к входным параметрам. В правом верхнем углу расположена таблица регрессионных коэффициентов для базовых параметров. Хорошо видно, что между вероятностью выигрыша, средним выигрышем и математическим ожиданием сделок существует прямая зависимость. Что, собственно, и следовало ожидать. Особый интерес вызывает конкретное соотношение этих самых зависимостей. Так, при этих значениях входных параметров, наибольшая зависимость от вероятности выигрыша. Чуть меньше эффективность системы зависит от средней величины выигрыша. И наименьший вес в устойчивости показателей придается средней величине проигрыша.


    МОДЕЛИРОВАНИЕ ЛИНИИ ЭКВИТИ И ПОСЛЕДОВАТЕЛЬНОСТЕЙ СДЕЛОК


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

    - метод "случайная выборка сделок "без возвращения"". В этом случае сделки просто переставляются случайным образом, формируя новые серии. Количество сделок и, следовательно, конечный итог остается всегда одним и тем же. На рисунке этот подход изображен на левом графике и первом столбце;

    - метод "случайная выборка сделок "с возвращением"". Более гибкий метод. Необходимо задать число сделок, и каждая сделка в полученной последовательности будет извлекаться случайным образом из базовой последовательности сделок. Сделки могут повторяться, поэтому этот вариант позволяет моделировать линии эквити любой требуемой длины. На рисунке этот подход изображен на правом графике. Второй столбец показывает результаты моделирования серии из 400 сделок, последний столбец - 192 сделки.

    http://www.russian-trader.ru/article...ntekarlo/3.png

    Результаты моделирования гораздо более реалистичны по сравнению с методом моделирования МО:

    - максимальная просадка колеблется от 6,9% при 192 сделках до 8,3% при 400 сделках;

    - максимальная серия убытков - от 5 до 6 подряд;

    - средняя ожидаемая прибыль - от 90 до 280%.

    Примечательно, что ожидаемая прибыль растет с увеличением числа сделок быстрее, чем ожидаемая максимальная просадка. Аналогичные операции по Монте-Карло моделированию линии эквити и последовательностей сделок можно проделать в специальном приложении к программе Вэлс-Лаб. Достаточно загрузить в программу моделирования результаты тестирования стратегии и можно приступать к анализу вероятностей. Программа предоставляет те же два немного усложненных варианта моделирования: Монте-Карло анализ линии эквити и Бутстреп сделок. Основное отличие от моего метода "с возвращением" состоит в том, что программа имеет возможность сохранять допустимые серии и последовательности сделок и автокорреляций. Смотрим на результаты:

    http://www.russian-trader.ru/article...ntekarlo/4.png

    Верхняя часть показывает результаты "встряски" линии эквити. Этот метод предполагает случайную выборку «с возвращением», поэтому в последовательность сделки могут включаться несколько раз. Этим объясняется, что при постоянной длине последовательности, итоговая прибыль может варьироваться. Нижняя часть показывает результаты Бутстрепа сделок. Сравним с моими показателями:

    - 90% доверительный интервал просадки составляет от 3,32% до 11,2%, по сравнению с моими 3,94-11,3%

    - Максимальная серия убытков в программе не считается. Зато можем посмотреть вероятность безубыточности, которая составляет 99,83%.


    МОДЕЛИРОВАНИЕ "ИСТОРИИ" КОТИРОВОК.


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

    - открытие, максимум, минимум и закрытие бара расчитываются по отношению к значению предыдущего закрытия;

    - открытие и закрытие бара расчитываются по отношению к предыдущему значению, а максимум и минимум - по отношению к текущему закрытию;

    http://www.russian-trader.ru/article...ntekarlo/5.png

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

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

    - генерация истории "с возвращением", на итоговом рисунке снизу, таблица помечена как "Бутстреп". Этот подход позволяет генерировать "истории" любой длины, поэтому было протестирована 1000 различных вариантов длиной от 1/2 до 4 длин базовой истории.

    Поскольку генерация "с возвращением" допускает использование одних и тех же баров по нескольку раз, то необходимо проверить распределение приращений, полученных в новой истории:

    http://www.russian-trader.ru/article...ntekarlo/6.png

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

    http://www.russian-trader.ru/article...ntekarlo/7.png

    Результаты можно признать позитивными. Средняя прибыль на сделку составляет 0,08-0,09%, средняя просадка - 19%, средняя вероятность выигрыша - 48%. Хорошо видно, что метод "с возвращением" дает более широкий разброс значений. Однозначно, это очень перспективный и требующий более тщательного изучения метод моделирования.


    ПРАКТИЧЕСКАЯ ЧАСТЬ


    Поскольку я уже успел получить вопросы по технике автоматического построения выборок в Экселе, то остановлюсь на этом вопросе более подробно. Сделки извлекаются из общего массива сделок функцией ИНДЕКС(). Основной задачей является определение "случайности" номера строки, из которой будет браться сделка для новой последовательности.

    - выборка "с возвращением". Берется случайное число и нормируется в диапазон ( 1 ; исходное число сделок ), после чего берется только целая часть при помощи функции ЦЕЛОЕ(). Получаем случайный номер сделки, которую и подаем в функцию ИНДЕКС().

    - выборка "без возвращения". Берется ряд случайных чисел, ранжируется по порядку и каждому числу присваивается порядковый номер. Вся эта операция делается автоматически при помощи функции РАНГ(). Потом из массива сделок извлекается сделка под номером, соответствующим порядковому номеру случайного числа.

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

    http://www.russian-trader.ru/article...ntekarlo/8.png


    В КАЧЕСТВЕ ЗАКЛЮЧЕНИЯ


    В качестве первичной оценки можно рекомендовать метод статистического анализа путем "плавающего" моделирования базовых параметров. Это очень простой способ измерить устойчивость торговой системы и чувствительность ко входным параметрам. Вторым этапом в анализе МТС можно рекомендовать моделирование вневыборочных последовательностей сделок методом "с возвращением". Это позволит более качественно оценить величину максимальной просадки. И, наконец, оценить степень подгонки входных параметров торговой системы позволит метод моделирования "историй" котировок.

    В этой статье я рассказал о некоторых способах оценки готовой торговой системы. Эти способы моделирования не помогут непосредственно в разработке торговых стратегий, они предназначены для нахождения пределов прочности и устойчивости. Большинство операций проводились в Экселе при помощи программы параметрического моделирования и оценки рисков. Проведя несколько тысяч испытаний можно с некоторой достоверностью оценить потенциальную прибыль, просадку, серию убытков и любые другие нужные пользователю показатели. Очень часто это может понадобиться при принятии таких решений, как отказываться или нет от системы, если она неожиданно дает несколько убытков подряд. Безусловно, Монте-Карло моделирование лишь инструмент для работы с математической моделью. Поэтому качество результатов напрямую зависит от качества анализируемой торговой системы. Использование вневыборочных показателей способно немного нивелировать ошибки плохих или переподогнанных систем, но большое внимание нужно уделять созданию устойчивой системы еще на этапе ее разработки.


    Автор: Правдюк Тарас (tarasp1@yandex.ru), программирование - Максютов Дамир (maksdamir@gmail.com), специально для Русского Трейдера.

  2. #2
    Местный
    Вес репутации
    1
    МОДЕЛИРОВАНИЕ "ИСТОРИИ" КОТИРОВОК

    не нравится. Я торгую 15 минутки, но скажем держу тренд иногдла месяц-2. То есть не шухерюсь на эти 15-минутки, а стопы очень а длеко.
    Мешая таким образом 15-минутки тренды по 600 баров тама просто не смогут существовать - или я не так понял как вы мешаете.

    А так спасибо за статью - но самому в екселе - это, конечно, может и надо - но так муторно =( Подумаю. Вот бы мой любимый Ами все это мог делать ;) Или может?
    Was mich nicht umbringt, macht mich stдrker (Nietzsche)

  3. #3
    Местный Аватар для tarasp
    Вес репутации
    4
    Цитата Сообщение от andrew13
    МОДЕЛИРОВАНИЕ "ИСТОРИИ" КОТИРОВОК

    1. не нравится. Я торгую 15 минутки, но скажем держу тренд иногдла месяц-2. То есть не шухерюсь на эти 15-минутки, а стопы очень а длеко.
    Мешая таким образом 15-минутки тренды по 600 баров тама просто не смогут существовать - или я не так понял как вы мешаете.

    2. А так спасибо за статью - но самому в екселе - это, конечно, может и надо - но так муторно =( Подумаю. Вот бы мой любимый Ами все это мог делать ;) Или может?

    1. согласен, в чистом виде этот метод пока сыроват... если брать для определения свойств котировок три измерения (вероятность роста/падения, величину роста/падения и волатильность), то тут они соблюдены пока не полностью и элемент случайности слишком велик. сейчас работаю над улучшением "реальности" алгоритма генераций.

    2. Зато вот этот метод "МОДЕЛИРОВАНИЕ ЛИНИИ ЭКВИТИ И ПОСЛЕДОВАТЕЛЬНОСТЕЙ СДЕЛОК" очень удобно делать именно в экселе при помощи программ Монте-Карло моделирования - Crystal Ball, @Risk

  4. #4
    Местный Аватар для tarasp
    Вес репутации
    4
    программа для генерации котировок по методу "МОДЕЛИРОВАНИЕ "ИСТОРИИ" КОТИРОВОК" с инструкцией

    http://rapidshare.com/files/417856795/rnd.rar

  5. #5
    Местный
    Вес репутации
    1
    Цитата Сообщение от tarasp
    программа для генерации котировок по методу "МОДЕЛИРОВАНИЕ "ИСТОРИИ" КОТИРОВОК" с инструкцией

    http://rapidshare.com/files/417856795/rnd.rar
    большое спасибо, ща качну.
    Was mich nicht umbringt, macht mich stдrker (Nietzsche)

  6. #6
    nxz
    Аватар для nxz
    Вес репутации
    0
    Цитата Сообщение от tarasp
    программа для генерации котировок по методу "МОДЕЛИРОВАНИЕ "ИСТОРИИ" КОТИРОВОК" с инструкцией

    http://rapidshare.com/files/417856795/rnd.rar
    Уже не дает скачать, можно еще раз ссылочку разместить.
    Каждая пипетка мечтает стать клизмой. Клизма! Знай свое место!

  7. #7
    Вес репутации
    0
    Жаль, что в практическую часть не попали формулы для расчета этих значений:



    - максимальная просадка колеблется от 6,9% при 192 сделках до 8,3% при 400 сделках;

    - максимальная серия убытков - от 5 до 6 подряд;

  8. #8
    Местный Аватар для tarasp
    Вес репутации
    4
    закачал еще раз:

    http://rapidshare.com/files/418030121/rnd.rar

    добавил в архив эксель-файл с перестановщиком сделок и формулами просадок и серий убытков

  9. #9
    nxz
    Аватар для nxz
    Вес репутации
    0
    Цитата Сообщение от tarasp
    закачал еще раз:

    http://rapidshare.com/files/418030121/rnd.rar

    добавил в архив эксель-файл с перестановщиком сделок и формулами просадок и серий убытков
    Cпасибо, все скачалось.
    Каждая пипетка мечтает стать клизмой. Клизма! Знай свое место!

  10. #10
    Вес репутации
    0
    Спасибо!

    А какая лучше?

    Цитата Сообщение от tarasp
    Crystal Ball, @Risk

  11. #11
    Местный Аватар для Regulest
    Вес репутации
    1
    Метод моделирования Монте-Карло изобретен кем-то, кто наблюдал за блуждающей походкой пьяного человека.
    Не знаю к каким методам отнести своё решение задачи форекс, но соотношение точных сделок к убыточным сделкам стабильно колеблется от 62% до 72%, без особой разницы ручное проведение сделок или советников автотрейдинга. В основе решения кое-что из теории вероятностей и успешно проверенная гопотеза из психологии памяти, знать о моем методе краткосрочного прогнозирования для кругозора не плохо.

  12. #12
    Местный Аватар для tarasp
    Вес репутации
    4
    в целом, Crystal Ball и @Risk - почти близнецы. но у @Risk больше настроек, базовых распределений, отличные видеоуроки. у Crystal Ball зато книг с практическими примерами побольше. @Risk входит в состав программного комплекса http://www.palisade.com/decisiontools_suite/ за 2000 фунтов



    думаю, что пост Regulest можно удалить, как рекламный

  13. #13
    Вес репутации
    0
    Цитата Сообщение от tarasp
    закачал еще раз:

    добавил в архив эксель-файл с перестановщиком сделок и формулами просадок и серий убытков
    Уважаемый Тарас, не могли бы Вы повтроить ссылку, а то там ограничение по количеству скачек( я, к сожалению, не успел

  14. #14
    Местный Аватар для tarasp
    Вес репутации
    4
    Цитата Сообщение от Leo1979
    Уважаемый Тарас, не могли бы Вы повтроить ссылку, а то там ограничение по количеству скачек( я, к сожалению, не успел
    завел себе premium-аккаунт, больше не должны удалять:
    http://rapidshare.com/files/419541809/rnd.rar

  15. #15
    xds
    Вес репутации
    0
    Возможна ли вероятность, что система, например за 30 дней, при расчетах прибыли/убытка и кол-ва прибыльных сделок дает положительное матожидание, но ваш реальный счет показывает убытки?