Tick Compress Plugin

30Янв07

Идея плагина возникла после прочтения следующей статьи ( оригинал ):

Tick Compressor
О программе

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

Немного о концепциях, лежащих в основе алгоритмов.

На торгах ММВБ производится автоматическое сведение заявок на покупку и продажу по лучшим ценам. При этом преимущество при исполнении при одинаковой цене имеет более ранняя заявка. Рассмотрим ситуацию, когда продавец активно отдает в бид (при активной покупке с офера ситуация развивается аналогично). Если самая ранняя заявка на покупку превосходит по объему заявку на активную продажу, то в отчете о сделках на ММВБ появится всего одна строчка, например, такая:

01/02/02 11:02:59 5.016 100

Если же активная продажа превышает по объему самую раннюю заявку на покупку по текущей лучшей цене, то в ход пойдет вторая заявка, потом третья и так далее — пока не будет удовлетворена заявка на продажу. При этом в отчете эта одна активная продажа будет «рассыпана» на несколько сделок — по числу удовлетворенных заявок на покупку. В отчете такая сделка будет обозначена несколькими сделками по одной цене и в одно и тоже время, например, так:

01/02/02 11:20:13 4.991 1925
01/02/02 11:20:13 4.991 100
01/02/02 11:20:13 4.991 6
01/02/02 11:20:13 4.991 50
01/02/02 11:20:13 4.991 100
01/02/02 11:20:13 4.991 100
01/02/02 11:20:13 4.991 500
01/02/02 11:20:13 4.991 219

Если мы сложим объем прошедших сделок, то получится круглая цифра — 3000 лотов. Это частая ситуация — активная продажа среднего по величине лота РАО ЕЭС в отчете «замаскирована» под серию более мелких сделок. Я называю такую серию сделок «влив без сдвига».

Рассмотрим ситуацию дальше. Может так оказаться, что объема заявок, выставленных на покупку по лучшей цене, не хватит для удовлетворения активной заявки на продажу. Если заявка на продажу высталена по рыночной цене (т.е. без ограничения цены — «продажа по любой цене») или ограничена ценой, расположенной ниже лучшей цены предложения, то образуется «влив со сдвигом цены»:

01/02/02 11:20:04 4.998 10
01/02/02 11:20:04 4.997 50
01/02/02 11:20:04 4.997 10
01/02/02 11:20:04 4.997 50
01/02/02 11:20:04 4.997 30
01/02/02 11:20:04 4.997 300
01/02/02 11:20:04 4.997 2
01/02/02 11:20:04 4.997 200
01/02/02 11:20:04 4.996 500
01/02/02 11:20:04 4.995 460
01/02/02 11:20:04 4.995 2388

В данном случае «влито» 4000 лотов по ценам от 4.998 до 4.995, средняя цена продажи — 4.995 (при округлении до третьего знака после запятой).

TickCompressor производит «свертывание» первоначального ряда сделок таким образом, что сводит «рассыпанные» одномоментные сделки воедино, выявляя «замаскированные» средне- и крупнолотовые сделки. Например, приведенный выше пример «влива без сдвига» после обработки будет выглядеть как одна сделка:

01/02/02 11:20:13 4.991 3000

а пример «влива со сдвигом» так:

01/02/02 11:20:04 4.995 4000

Отмечу, что в качестве цены при «вливе со сдвигом» указывается средняя цена сделки, округленная до третьего знака.

Для чего это «свертывание» нужно?

Во-первых, такая операция позволяет существенно сжимать отчеты о сделках — в несколько раз. Кстати, если полученный результат профильтровать, оставив только сделки объемом 1000 и более лотов (для РАО ЕЭС), то количество тиков уменьшается более, чем в 10 раз, при этом получаемые после такой операции минутки и часовки практически не отличаются от исходных, а объем этих 10% тиков (от общего числа тиков) составляет более 90% всего объема. Мелколотовые сделки выступают своего рода шумом — по крайней мере мои торговые системы показывают несколько лучший результата на отфильтрованном таким образом ряду сделок.

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

