Сергей < o-s-a.net >
Сергей < o-s-a.net > личный блог
23 июля 2016, 11:38

Богатеем медленно (Часть 3, и последняя)

Богатеем медленно (Часть 3, и последняя)

Продолжение. Начало здесь.

Эксперименты

Но как же изменится среднее отклонение оптимизированного портфеля за пределами выборочного контроля, по сравнению с с 1/N? Ниже приведен скрипт для проведения экспериментов с различными структурами портфеля, периодами возврата, ограничениями значений и отклонениями:

Богатеем медленно (Часть 3, и последняя)


Скрипт тщательно обрабатывает 7 лет в истории данных и сохраняет суточные обороты в ряду данных Returns. В первый торговый день каждого месяца (tdm () == 1) он вычисляет средства и ковариационную матрицу за последние 252 дня, затем вычисляет границу эффективности. В этот раз мы также вводим ограничение значения в 0,5 к минимальному точке отклонения. На основе этой границы эффективности мы подсчитываем ежедневный суточный оборот с равными значениями (ReturnN), лучший коэффициент Шарпа (ReturnBest), минимальное отклонение (ReturnMin) и максимальный доход (ReturnMax). Значения остаются неизменными до следующего изменения баланса, этот способ выводится из типового теста. Четыре суточных оборота добавляются к 4 различным кривым текущего остатка на торговом счёте:
Богатеем медленно (Часть 3, и последняя)

Мы видим, что ОСО улучшает портфель во всех трех вариантах, несмотря на его плохую репутацию. Черное кривая является 1/N портфеля с равными значениями для всех активов. Синяя линия является минимальным отклонением портфеля – мы видим, что это производит немного большую прибыль, чем 1/N, но с намного более низкой волатильностью. Красная линия является максимальным доходом портфеля с лучшей прибылью, но высокой волатильностью и резким снижением. Зеленая линия, максимальный портфель Шарпа, находится где-то между ними. Различные структуры портфеля могут составить разный порядок линий, но у синих и зеленых линий почти всегда коэффициент Шарпа намного лучше, чем у черной кривой. Так как минимальное отклонение портфеля может торговаться с более высоким левериджем благодаря меньшему снижению, что зачастую приносит самую высокую прибыль.

 Для проверки ежемесячного изменения значений распределения капитала мы отобразим значения в тепловой карте кликов:
Богатеем медленно (Часть 3, и последняя)

Горизонтальная ось — это месяц симуляции, вертикальная ось — число актива. Высокие значения — красные, низкие — синие. Распределение значений выше показано для максимального портфеля Шарпа 6 ETF.

 

Заключительная система «парковки» денег

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

— Граница эффективности вычисляется из суточных оборотов последних 252 торговых дней, т.е. одного года. Это — хороший период времени для ОСО, так как большинство ETF показывает 1-летний технический ииндикатор темпа.

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

— Отметка на границе эффективности может быть настроена ползунком между минимальным отклонением и максимумом Шарпа. Таким образом, вы сможете управлять риском системы. 

— Мы используем 50%-е ограничение значений в минимальном отклонении. Тогда это не больше, чем оптимальный портфель, но, как мои тесты подтвердили, это часто улучшает нешаблонный баланс благодаря лучшей диверсификации.

Приведем скрипт:
Богатеем медленно (Часть 3, и последняя)

На панели Zorro вы можете настроить инвестированный капитал с помощью ползунка (TotalCapital) от $0 и до 10,000. Второй ползунок (VFactor) — для настройки желаемого риска от 0 до 100%: при 0 вы торгуете с минимальным отклонением, в 100 — с максимальным коэффициентом Шарпа.

Богатеем медленно (Часть 3, и последняя)
Этот скрипт только советует, но не торгует: для автоматизированной торговли с его помощью, вам потребуется плагин API для брокера ETF, типа IB. Но в бесплатной версии Zorro есть плагины только для брокеров Forex/CFD; плагин IB не свободен. Однако, так как позиции могут быть только открыты или закрыты раз в месяц, и ценовые данные бесплатно взяты с Yahoo, вам на самом деле не требуется API-соединение для трейдинга с портфелем ОСО. Просто запускайте вышеупомянутый скрипт раз в месяц и проверяйте, что там примерно следующее:
Богатеем медленно (Часть 3, и последняя)

Как видно, оптимальный портфель в этом месяце состоит из 3 контрактов SPY, 16 контрактов GLD и 15 договоров VGLT. Вы можете теперь вручную открывать или закрывать эти позиции в торговой платформе своего брокера до тех пор, пока ваш портфель сопоставим с распечатанными рекомендациями. Леверидж равняется 4 по умолчанию, но вы можете изменить его на леверидж своего брокера в #define в начале скрипта. Для скрипта, который торгует, просто замените значение printf торговой командой, которая открывает или закрывает разницу с текущей позицией актива.

 

ОСО против OptimalF 

Кажется естественным использовать ОСО не только для портфеля с множеством активов, но также и для портфеля с множеством торговых систем. Я проверил это с системой Z12, которая идет вместе с Zorro и содержит приблизительно 100 различных комбинаций система/актив. Оказалось, что ОСО не приводил к лучшим результатам, чем факторы OptimalF Ральфа Винса, которые первоначально используются системой. Факторы OptimalF не рассматривают корреляции между компонентами, но они обращаются к глубине снижения, в то время как ОСО основывается лишь на значениях и ковариациях. Окончательным решением для такого портфеля с множеством торговых систем могла бы быть комбинация ОСО для распределения капитала и OptimalF для ограничения значений. Я ещё не прверял этого сам, но уже занес в свой список дел.

Оригинал: www.financial-hacker.com/get-rich-slowly/

14 Комментариев
  • Антон Ш
    23 июля 2016, 14:00
    На каком языке написан скрипт?
  • Олег Каширин
    23 июля 2016, 14:28
    Где надо учиться чтобы понять что здесь написано? 
      • Олег Каширин
        23 июля 2016, 14:59
        Сергей < o-s-a.net >, Курс по R это что вообще такое? Курс программирования?  
          • Олег Каширин
            24 июля 2016, 09:49
            Сергей < o-s-a.net >, ну я так понимаю надо сначала руками научиться прибыльно торговать, а уж потом делать это автоматически? Это вот и есть торговый робот? 
  • михаил алексеев
    23 июля 2016, 16:38
    прочитал внимательно еще раз

    тут денег нету
  • b@e
    23 июля 2016, 16:46
    Откуда скрипт берет данные для обработки?
      • b@e
        23 июля 2016, 17:15
        Сергей < o-s-a.net >, Вы знатете хотябы одного человека, кто под Zorro пишет? Насколько я понял, скрипт написан как раз под среду разработки и тестирования стратегий Zorro.
  • b@e
    23 июля 2016, 20:28
    А вообще очень спорно, что все инвестирование заключаеться в следующем:
    На панели Zorro вы можете настроить инвестированный капитал с помощью ползунка (TotalCapital) от $0 и до 10,000. Второй ползунок (VFactor) — для настройки желаемого риска от 0 до 100%: при 0 вы торгуете с минимальным отклонением, в 100 — с максимальным коэффициентом Шарпа
    Если бы все было так просто, то все на бирже были-бы, как минимум, миллионеры.
    Инвестирование, это наверное несколько больше, чем три ползунка мышкой двигать.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн