Забыли пароль?

Зарегистрироваться на сайте

Отменить

Блог пользователя Анатолий Уткин

  1. Об оптимизации методом Монте-Карло

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

    Если следовать классическому подходу, то процесс построения системы можно условно разбить на следующие этапы:

    1) Наблюдения за рынком,

    2) Формулировка какого-то количества грубых закономерностей,

    3) Выбор некоего множества этих закономерностей и сведение их в единый алгоритм,

    4) Подбор параметров (это оптимизация в общепринятом смысле).

    Этапы 1 и 2 – это в большей мере искусство, и эта часть определяется в основном опытом и знаниями трейдера. Этапы же 3 и 4 поддаются формализации, причем одновременно, нет необходимости разделять 3 и 4. Вот как это может быть выполнено. Допустим, есть две грубых закономерности (Они приведены ниже, но это модельные вещи, а в реальном рынке к поиску закономерностей следует относиться серьезно. Еще раз подчеркну: поиск закономерностей – это искусство):

    а) Если цена выше длиннопериодной средней, то рынок настроен на рост,

    б) Если короткопериодная средняя ниже среднепериодной, то рынок настроен на разворот вверх.

    Задача – слепить из этих закономерностей систему. Зададимся вопросом – сколько здесь параметров? Прежде всего, это периоды средних – их три. Кроме того, можно включать или не включать саму закономерность – это еще два параметра со значениями 1 или 0 (используем или не используем закономерность). Нам необходимо выбрать из всех возможных вариантов некий один, устраивающий нас. Вопрос – как это сделать?

    Первый вариант – перебрать все возможности. К сожалению, экспоненциальный рост числа возможностей от числа параметров делает эту идею при большом числе параметров безнадежной. Это то же самое, что угадать многозначный пароль. Посчитаем общее число вариантов в нашей задаче. Пусть период короткой средней лежит от 1 до 10, среднепериодной – от 11 до 50, длиннопериодной – от 51 до 200. Тогда общее число вариантов составит 10*40*150*2*2=240 000. Даже в нашем небольшом наборе правил четверть миллиона возможностей. Если тестер тратит 0,01 секунды на прогон (что быстро), то даже при этом будет потрачено 2400 секунд, то есть 40 минут. При увеличении числа параметров это время растет экспоненциально и для систем средней сложности может достигать веков и тысячелетий. Поэтому прямой перебор применим лишь для простейших систем.

    Как же быть? Для нахождения оптимальных параметров в многокритериальных задачах человечеством давно уже придуманы мощные и быстрые методы. Основный из них – это генетическая оптимизация. Однако, поскольку я ею в настоящее время в трейдинге не пользуюсь, то про нее рассказывать здесь не буду. Опишу то, чем пользуюсь я. Это так называемый метод Монте-Карло (в физике его еще называют методом отжига). Фактически, это весьма усеченная версия генетики. Его суть такова: случайным образом выбирается точка в пространстве параметров. Затем от нее в некоторой окрестности радиуса R1 также случайным образом выбираются другие точки и смотрится, в какой из них целевая функция наилучшая (назовем эту точку A). Затем от точки A в радиусе R1 опять случайно выбираются точки и смотрится наилучшая. И такой процесс повторяется много раз, причем R1 сравним с размером всей области параметров. Назовем все вышеописанное фазой 1. После окончания фазы 1 наступает фаза 2. Она совпадает с первой фазой, единственное отличие – в радиусе. Для фазы 2 радиус R2 меньше R1. После фазы 2 проводится фаза 3 с R3<R2<R1, и так далее. На некотором числе фаз процесс останавливается.

    Вся эта процедура приводит к тому, что точка в пространстве параметров в среднем двигается в направлении максимума целевой функции (но не факт, что глобального, в этом недостаток и Монте-Карло, и генетики). При этом число прогонов тестера равно “число фаз*число процессов*число точек в процессе”. Видно, что число прогонов тестера не зависит от числа параметров вообще, и в этом огромное преимущество метода. Хорошей физической моделью метода Монте-Карло является неровная поверхность с песком. Если ее потрясти, то песок скопится в наинизшей точке, то есть найдет оптимальную наинизшую точку неровной поверхности.

    Таким образом, пользуясь современными методами поиска экстремумов, можно весьма упростить процесс системостроительства по сравнению с “индикаторной эрой”.

    Анатолий Уткин

  2. От мелких побед к крупным поражениям

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

     415.JPG

    416.JPG

    Здесь смоделирована такая система: "стопа" нет, "тэйк-профит" – на уровне +1% от цены входа. Вход – на закрытии, если цена сегодня меньше цены пять дней назад. Обратите внимание на процент выигрышных сделок! Не правда ли, неплохая система? Постоянно отжимаем от рынка по капельке – красота! Плечо небольшое – всего 1:1, то есть берем у брокера столько же, сколько у нас есть. Никаких ошибок не допускаем – мы всегда правы! Кругом лохи – теряют деньги зачем-то, а у нас все тип-топ :)!

    А вот работа той же системы дальше:

    417.JPG

    Видно, что всего лишь одна из почти двухсот сделок приводит нас к полному разорению. Одна из 186!!!

    Смоделированная ситуация не является чем-то искусственным – наоборот, это очень распространенная модель поведения людей на бирже и в жизни. Люди ведут себя аналогичным образом:

    1) На дороге – пытаются отжать по мелочи, приехать чуть быстрее, кого-нибудь обогнать. В итоге получают разбитую машину или смерть. И вокруг все удивляются – такой хороший водитель был, круто ездил. И как его угораздило?

    2) В семейной жизни – пусть сегодня будет по-моему, а завтра хоть трава не расти. Этим особенно грешат женщины, а итог – развод. Причем отжимающая сторона не понимает, почему с ней разводятся: ведь все шло как обычно!

    3) В очередях – "пронырну-ка я, а эти лохи пусть стоят дальше!". Итог – нарвешься однажды на сильную грубость по лбу :).

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

Все записи
Мои портфели
Индикаторы
Индексы
MICEXINDEXCF2 047,42–0,4606.03
RTSI1 110,46+0,2006.03
Акции
GAZP134,60–0,1506.03
GMKN9 324–0,1306.03
LKOH3 079–0,2106.03
ROSN332,0–1,3406.03
SBER162,00–1,4606.03
VTBR0,06600,0006.03
Курсы валют
EUR77,92+0,5711.06
USD68,62–0,0611.06
EUR/USD1,09–0,5331.12
GBP/USD1,47–0,4331.12
USD/JPY120,17–0,2831.12
EURUSD_TOM1,060,0006.03
EUR_TODTOM0,02–0,0406.03
USD_TODTOM0,02–0,0306.03
Мировые рынки
Dow17 473,32–0,7431.12
FTSE6 242,32–0,5131.12
Nikkei 22519 033,71+0,2730.12
S&P 5002 049,94–0,6531.12
Золото1 059,98–0,1231.12
Нефть Brent37,6+3,1331.12