Блог им. nosorog

Новая старая история минуток Сишки

Привет всем!

Для тестирования торговой стратегии, очевидно, нужна качественная история. Обсуждение тем «тест истории ничего не гарантирует» и «покупай у ММВБ тип А (https://www.moex.com/ru/orders?historicaldata) и сиди восстанавливай весь ход торгов» — оставляю за пределами этой темы.

Моя цель — трудозатратами до 1-2 «рабочих вечеров» получить более-менее качественную историю Сишки с 2012г., склеенную с учетом фактической практики моего переключения контрактов.

Как и большинство трейдеров исторические данные я качаю с Финама (юзаю свой макрос в Excel, ибо я олд-скул-программист, осваивать новые питоны — некогда).

Раньше брал финамовскую склейку, но очевидно, что это не удовлетворяет второй части моей цели, что будет снижать качество тестирования. Поэтому решил заморочиться со склейкой контрактов самостоятельно. Алгоритм то простой — обрезать у конкретных контрактов данные в момент, когда я по своей практике и переключаюсь между ними.

При этом, уже долгое время юзая финамовскую склейку, я регулярно нахожу в ней косяки — явно нереальные шипы. Бывает они длятся часами. Поэтому ради светлой цели решил восстановить свой макрос в Excel, которым некогда пробовал таскать данные по акциям через ISS с сайта ММВБ. Для меня была аксиома, что именно там — самые качественные данные. В принципе, быстрым костылем и не особо вспоминая (старый) API ISS, удалось скачать данные по контрактам сишки. Правда не с первого раза — то данные есть, то их нет, но за пару раз все скачалось.
Прим. Говорят, что есть уже новое API, но разбираться с ним мне точно сейчас не охота, это гарантированно за пределами моего бюджета времени на этот вопрос.

В общем, сделал склейку данных с ММВБ — и решил сравнить графики с Финама и с ММВБ, предвкушая наблюдение массы финамовских «шипов-козявок», а также дыр данных, ради избавления от которых, собственно говоря, и тратил свое время. Безусловно, я их увидел, но шокирован был другим — чуть ли не больше их есть на стороне ММВБ! Могет это следствие бесплатности данных, типа стимулирование покупать платный продукт. Не знаю.

Вот как это выглядит:

Новая старая история минуток Сишки

На верхнем графике — данные с ММВБ.
В середине — данные с Финама.
На нижнем индикаторе — простая формула: максимум из разниц между OpenММВБ и OpenФинам, HighММВБ и HighФинам и т.д. При полном совпадении свечей индикатор, очевидно, равен 0. Но на показанном примере — мы видим разницу High больше 100 пунктов!

При всем уважении к ММВБ, мне данный шип кажется нереальным. Конечно, в торговле все бывает, но не так часто. А еще — в правой части графика мы видим — дыру данных! Сам график я перед публикацией сделал более крупным, но в реальности буквально в этот же день с 14:55 там еще одна дыра, вернее дырище — аж до начала вечерней сессии!

В итоге, немного расстроенный пошел спать, но в 5 утра мой мозг снова проснулся и повел меня писать этот пост :).


Итак, коллеги, вопрос простой — есть ли идея получше, чем:
— скачать данные по каждому контракту теперь и с Финама.
— сделать быстренько сверку в Excel (можно даже формулами, но мне удобнее макросом, не суть) — и при выявлении шипа (сверх например 30 пунктов) на одном из графиков при отсутствии его на другом — тупо брать данные свечи без шипа. Допускаю, что шипы у ММВБ являются некой защитой интеллектуальной собственности (признаться, сам бы, наверное, в их ситуации делал бы так, причем индивидуально каждому клиенту — для последующей идентификации сливщика данных). Но если сделать предположение, что случайные или специальные ошибки в данных являются следствием случайной функции, то вероятность совпадения выдуманных шипов одновременно на обеих свечах — маловероятно. Ну а в случае дыр остается брать данные с Финама, естественно все же посмотрев наличие их шипов на этом участке. 

Прим. Кстати, после правки шипов у ММВБ получается, что данные уже перестали быть их интеллектуальной собственностью — ведь я получил исходник бесплатно, после чего вложил свой труд в их модификацию (ровно также, как если бы я расставил свои запятые в стихах Пушкина :)


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

Заранее благодарен за любую помощь!




