ЛЧИ, данные
Atom Ответить
01.04.2012


С 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):


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

Теги:


Спасибо: Garic StockSharp



Поздравляем именинников: Станислав Гайворонский

11 Ответов
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 02.04.2012
Ответить


vlad1024 Перейти

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


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

vlad1024

Фотография
Автор статей
Дата: 02.04.2012
Ответить


Mikhail Sukhov Перейти
vlad1024 Перейти

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


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

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

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 02.04.2012
Ответить


vlad1024 Перейти

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


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

vlad1024

Фотография
Автор статей
Дата: 02.04.2012
Ответить


Mikhail Sukhov Перейти
vlad1024 Перейти

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


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

Да, хорошая идея, по сути если просто проторговать эти сделки, это будет MFE и MAE. то есть насколько рынок сходил против нас(MAE), или наоборот сколько мы недобрали от максимума (MFE).
Автор топика
Спасибо:

vitug

Фотография
Дата: 10.05.2012
Ответить


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

alun

Фотография
Дата: 13.06.2014
Ответить


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

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 13.06.2014
Ответить


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


Может попробуете сделать это через Гидру? Она ЛЧИ умеет качать + есть встроенный аналитик для графиков https://stocksharp.ru/fo...naliza-i-data-mainingha/
Спасибо: alun

alun

Фотография
Дата: 18.06.2014
Ответить


Михаил Сухов Перейти
Может попробуете сделать это через Гидру? Она ЛЧИ умеет качать + есть встроенный аналитик для графиков https://stocksharp.ru/fo...naliza-i-data-mainingha/


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

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

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 18.06.2014
Ответить


alun Перейти

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


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

alun

Фотография
Дата: 18.06.2014
Ответить


Михаил Сухов Перейти


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


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

Код

ЛЧИ 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

Фотография
Автор статей Программист Трейдер
Дата: 18.06.2014
Ответить


alun Перейти

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


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

alun Перейти

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


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


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

loading
clippy