Тиковая история с bid/ask по импортным фьючерсам за несколько лет

halyavaТот, кто пробовал найти глубокую историю тиковых данных да еще и с направлением сделки, знает, что не так-то все и просто. Купить, конечно, можно, но цена не просто кусается, а рискует сожрать с потрохами всю потенциальную прибыль от ТС, для построения которой такие данные вам показались необходимыми. За один инструмент провайдеры просят около $500. Я же предлагаю получить все совершенно безвозмездно, т.е даром (© Сова).

Итак, нам понадобится trial версия платформы Sierra Chart (она включает все плюшки от пятого, самого крутого пакета SC), много свободного места на диске, эта статья и немного терпения. Зарегистрировать себе trial Сиерры можно очень просто прям на их сайте на две недели (этого скорее всего будет вполне достаточно, чтоб выкачать все интересующие вас инструменты) и чуть сложнее на 3 месяца — оформив подписку через партнерскую программу с Topsteptrader.

Пройдя первый этап можно переходить, собственно, к нещадной эксплуатации всех щедрот, предоставляемых этой чудо-платформой. Итак, нам нужны не просто данные, а каждый контракт с небольшим календарным запасом, для того, чтоб фьючерсы, имеющие привычку перетекать с одного котракта на другой раз в 1-3 месяца, можно было корректно склеить. С этой мотивацией первым шагом после загрузки платформы мы должны выбрать File -> Data/Trade Service Settings и там, в отмеченных на рисунке ниже розовым маркером местах, все указать именно так:

data settings

Таким образом, платформа теперь будет грузить весь ликвидный период контракта + несколько избыточных дней для склейки. Ну и про галочку напротив Allow Suport for SC Data Feed не забывайте, без нее ничего не выйдет.

Затем следует загрузить текущий контракт интересующего нас инструмента. Для этого делаем так: File -> Find Symbol -> ужасаемся разнообразию ->  с горем пополам находим нужный инструмент и его текущий контракт -> жмем Open Intraday Chart.

Если на этом этапе график на экране почему-то не отобразился, или отобразился некорректно, то попробуйте сделать следующее: Edit -> Delete All Data and Download.

Теперь настраиваем все в меню Chart Settings и да поможет вам в этом F5.

В вызванной менюшке выбираем Use Date Range и там в графе «From:» указываем 2011-06-01, так как именно с этого места Сиерра готова делиться тиковыми данными. Все, что до этой даты, будут секундки без bid/ask volume и без количества трейдов, сделанных за эту секунду — просто с суммарным объемом. Графу «To:» можно оставить пустой.

Следующий шаг следует делать тем, кто планирует использовать тиковые данные c правильной склейкой контрактов в Sierra Chart, или же просто, если вы хотите кроме интрадея получить еще и дневки. Для этого здесь же, в Chart Settings, переключаемся на закладку Advanced Settings и там, в выпадающей менюшке Continuous Contract, выбираем одну из опций: Date Rule Rollover, Backadjusted или Volume Based Rollover, Backadjusted в зависимости от того, хотите ли вы, чтоб переход контракта происходил по конкретной дате, указанной на бирже, где инструмент торгуется, или же только при перетекании объема — разница обычно составляет всего пол дня в интерпритации SC.

continuous

Именно магическое упоминание «Back Adjusted» инициирует скачивание .dly файлов, поэтому без этой манипуляции Сиерра просто не закачает дневки, по которым, собственно, и делает adjustment (корректирует цены предшествующих контрактов под текущий, чтоб график был без гэпов). Если этот шаг вы решили не пропускать и все сделали правильно, то теперь у вас будут и дневки, и, следовательно, тиковые интрайдейные данные с возможностью корректно настроить объединение контрактов.

Если закончив с Chart Settings вы не забыли нажать Apply и ОК, то теперь в папке SierraChart\Data появится довольно много новенького. Файл с расширением .dly — это дневка в текстовом формате. Файлы .scid — это бинарные файлы ваших новообретенных тиковых данных поконтрактно. Бывает такое, что дневки имеют размер всего 58 байт. Это пустой файл, появившийся по причине неведомого глюка, и, в таком случае, стереть его и попробовать закачать заново — может все исправить. У пустых .scid-файлов размер составит 56 байт. Если такое увидите — поступайте так же, как с дневками.

В зависимости от инструмента scid-ники будут иметь разный, но, как правило, довольно внушительный размер. Для нефти, к примеру, это около 200 мегабайт для каждого контракта. Для каждого отдельно взятого инструмента все scid-файлы будут приблизительно одинаково весить, и если это у вас не так — это повод насторожиться.

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

struct s_IntradayRecord
{
 double DateTime;

 float Open;
 float High;
 float Low;
 float Close;

 unsigned long NumTrades;
 unsigned long TotalVolume;
 unsigned long BidVolume;
 unsigned long AskVolume;


 s_IntradayRecord()// Constructor
 {
  DateTime=0.0;
  Open = 0.0;
  High = 0.0;
  Low = 0.0;
  Close = 0.0;
  NumTrades = 0;
  TotalVolume = 0;
  BidVolume = 0;
  AskVolume = 0;
 }


};

Получается, что наши файлы будут содержать избыточную информацию, так как сами понимаете, для тиков не имеет значения ни открытие, ни закрытие, ни хай с лоу, а особенно пофиг должно быть на number of trades. Это, кстати, следует использовать для проверки верности достигнутого результата. Выбираем Edit -> Edit/Download Data — Intraday Chart:

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

Тут попробуйте поперемещать бегунок влево-вправо, и если в графе Number of Trades неизменно красуется единица, значит все сделано правильно.

Что касается избыточности файлов, не волнуйтесь — Sierra Charts достаточно хорошо дружит с Windows и использует NTFS сжатие, чтоб сэкономить вам место на диске.

Теперь про подводных зайцев. Во-первых, обнаружилось, что некоторые символы Сиерра не может склеить, так как для инструмента просто не задана дата, когда контракт должен роллиться. Увы, даже если вы выбирали перемещаться на другой контракт по признаку перетекания объемов, все равно ничего не получится. Как-то упрямо все у них там: нет правила — нет склейки и, что даже хуже, автоматической загрузки предыдущих контрактов тоже нет.  Экспериментальным путем было обнаружено, что из набора более-менее интересных фьючерсов такая фигня случается со следующими инструментами: CT, MGC, QG, QO, UB (скорее всего, список более обширен). Что предпринять дабы все-таки склеить их корректно, я, честно говоря, не знаю. Как говаривал суппорт Волфикса одному моему знакомому: «Зачем вам этот неликвид? Торгуйте нормальные инструменты!» Нет? Ну, тогда каждый контракт ручками грузите или поищите — где-то в недрах Сиерры я видела место, где это правило можно задать самостоятельно.

Во-вторых, формат данных для Sierra Chart скорее всего будет отличаться от формата той платформы, с которой вы привыкли торговать. Меня этот вопрос мало волнует, так как я влюблена всерьез и надолго в Сиерру. Вам же, если вы не разделяете моих чувств, придется сконвертировать данные в нужный формат. По инсайдерской информации от программистов — дело это нехитрое, но я тут вряд ли смогу помочь. Если напишете такой конвертер — не забудьте поделиться с другими 😉

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

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

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

Вам также может понравиться

  • Иван

    Света спасибо большое, за важную статью. Такие как вы двигают прогресс в РФ.
    Вы случайно не знаете в выходные дают дату?

    • linred

      Спасибо, хоть вы, конечно, и преувеличиваете про прогресс 🙂 Данные будут качаться в любой день, полагаю.