★3
31 комментарий
Привет! Вам нужно реальные обезличенные сделки (я думаю у кого-то из частных трейдеров они есть), уже с них строите нужный график со склейками и т.п. Моекс и остальные поставщики прячут свои сделки, фильтруют крупных игроков, т.е. делают все, для того, что бы чел, который занимается тестированием не нашел ситуаций, когда его выбъет по стопу 5 раз в день или вообще внутри 1-й минуты раз 30. В итоге стратегия будет гладкой, а на деле — гадкой)
Кашников Александр, спасибо! Надо будет как-нибудь действительно сравнить :) 
avatar
Большую работу проделываете. Тоже интересно, где можно взять качественную историю. Как вариант при тестировании в самой стратегии прописывать: не торговать момент склейки. Ну тут тоже есть минусы. 
avatar
Кирилл Глухов, спасибо! — тоже пришёл к той же мысли :). Правда пока особых минусов не увидел.
avatar
вот здесь глянь , автор пишет «Все спайки (шпили, «заборы», аномальные свечи) на склейках постараюсь зачистить.»-но сам не проверял
avatar
old schooler, проверял, НЕ зачищено
avatar
old schooler, огромное спасибо! На первый взгляд, сайт сделан аккуратно — уже первый признак. Так как я морально уже решился профильтровать / склеить сам, то попробую — все же данный опыт может показаться полезным. В любом случае, ещё один источник информации — это просто чудесно. Обязательно скачаю и сравню со своим результатом. Если все ок, можно будет свои силы не тратить. 
avatar
Торгую Si стратегии, протестированные на USDTOD. Проблем со склейкой не имею :)
avatar
Минутки с финама, взятые раздельно по каждому фьючу, очень чистые. Не идеал, но почти. Склеивать надо самому, это не просто, а очень просто. На смартике обсуждали это множество раз. 
avatar
SergeyJu, согласен, что сложности никакой. Просто время. Даже просто скачать эти данные, потом с датами экспиры разобраться — туда сюда и 2 часа пролетело. 
avatar
Носорог, на написание  комментов+чтение посетители потратили намного больше временных ресурсов. 
avatar
SergeyJu, согласен частично :).


1. Написание и чтение моих постов все-таки не 2 часа
2. К сожалению, в рабочее время мне доступен только телефон (фактически СЛ + мониторинг роботов по RDP), программировать и обрабатывать данные могу только дома. 
3. Сегодня немного нетипичный день — фактически работаю офисным водителем. 90% сижу жду, а сидеть без дела оказывается неожиданно тяжко. Но с замечанием согласен  — что то меня прорвало :) — спасибо! Возьму лучше листочек и набросаю скелет одной функции, которую вечером надо будет сделать. 

Спасибо и удачных выходных! 

avatar
А зачем вам такая чистота и точность? На рынке всё равно будет что-то новенькое, с которым торговой системе придётся взаимодействовать в плюс. Если такие мелочи имеют значение — это плохой знак.
avatar
oerlikon, если вы намекаете на подгонку под историю, то согласен, но в данном случае скорее наоборот. 

Если отвечать на ваш вопрос, то примерно так:
50% — привычка пользоваться качественными материалами и инструментами. Просто чтобы потом не «перебирать движок из-за того что ради псевдоэкономии заправлялся на сомнительных заправках». У айтишников касаемо важности качества данных есть даже профессиональная пословица ( простите ) — «говно на входе — говно на выходе». В общем, когда я на графике вижу 4 часа шипов по 500 пунктов, мой мозг и все моё нутро просто отказываются как-либо анализировать такой график. 
 50% — если не ошибаюсь в 14м году у финама есть такая расчёска из шипов, которая добавляет к торговой системе больше 30% годовых. Запарился постоянно держать в уме этот момент. 

В общем, если я могу за пару дней вычистить данные по самому активно используемому мной инструменту, то я лучше это сделаю. Здесь есть и тонкий ментальный момент. Не уверен, что смогу его кратко сформулировать, а долго писать не хочется. В общем, меня как то зацепила фраза одного из гуру компьютерного моделирования. Он сказал — «некрасиво нарисованная компьютерная модель не может работать правильно». Грубо говоря, вкладывая в свое дело душу (в хорошем смысле :), я хочу это делать в позитиве и без вони кривых данных. 

Как то так. 

При этом, я понял что вы хотели сказать и согласен с тем, что хорошая торговая система, ровно как и действительно хороший автомобиль, не загнется от 1% некачественный данных или топлива. Потому что помимо прочего действительно хорошая система/автомобиль должны быть готовы к такому сюрпрайзу в реальной жизни. К примеру если глюканет у крупного банка робот, твоя система не должна от этого моментально слиться со словами «а в тестах такой хрени не было». В общем, не идеально качественная пища тоже в определённом смысле полезна для выработки иммунитета. Но все хорошо в меру. Для меня липовые +30% годовых (ровно как и минус) — слишком значительное искажение. Так можно принять неверное решение при той же балансировке портфеля систем. 