Вторая задача, решаемая TickCompressor’ом — это присвоение каждой сделке в «свернутом» ряду знака, в зависимости от того, происходит продажа (цена сделки ниже предыдущей) или покупка (цена сделки выше предыдущей). Если цена сделки не изменилась по отношению к предыдущей, то сохраняется знак предыдущей сделки. Такое разделение сделок необходимо для разработки ряда стратегий, основывающихся на анализе накопления-распределения объемов.

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

Код AFL
adjtick = 0; //Эти переменные присваиваются в функции TickCompress()
adjVol = 0;
//Фильтр объема, в данном случае фильтруем тики объемом в деньгах > МИО.
TickFilter = 1000000/LastValue(C);
//Функция TickCompress(nSharesFilter,nGreaterFlag);
//nSharesFilter - размер тика
//nGreaterFlag - если 1 на выходе все что больше nSharesFilter, 0 -меньше.
z = TickCompress(TickFilter,1);
//Функция возвращает:
//Создаются 2 переменных adjVol и adjTick. А также просто
//возвращается как значение функции переменая adjTick = z;
V = adjVol; //Создаем массив тиков
H = L = C = O = adjTick; // Чтобы корректно отображался на графике свечей
Plot( adjTick, "Close", colorBlack, 64);

Скачать Tick Compress Plugin
Эта статья тоже может пригодиться



