Заметка

Система управления портфелем акций на основе принципов парного трейдинга

  5  

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

Кратко правила алгоритма выглядят следующим образом.

*Код написан на языке Wealth Script, которым оснащена программа WLD4. В приложении приведен полный код системы.

 В качестве торгуемых инструментов взяты следующие акции:

Моделирование на исторических данных показывает довольно приличную картину. 

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

 Отчет показателей стратегии следующий

Кроме того, проведем сравнение по ряду показателей с несколькими другими системами. Среди алгоритмов для сравнения будут взяты:

  • 20-дневный канал;
  • Индикатор «Parabolic SAR»;
  • Кроссовер двух средних с 5 и 20 периодами соответственно;
  • Классическое 200-дневное среднее;

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

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

ПОЛНЫЙ КОД СТРАТЕГИИ

 {#OptVar3 1;-1;1;2}

{#OptVar5 1;-1;1;2}

 var Bar, Series1, Series2, Len1, Len2, correlflag, buyflag: integer;

Series1 := GetExternalSeries(GetSymbol, #close);

Series2 := GetExternalSeries('MICEXINDEXCF', #close);

len1 := 5;

len2 := 20;

//correlflag = 1 for positive correlations, -1 for negative correlations

if #optvar3 > 0 then correlflag := 1

 else correlflag := -1;

 //buyflag = 1 for buy above sma, -1 for buy below sma

if #optvar5 > 0 then buyflag := 1

 else buyflag := -1;

for Bar := 20 to BarCount — 1 do

begin

  if not LastPositionActive then

{ Entry Rules }

  begin

   if (correlflag * SMA(bar, Series2 , Len2)) < (correlflag * @Series2[bar]) then

   if (buyflag * @series1[bar])  > (buyflag * sma(bar, series1, Len1) ) then

    buyatclose(bar, '');

  end

  else

{ Exit Rules }

  begin

   if (correlflag * SMA(bar, Series2 , Len2)) > (correlflag * @Series2[bar]) then

   if (buyflag * @series1[bar]) < (buyflag * sma(bar, series1, Len1) ) then

    sellatclose(bar, lastactiveposition, '');

  end;

end;

Комментарии

ALendi — 30 марта 2012 г.

спасибо, интересно. могли бы в двух словах описать правила входа/выхода

0 +

umoz — 30 марта 2012 г.

чуть позже отпишусь)

0 +

umoz — 30 марта 2012 г.

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

0 +

Николай Камынин — 31 марта 2012 г.

Добрый день!
Вообще-то философия описанного вами способа - довольно банальна и очевидна - среднее (индекс ММВБ) меняется более плавно, чем его слагаемые.
Это что - новый подход? Нет.
Тогда о чем заметка?
Заметка абсолютно пустая.
Не указаны условия торговли ( комиссия, реинвестирования прибыли,тайм, соотношение момента возникновения сигнала и момента сделки).
Да,я понимаю очарование цифр и графиков на мониторе.
Но смысл в чем?
Выбранные варианты сравнения притянуты с потолка (почему 20 дней , почему 200 дней). Как это соотносится с параметрами вашего алгоритма?.
В целом из заметки я понял, что Вы знаете как писать скрипты в WLD4.
Как говорил классик: писать, также как и писать, надо, когда .....

0 +

ALendi — 31 марта 2012 г.

Тестировалась на дневках? С шортами результаты хуже получаются?

0 +

umoz — 31 марта 2012 г.

Да, дневки, для коротких позиций, полагаю, надо уже подгонку будет делать, а это не очень что-то тянет.

0 +

umoz — 31 марта 2012 г.

Николай, что на комон больше не пишете, или это из-за Коли Старченко?

0 +

umoz — 31 марта 2012 г.

Помню, как выкладывали отчеты из Ами вообще без каких бы то ни было кодов, очень так сказать содержательно))

0 +

yurikon — 2 апреля 2012 г.

Добрый день! Спасибо за статью!

Подскажите, плиз, выложенные результаты - это торговля по одному тикеру или сразу по портфелю бумаг?

0 +

umoz — 2 апреля 2012 г.

День добрый! Тест портфельный, названия инструментов в начале текста. Данные взяты через прогу финам дата фид

0 +

umoz — 2 апреля 2012 г.

Да, под одну позу выделялось не больше 10% капитала, плечо по набранным позам не использовалось.

0 +

umoz — 2 апреля 2012 г.

кстати, сейчас она вне рынка, сигналов нет, вышла в самом начале корректоза, вполне логично.

0 +

yurikon — 2 апреля 2012 г.

Можно небольшой ликбез по велсу? ))
Разве такое можно делать в велсе - одним скриптом протестить портфель систем? Поясните, если не трудно, как компилятор понимает, что приказ отдается по сбербанку, например? Насколько я помню, скрипт применяется к какому-то определенному тикеру.