avatar
Носорог, я сам качаю данные с ФИНАМа и на отдельных контрактах вроде никакого лютого криминала не видел, хотя может и не присматривался. Сейчас я вообще дальше 2016-17 года в прошлое не смотрю, и вообще интересуюсь только ценами закрытия минуток и объёмами.
Не, я вообще не намекаю на подгонку )
Просто да, если в данных присутствуют какие-то незначительные несовпадения с абсолютно точной историей с самой биржи, это вообще ни на что существенно влиять не должно, шум он и есть шум.
avatar
oerlikon, 
почему не смотрите далее 2016-17 года?
Дмитрий Овчинников, да как-то дальше в прошлое не нужно, практика показывает что этого вроде как хватает для обучения моделек. Но я торгую интрадей.
avatar
oerlikon, 
у меня большинство алгоритмов тоже интрадей, но я недавно добавил к моделям 2015 год. И добавил бы еще и 2014, это очень интересно, но к сожалению, пока нет технической возможности. И, кстати, на 2015 результаты существенно отличаются от 2016 и 2017.
Дмитрий Овчинников, да наверное отличаются, но я как бы не историей занимаюсь ) можно конечно попробовать обучиться на данных тех лет и посмотреть что было бы если бы сейчас было тогда, только не вижу большого смысла если честно. Интереснее какой-нибудь новый инструмент попробовать с текущими данными.
avatar
oerlikon, 
вы не поняли, я не говорю об обучении моделей. Я говорю о тесте OUS. Мне интересно поведение моего портфеля систем на данных, отличных от тех, на которых проводилось построение. Эти данные могут быть на графике как справа, так и слева. Но справа медленно, а слева быстро :)
Дмитрий Овчинников, да не, я всё понял конечно. Просто я модели делаю не для любых данных, а только для тех что будут справа. То есть чтобы проверить как вся эта люстра повела бы себя в прошлом, надо переобучить её так, как будто бы она в прошлом, а 2015 скажем год ещё не наступил ) Иначе на просто каких-то данных из прошлого её гонять конечно можно, но довольно бессмыссленно. Так для оценки рисков если только что будет если модели работать перестанут )))
avatar
oerlikon, 
Бинго! Я это делаю именно и только для оценки рисков. 
Дмитрий Овчинников, да что бинго )) это не самый важный элемент в оценке рисков, настолько что его можно спокойно доверить подмастерьям просто чтобы без дела не сидели. Ну, как плац драить )
avatar
oerlikon, 
какие же элементы оценки рисков наиболее важны?
Дмитрий Овчинников, риск того, что обученная модель окажется негодной конечно же. Это как бы должно быть очевидно, не?
avatar
oerlikon, 
прошлое об этом вам ничего не скажет, а к будущему доступа нет, поэтому точного ответа на этот вопрос вы не получите. Значит этот вопрос не имеет смысла.
Дмитрий Овчинников, ну, не имеет так не имеет ))
avatar
Если Вы так хорошо считаете Ваше время, может, разумней купить эти данные на МФД или напрямую на бирже? Оплатить подключение к сервису ISS — и выкачать за пару дней всё, что он только согласится Вам отдать?..
avatar

ch5oh, за МФД спасибо — их как то не рассматривал как поставщика данных, изучу.

На ММВБ я как то уже покупал ради пробы данные — для меня их ценник слишком дорог.

К серверу ISS у меня сейчас итак бесплатное подключение. Адекватной информации о том, что дополнительного даст мне платное я не нашел. А тут как раз еще и «нежданчик» с качеством данных (не факт что на платном оно лучше, но и обратное — не факт, но при случае было бы полезно найти ответ на этот вопрос).

Разовая выкачка за пару дней — немного не то, т.к. хочется в случае необходимости иметь понятный способ обновления истории.

Пока для себя решил так:
1.  потрачу пару вечеров ради научного интереса — и пойму в целом масштаб бедствия в плане искажения данных, т.к. пока смотрел только визуально. Оцифрую разницу — сколько конкретно и каких размеров искажений я вычистил. Ужас или ужас-ужас.
2. Сравню итоги тестирования своих ТС на финамовской выгрузке-склейке  и на склейке моего производства.  Посмотрю разницу. Если значимые искажения только в 2014 (про них я уже знаю — т.к. ранее просто тупо вырезал тот кривой день), то видимо закрою для себя вопрос и больше по нему париться не буду, если же такая ситуация будет в каждом году — дело другое.

В общем, принимать решение — стоит овчинка дальнейшей выделки (по обновлению истории) или нет буду на основании всей полученной в ходе этого небольшого исследования информации, с учетом понимания трудоемкости и выходного продукта процесса. Сколько времени потратил что мне это дало.

Спасибо за участие и ваши мысли!

avatar

Носорог, может, неправильно понял в своё время, но ISS, который бесплатный — это тестовое подключение. Чтобы попробовать и отладить свои системы. Отличие в качестве данных, понятно, лучше выяснять напрямую у техподдержки тамошней.

 

И по ценнику он мне показался довольно гуманным. Вы же не тики/стаканы качать планируете. Всего лишь минутки.

 

Но личного опыта работы с этим сервисом нет.

 

С уважением,

avatar
Когда с FTP мосбиржи ещё можно было выкачивать бесплатно все сделки по фьючам я качал, кажися есть 2011-2018 год сишка-ришка точно есть. По ним можно легко восстановить минутки точно-преточно, если нужно.

теги блога Носорог

....все тэги



UPDONW
Новый дизайн