28 Responses to “Tick Compress Plugin”

  1. 1 Dmitry

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

  2. 2 Dmitry

    Сам этот тик-компрессор в теперешнем рынке какую картину показывает? можно извлечь полезную информацию сейчас? Хотелось бы посмотреть на некоторые голубые фишки с этим индикатором. Вы его используете на дэйли ? или же иные периоды тоже?

  3. Сейчас пользуюсь совсем другими вещами, но ТикКомпрессор послужил для них основой.
    Полезную информацию извлечь можно из чего угодно, главное знать как.
    По текущему рынку могу сказать одно — торгуйте контр трендовые системы. 😉

  4. 4 Dmitry

    за рыночный профиль взялись?)

  5. Брался давно, но плюнул потом не нашел я там большого преимущества по сравнению с тем, что торгую сейчас. Однако МР дает хороший задел «на подумать» по поводу рыночного сентимента.

  6. 6 Dmitry

    не совсем понимаю о чем вы говорите.

  7. 7 Dmitry

    на рынке ведь кроме объема и цены ничего нет. причем на нашем рынке. по сути весь анализ сентимента сводиться должен именно к объемам. Разве я не прав?

  8. >>не совсем понимаю о чем вы говорите.

    Я говорю о том, что у меня не получилось сделать нормальную МТС на основе рыночного профиля. Однако вся концепция МР первым делом обращает внимание на поведение участников рынка, а уж во вторую очередь идет анализ цены и объема. Просто по моему мнение самая суть профилей в том, чтобы дать новый взгляд на рынки отличный от модели графиков цена-время.

    >>по сути весь анализ сентимента сводиться должен именно к объемам.

    По сути цена-объем это проекция сентимента на рынок. Понятие сентимента намного более широкое и существует намного больше способов его измерения и описания.

  9. 9 tlt-vlad

    Здравствуйте , есть проблемка — копирую dll в папку plagin , Ами его не видит ( в меню Tools-Plagins его нет) , нажимал Load — результат нулевой .Когда копирую dll Market Profile , то в плагинах он появляется , однако бросая индикатор на график Ами выдаёт ошибку .Подскажите , как быть ?

  10. Возможно в вашей системе не установлены некоторые библиотеки попробуйте установить Microsoft Visual C++ 2005 Redistributable Package (x86)
    http://www.microsoft.com/downloads/details.aspx?familyid=32bc1bee-a3f9-4c13-9c99-220b62a191ee&displaylang=en

  11. 11 tlt-vlad

    Файл скачал с сайта MS , в какую системную папку их устанавливать ?

  12. 12 tlt-vlad

    Здравствуйте , если я правильно понимаю , то мнимально допустимый объём задаётся строкой
    TickFilter = 1000000/LastValue(C); 1000000 — минимальный объём ?

  13. 1000000 — объем в рублях, тики с меньшим объемом будут игнорироваться(в зависимости от 2-го параметра функции)

  14. 14 tlt-vlad

    …1000000 — объем в рублях, тики с меньшим объемом будут игнорироваться(в зависимости от 2-го параметра функции)

    Что значит ,в зависимости от второго параметра функции ? Параметр LastValue(C) у нас постоянно меняется , а значит значение параметра TickFilter тоже будет постоянно изменяться . Мне казалось , что этот параметр должен быть постоянен для фильтрации , разъясните пожалуйста ?

  15. Ну если хотите постоянного параметра можете использовать C[1] например.

    Функция TickCompress принимает 2 параметра VolFilter и IsGreaterFlag, если IsGreaterFlag=1 то показываются тики объемом больше VolFilter, а если IsGreaterFlag=0 то меньше VolFilter.

    Значение VolFilter нужно вычислять исходя из того, какой тип объема у Вашего инструмента: кол-во акций или кол-во лотов или просто объем в Рублях.

    TickFilter = 1000000/LastValue(C); — эта формула для фильтрации объема в штуках акций выраженных в деньгах.
    Можно сделать TickFilter = 1000, тогда компрессор будет фильтровать тики объемом более 1000 штук акций.

    Если есть желание могу скинуть исходник плагина.

    • 16 Sphinx

      Приветствую!
      Если у Вас еще остались исходники Tick Compress Plugin, не могли-бы Вы их скинуть мне по почте?
      Благодарю!

  16. 17 tlt-vlad

    Да , если можно , скиньте на Email.
    Спасибо .

  17. Скачал dll, кинул в Plugins, скопипостил код, результат — ошибка:
    в этой строчке —
    z = TickCompress(TickFilter,1);
    Вроде как функцию не узнает… Шо делать? Было бы интересно глянуть что там получается.

  18. 20 JohnP

    Правильная рассылка на 8 тысяч 750 досок а так же на 47 тысяч форумов и о ваших товарах мгновенно узнают десятки миллионов покупателей.- Всего 212 рублей за рассылку. — Качественно.С гарантией..- т. 8-926-685 + 32 — 42 ICQ 568113539 почта: rutop10(собака)mail.ru ma 464

  19. 21 KXMichael

    Быстрая рассылка обьявлений на 8 тысяч 800 досок обьявлений а так же на 49 тысяч 500 форумов и о ваших предложениях сразу же узнают тысячи клиентов.- Всего 237 ублей за рассылку. — Качественно.С гарантией..- т. 8-926-685 + 32 — 42 ICQ 568113539 почта: rutop10(собака)mail.ru ae 359

  20. 22 PaaulMK

    Большая подборка девочки голые и красивые.

  21. It’s hard to find educated people in this particular topic, but you seem like you know what you’re talking about!
    Thanks

  22. I just couldn’t go away your web site before suggesting that I really loved the usual information an individual provide for your visitors? Is gonna be back continuously in order to inspect new posts

  23. I have learn several good stuff here. Definitely price bookmarking for revisiting.
    I surprise how a lot attempt you place to create any such excellent informative
    web site.

  24. I have been browsing online morе than thгee hⲟurs today, yet
    I never fߋսnd ɑny іnteresting article ⅼike уours.
    It iѕ pretty worth enoսgh for me. Іn my opinion, if all site owners and bloggers made gooԁ сontent as you did, the
    net will Ƅe a lot more սseful tһan evеr bеfore.


  1. 1 Объем как индикатор сентимента « Heaven trading
  2. 2 Объем как индикатор сентимента – Ubertrader

Ответить на Sphinx Отменить ответ