1 +

umoz — 3 апреля 2012 г.

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

0 +

umoz — 3 апреля 2012 г.

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

0 +

umoz — 3 апреля 2012 г.

это в TSLab проблемы с портфелем, в велсе все нормально делается, даже проще чем во всех остальных. Ну разве что в АМИ выводится сразу доходность и по инструменту и общая эквити.

0 +

umoz — 3 апреля 2012 г.

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

0 +

yurikon — 4 апреля 2012 г.

Что-то Вы меня запутали. Код из 4-го велса. В нем нельзя одним тестом портфель прогнать. В статье вы пишите, что это перфоманс по портфелю. Бэктестинг в статье - это по одному тикеру или портфелю? Судя по картинке Watch List/Symbol = 1. Поясните плиз.

С уважением.

0 +

umoz — 4 апреля 2012 г.

Там можно прогонять по портфелю. Есть даже специальное приложение - симулятор. Одновременно, в один и тот же день, открывалось до 10 позиций. То есть тест портфельный. Когда делается тест, надо просто ставить не на инструмент, а на папку, где расположены тикеры, тогда и прогонит по всем сразу, считая общую доходность.Watch List/Symbol: 1 Это название папки в которой лежит скрипт системы. Я ее назвал номером 1. Можно было бы назвать "Стратегии", тогда было бы показано Watch List/Symbol: Стратегии.

0 +

umoz — 4 апреля 2012 г.

Точнее, Watch List/Symbol: 1 не название папки где скрипт стратегии, оно такое же, а название списка символов для тестирования. Можно было напр обозвать "ммвб". Тогда и было бы Watch List/Symbol: ммвб. А если бы тестировать по одному символу, то было бы например Watch List/Symbol: SBER. "1" это название списка с котировками.

0 +

umoz — 4 апреля 2012 г.

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

0 +

yurikon — 5 апреля 2012 г.

Пошел ставить велс. Давно хотел проверить пару идей на взаимных корреляциях бумаг. Старушка Омега такие вещи позволяет делать только через одно место. В велсе вроде удобно. Спасибо за пример!

0 +

umoz — 5 апреля 2012 г.

да, для экспресс тестов это конечно удобно. Но есть одно НО.

0 +

umoz — 5 апреля 2012 г.

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

0 +

ALendi — 5 апреля 2012 г.

кидайте в комменты. мне тоже интересно

0 +

dimaAg — 5 апреля 2012 г.

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

0 +

umoz — 5 апреля 2012 г.

да, трейдматик может быть вполне полезной вещью

0 +

umoz — 5 апреля 2012 г.

нащет ресурсов
первое конечно всем известный форум паука(такой и запрос в гугле), там вживую проблемы решают.
офциальный сайт(уже мертвый по четверке) http://wl4.wealth-lab.com/cgi-bin/WealthLab.DLL/getpage?page=ChartScriptFamilies.htm
и еще это например там же http://www2.wealth-lab.com/activetrader/ActiveTrader.htm
есть подробная халявная книга на http://www.baswood.ru/ там еще семинары вские бесплатные и платные. Платным ничем не пользовался, так посмотрел кое-что, мне оно не надо.
ну и на рутрекере есть видео(я только последние несколько частей скачал-остальное примитив вроде)

0 +

Написать комментарий

Чтобы написать комментарий, необходимо авторизоваться.

Написать администратору