← Back

ЛЧИ, данные

С 2003 года проводится ежегодный всероссийский чемпионат по биржевой торговле – конкурс "Лучший частный инвестор". Многим трейдерам интересна статистическая составляющая этого конкурса, а именно анализ работы его участников и агрегированные данные. В данной статье показан способ получения статистики по ЛЧИ на примере данных 2011 года с использованием Python.

Скрипты на Питоне для выкачивания данных из статистики ЛЧИ и пост процессинга, а также данные по всем участникам за ЛЧИ 2011 скачать здесь.

Как использовать?

  1. Скачать и установить сборку питона, если он не установлен (ссылка 1 и ссылка 2).
  2. Набрать в командной строке команду "python". Должна появиться консоль питона (если этого не произошло, необходимо прописать в PATH путь к интерпретатору).
  3. Скрипт download.py скачивает данные для заданного года и участника. Пример: python download.py 2011 dr-mart
  4. Скрипт agregate.py агрегирует скаченные данные (т.е. раскладывает по инструментам, фиксит вечернюю сессию в хронологическом порядке, немного склеивает сделки и считает балансовую позицию). Пример: python agregate.py 2011 dr-mart
  5. В результате должно получиться (dr-mart_RIZ1.csv):
code,direction,price,amount,time,date,balance 

RIZ1,1,122185.0,83,194936,20111005,83
RIZ1,-1,122220.0,-83,194956,20111005,0
RIZ1,-1,125610.0,-30,155054,20111006,-30
RIZ1,1,125965.0,6,174509,20111006,-24
RIZ1,1,125965.0,14,174510,20111006,-10
RIZ1,1,125965.0,1,174511,20111006,-9
RIZ1,1,126110.0,30,174515,20111006,21
RIZ1,1,126100.0,9,174616,20111006,30
RIZ1,1,125965.0,9,174645,20111006,39
RIZ1,-1,125100.0,-30,175144,20111006,9
RIZ1,1,125760.0,21,175858,20111006,30
RIZ1,1,126490.0,30,181004,20111006,60
RIZ1,-1,129025.0,-60,221820,20111006,0
RIZ1,-1,129780.0,-15,125659,20111007,-15
RIZ1,1,130630.0,15,160719,20111007,0
RIZ1,-1,131515.0,-15,175620,20111007,-15
RIZ1,-1,129180.0,-10,203153,20111007,-25
RIZ1,1,130750.0,25,232610,20111007,0

В аттаче — агрегированные текущие данные за 2011 для всех участников.

В корне архива lchi/VisualizeStrategy.wld расположена стратегия для WealtLab 5, которая визуализирует агрегированные данные.

Порядок действий:

  1. Экспортировать данные по инструменту в data sets за период ЛЧИ (например, через Ascii Files — данные от финама размещены в папке lchi/rts_m1_lchi)
  2. Создать новую пустую стратегию File → New → New Strategy From Code. В открывшуюся новую стратегию необходимо скопировать и заменить код из VisualizeStrategy.wld
  3. Единственный параметр стратегии — это filePath; он идет первой строкой в методе Execute. В него необходимо прописать полный путь до файла, содержащего агрегированные с ЛЧИ данные по инструменту. Например, если распаковать архив lchi.rar в каталог c:/project, после чего мы хотим посмотреть торговлю dr-mart на ri, получаем следующее: string filePath = «c:/project/lchi/data/2011/agregate/dr-mart_RIZ1.csv». Вместо dr_mart_RIZ1.csv может быть любой другой файл из каталога agregate. Все слэши в пути должны быть обратными, как в примере! В результате получим такую картинку (за 16.11.2011 dr-mart):

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

Comments (11)

Login or Create account, Log in or register to leave a comment

Mikhail Sukhov
Mikhail Sukhov

vlad1024: (минутный график инструмента, над ним индикатор черным цветом — чистая балансовая позиция, красная пунктиром — ноль, зеленая — максимум чистой балансовой позиции, синим — минимум)

Синей и зеленой линий не вижу на картинке. А так по графику видно, что трейдер не поспевал за рынков.

vlad1024
vlad1024 Author

Mikhail Sukhov:

vlad1024: (минутный график инструмента, над ним индикатор черным цветом — чистая балансовая позиция, красная пунктиром — ноль, зеленая — максимум чистой балансовой позиции, синим — минимум)

