tranquility
tranquility личный блог
30 мая 2019, 07:35

Есть ли польза в тиковом поле "направление сделки", транслируемом брокером/биржей?

Как-то я сильно заморочился над тем, чтобы получить из ордерлогов кускальпа данные, которые продаются Мосбиржей. У меня были купленные данные type B (сделки и лучшие котировки) по RI за один месяц и в итоге после всевозможных танцев с бубнами все сошлось (кроме времени сделки/котировки, но это ранее обсуждалось — погрешность +-3 мс возникала из-за органицации хранения исторических данных Мосбиржей, при этом данные кускальпа оказываются более точными). Собственно, больше всего «танцев» было по поводу обратного инжиниринга правил сведения заявок. На языке С++ они выглядят так (комментарии излишни, кому действительно надо — сам разберется):
opDir = L'U';

if( ( qsds[0].plaza2OpWord & QshOrderLogFrame::plazaWordQuote ) != 0 &&
( qsds[1].plaza2OpWord & QshOrderLogFrame::plazaWordCounter ) != 0 ||
( qsds[0].plaza2OpWord & QshOrderLogFrame::plazaWordCounter ) != 0 &&
( qsds[1].plaza2OpWord & QshOrderLogFrame::plazaWordQuote ) != 0 )
{
	for( unsigned i = 0; i < qsds.size(); i++ )
	{
		if( ( qsds[i].plaza2OpWord & QshOrderLogFrame::plazaWordQuote ) != 0 )
		{
			if( ( qsds[i].plaza2OpWord & QshOrderLogFrame::plazaWordBuy ) != 0 )
			{
				opDir = L'B';
				break;
			}
			else if( ( qsds[i].plaza2OpWord & QshOrderLogFrame::plazaWordSell ) != 0 )
			{
				opDir = L'S';
				break;
			}
			else
			{ <a name="cut"></a> 
<br />				throw( string( "One side of the deal has undefined direction" ) );
				break;
			}
		}
	}<br />}
else if( ( qsds[0].plaza2OpWord & QshOrderLogFrame::plazaWordQuote ) != 0 &&
	( qsds[1].plaza2OpWord & QshOrderLogFrame::plazaWordQuote ) != 0 )
{
	if( qsds[1].plaza2OpWord & QshOrderLogFrame::plazaWordBuy )
		opDir = L'B';
	else if( qsds[1].plaza2OpWord & QshOrderLogFrame::plazaWordSell )
		opDir = L'S';
	else
		opDir = L'U';
}
else
{
	if( qsds[1].plaza2OpWord & QshOrderLogFrame::plazaWordBuy )
		opDir = L'B';
	else if( qsds[1].plaza2OpWord & QshOrderLogFrame::plazaWordSell )<br />                opDir = L'S';
	else
		opDir = L'U';
}
ну, разве что поясню, что qsds — структура, содержащая два элемента: две заявки, которые свелись в сделку.
Собственно, у меня такой вопрос: чем ценна такая информация о направлении сделки? Из приведенного кода очевидно ведь, что на выходе получается какой-то неинформативный шум...
P.S. Если кому нужны данные type B за день по заданному фьючу — могу продать за немного рубкоинов:)
20 Комментариев
  • Ditya
    30 мая 2019, 07:44
    Ну я думаю что это инфа ни о чем, если только нет цели выявить манипуляторов рынка,  которые проводят сделки между собой лишь. Хотя для обеденных трейдеров это тоже особо не имеет ценности.
      • Андрей К
        30 мая 2019, 09:40

        tranquility, дельта вроде полезна в нескольких вариантах:

        1) либо очень сильная точечная, размазанная на 1-2 пункта, тогда можно заявку втыкать и стоп за нее
        2) либо кумулятивная дельта. Это достаточно сильный сигнал, когда идет дивер по кумулятивной дельте и цене. Цена например растет, а дельта вовсю падает. Например на протяжении пары часов или на протяжении пары дней, в зависимости от тф

        • Friendly Deep Space
          30 мая 2019, 09:57
          Андрей К, т.е. в моменте не определить кто сильнее давит, так или иначе оно уже прошлое) Тут обязательно кто-то скажет, что это тот же курвафитинг, но по дельте.
          • Андрей К
            30 мая 2019, 11:29
            Friendly Deep Space, 
            в моменте не определить кто сильнее давит
            примерно в 65% случаев я могу вычислить, от куда эти дельты взялись. Но это надо поторговать немножко.

            Во фьюче большие дельты образуют несколько участников:
            1) арбитражеры. Это когда на споте появился не маленький участник и арбитражер под него долбит фуч
            2) опционные хеджеры, когда крупному продавцу опциона нужно срочно перекрыть какие то ноги.

            больше особо крупных учасьников, которые работают во фуче нет у нас. Вот они и образовывают такие дельты. Если вычислить кто это, то сразу понятно чего происходит
            • Friendly Deep Space
              30 мая 2019, 12:51
              Андрей К, непростое это дело объемный анализ. Вроде смотришь слева на графике и все понятно, а справа...)) Нужна автоматизация и тест.
              • Андрей К
                30 мая 2019, 12:52
                Friendly Deep Space, ну да, без полной автоматизации никак
  • Ditya
    30 мая 2019, 07:45
     во время торгов важна для нас активность в ту или иную сторону а кто кому продал и кто купил нам не так важно
  • Replikant_mih
    30 мая 2019, 12:20
    С++… очень на C# похоже, эт че получается, я могу сам написать какой-нить модуль, который будет простой (не требующий углубления в С++), но оч. быстрый… любопытно)
    • Lagamail
      30 мая 2019, 20:43
      Replikant_mih, видел ещё в инете конверторы из С# в С++.
      • Replikant_mih
        30 мая 2019, 21:41
        Lagamail, Конвертеры для слабаков! — Только хардкор!
        • Lagamail
          30 мая 2019, 21:50
          Replikant_mih, сейчас конверторы уже лучше конвертят чем программеры )
  • r0man
    30 мая 2019, 16:38

    Вроде направление сделки определяется типом заявки инициатора сделки.
    А инициатор сделки будет тот, у кого выше(больше) номер заявки. Если в структуре qsds уже есть две заявки, что свелись в сделку, то зачем такой сложный код городить?

      • r0man
        30 мая 2019, 17:22
        tranquility, 

        Вот кусок из полного ордерлога :

        12.05.2016 19:00:00.908;21244387422;12048;1;0;1482842997;12049;1125432;Fill, Sell, Quote
        12.05.2016 19:00:00.908;21244387056;12049;1;34;1482842997;12049;1125432;Fill, Buy, Quote, EndOfTransaction

        21244387422 (Sell) и 21244387056 (Buy) — это номера заявок попавших в сделку 1482842997. Номер заявки 21244387422 выше чем 21244387056, следовательно сделка будет иметь направление Sell.

          • Unworldly
            31 мая 2019, 00:29
            было бы все так просто, я бы не стал писать такой костыльный код…

            tranquility, код, возможно, ошибочен, либо «замусорен». В последней паре if/else код ветки if совпадает с кодом ветки else (найдите ту пару, которую я имею ввиду). Обычно это бывает после copy&paste'ы, которую затем забыли отредактировать «до готовности».

            Либо, если всё правильно, то if тогда здесь просто лишний.

            Код, фактически, на C, из C++ здесь только throw, string и операция :: .

            Код вставлен криво, — перемежается HTML-tag'ами.
  • asfa
    05 мая 2020, 14:03
    удалось информацию о направлении сделки использовать успешно на практике?

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

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