Синей и зеленой линий не вижу на картинке. А так по графику видно, что трейдер не поспевал за рынков. Они просто на данной картинке за диапазоном того что отрисовывается оказались, а так они там есть. По поводу не успевал это верно подмечено, в результате - окончательно не успел )

Mikhail Sukhov
Mikhail Sukhov

vlad1024: Они просто на данной картинке за диапазоном того что отрисовывается оказались, а так они там есть. По поводу не успевал это верно подмечено, в результате - окончательно не успел )

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

vlad1024
vlad1024 Author

Mikhail Sukhov:

vlad1024: Они просто на данной картинке за диапазоном того что отрисовывается оказались, а так они там есть. По поводу не успевал это верно подмечено, в результате - окончательно не успел )

Глядя на такой график в голову пришла идея. Можно оценивать у трейдера причины его неэффективности. Например, не досидел, пересидел, не успевал... Наверное, даже KPI подобные существуют. Да, хорошая идея, по сути если просто проторговать эти сделки, это будет MFE и MAE. то есть насколько рынок сходил против нас(MAE), или наоборот сколько мы недобрали от максимума (MFE).

vitug
vitug

Вот ещё хорошая программа для анализа сделок, если к ней сделки прикрутить, то получится гораздо круче чем в WL. Поддерживает скрипты на C#, кстати. http://sites.google.com/site/tranalyzer/home

alun
alun

Всем привет! Ссылка на на народ на странице более не валидна. Этот скрипт еще актуален, можно ли его качнуть? Спасибо.

Mikhail Sukhov
Mikhail Sukhov

alun: Всем привет! Ссылка на на народ на странице более не валидна. Этот скрипт еще актуален, можно ли его качнуть? Спасибо.

Может попробуете сделать это через Гидру? Она ЛЧИ умеет качать + есть встроенный аналитик для графиков http://stocksharp.com/forum/307/Analitika---novaia-ficha-Gidry-dlia-kvant-analiza-i-data-mainingha/

alun
alun

Михаил Сухов: Может попробуете сделать это через Гидру? Она ЛЧИ умеет качать + есть встроенный аналитик для графиков http://stocksharp.com/forum/307/Analitika---novaia-ficha-Gidry-dlia-kvant-analiza-i-data-mainingha/

Ок. Спасибо, Михаил, попробую.

Это то с чего я начал, но там валилось много непонятных пока для меня ошибок...

Mikhail Sukhov
Mikhail Sukhov

alun: Это то с чего я начал, но там валилось много непонятных пока для меня ошибок...

Об ошибках пишите.

alun
alun

Михаил Сухов: Об ошибках пишите.

Что-то в таком духе:


ЛЧИ 18.06.2014 22:47:40 Error System.InvalidOperationException: Нет информации об инструменте с кодом Si36000BL3.
   в StockSharp.Algo.History.Russian.Rts.Competition.CompetitionYear.<>c__DisplayClass13.<GetTrades>b__e(String l)
   в System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   в System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   в System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   в StockSharp.Algo.History.Russian.Rts.Competition.CompetitionYear.<>c__DisplayClass13.<GetTrades>b__d(ZipArchiveEntry e)
   в System.Linq.Enumerable.<SelectManyIterator>d__14`2.MoveNext()
   в System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   в System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   в StockSharp.Algo.History.Russian.Rts.Competition.CompetitionYear.<>c__DisplayClass13.<GetTrades>b__c()
   в Ecng.Common.Converter.DoInCulture[T](CultureInfo cultureInfo, Func`1 func)
   в StockSharp.Algo.History.Russian.Rts.Competition.CompetitionYear.GetTrades(ISecurityStorage securityStorage, String member, DateTime date)
   в StockSharp.Hydra.RtsCompetition.RtsCompetitionTask.OnProcess()
   в StockSharp.Hydra.Core.BaseHydraTask.<Start>b__0()

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

Также не понятно как отличить сделки конкретного участника.

Прошу прощения если вопросы уже задавались. Пока не нашел ответов на форуме.

Mikhail Sukhov
Mikhail Sukhov

alun: что делает выкачивание сделок весьма затруднительным процессом.

Согласен. Упростим в след версии.

alun: Также не понятно как отличить сделки конкретного участника.

По портфелю. Портфель=участник.