У вас не стоит Flash Player
Page 1 of 2 1 2 >
Настройки
#83871 - Tue Sep 25 2018 10:53 AM Автоматическое обновление истории TXT
Frend Offline
Pooh-Bah

Registered: Sat Jan 09 2010
Записи: 2054
Была у меня мысль, и сейчас она есть, сделать автообновление истории по нашим акциям и фьючерсам. Так как у самого времени на это не хватало, на разбирательство что и как то перепоручил это дело знакомому. Вот об этом и рассказ. Может кто то уже сталкивался или делал это. Может подскажите. В данной теме буду продолжать писать до тех пор пока вопрос не решиться и я не получу необходимый результат.
Стиль автора сохранен.
Добрый день! Эта история о том, как я работал с продуктом S# - S#.Data, также известной как Гидра.
Идея была таковой: обеспечить автоматическую загрузку и обновление исторических данных (минутные свечи) с Финама по сотне акций и двум десяткам фьючерсов. Решено было реализовать эту идею с помощью источника «Финам» и задачи «Экспорт (авто)». С первых минут работы с сим шедевром стало ясно, что придётся помучиться. Первым делом загрузил все инструменты, доступные Гидре (с трудом, ибо Гидра начала бунтовать, пришлось перезапустить это чудовище), после добавил примерно сотню акций и около двадцати фьючерсов, настроил кое-как источник и задачу, установил начальную дату для загрузки историй.
Первой серьёзной, как тогда казалось, проблемой стал шаблон экспорта, но всё по порядку. Пришлось разбираться, какой формат данных нужен был (предусматривалась работа с TSLab): скриншот ниже.
http://prntscr.com/ky2z8b
Загвоздка оказалась в том, что данный файл с расширением txt, а Гидра, как ни странно, умеет выводить текстовые файлы только в формате csv, для которого в TSLab существовал другой формат. К сожалению, скриншот вставить не могу, так как все файлы в формате csv я удалил, а это уже совсем другая история. Могу только предоставить шаблон экспорта минутных свечей, который нужен Гидре:
{OpenTime:MM/dd/yyyy};{OpenTime:HH}:{OpenTime:mm};{OpenPrice};{HighPrice};{LowPrice};{ClosePrice};{TotalVolume}
Но и с ним были проблемы: время должно было быть в формате HH:mm, поэтому в шаблоне пришлось бы прописывать {OpenTime:HH:mm}, а второе двоеточие Гидре не понравилось. Спустя две недельки до меня наконец-то дошло, что можно просто разделить поля, как в шаблоне выше. Так первая проблема была решена.
Второй проблемой стала сама механика работы задачи экспорта в Гидре. Мало того, что название экспортируемого файла было, мягко говоря, некрасивым (например: candles_TimeFrameCandle_00_01_00_SBER@TQBR_2007_01_09_2018_08_16.csv), так ещё и Гидра не могла дополнять файлы, то есть она выводила один файл, потом спустя сутки ещё один, вместо дополнения первого, и так каждый день. В итоге я наблюдал чудесную картину: три файла: один за период 01.01.2007 — 01.08.2018, другой — за период 01.08.2018 — 02.08.2018, третий — за 02.08.2018 — 03.08.2018. Чтобы избежать этой мути, пришлось писать .bat, склеивающий файлы одной акции/фьючерса, одновременно давая адекватные названия файлам. Ещё один бзик Гидры побеждён!
Но радовался я недолго... Оказалась, что в выходные и праздники Гидра продолжает каждый день экспортировать файлы, несмотря на отсутствие новых данных. В итоге каждый день появлялись новые одинаковые файлы, а скрипт их склеивал, и в основном файле со всей историей с 2007 года последние строки просто дублировались. Решение тоже нашлось: пришлось дополнить скрипт, чтобы он сравнивал новые файлы с последними строками основных файлов, и, если они идентичные, скрипт их удаляет. Одной проблемой меньше.
Очень скоро нашлась ещё одна проблема, Гидра встраивает в файлы в формате csv временной признак +3, который не нужен, и получалось, что в TSLab'е вся история была сдвинута на 3 часа вперёд. Торги начинались в 13:00, а заканчивались в 3:00. Именно тогда я психанул, удалил все файлы в формате csv и переделал шаблон и скрипт для работы с txt. Гидра экспортировала файлы в формате csv, но скрипт, склеивая их, менял их расширение на txt. Кстати, вот шаблон для минуток:
{SecurityId.SecurityCode},1,{OpenTime:yyyyMMdd},{OpenTime:HHmmss},{OpenPrice},{HighPrice},{LowPrice},{ClosePrice},{TotalVolume}
Также в формате txt TSLab'у нужен заголовок файла:
<TICKER>,<PER>,<DATE>,<TIME>,<OPEN>,<HIGH>,<LOW>,<CLOSE>,<VOL>
Дальше выясняется, что, когда Гидра видит отсутствие экспортированных вчера файлов, она создаёт новый файл, в который запихивает данные сразу за два дня: вчера и сегодня, из-за чего перестал работать правильно скрипт, ведь он ищет точное совпадение всего нового файла среди строк основного файла, а так как новый файл только наполовину содержит новые данные (данные за вчера уже есть в основном файле, а за сегодня — ещё нет), скрипт пропускает этот файл, и данные опять дублируются.
Не успел я разобраться с предыдущей проблемой, как появилась ещё одна. Оказалось, что большая часть акций просто не те! То есть данные, загруженные напрямую с Финама, сильно отличаются от данных, которые предоставила Гидра, хотя тикеры акций идентичны!
Ниже можно увидеть скриншоты истории по акции HYDR (слева — с Финама, справа — с Гидры):
http://prntscr.com/ky31t1
Рядом на скриншоте можно увидеть, что Гидра считает HYDR@TQBR акцией:
http://prntscr.com/ky325t
И добавлю про логи: Гидра пишет, что начинает загрузку данных с 2007 года, но потом, с 2011 года, по-настоящему начинает загружать:
http://prntscr.com/ky32uz
Кстати, интересен факт того, что скаченные данные уже неправильные, т. е. Это не экспорт шалит, а именно источник Финам. Вот сравнение скачанных данных, лежащих в папке Гидры (слева) и выходного файла (справа) после экспорта:
http://prntscr.com/ky33ji
Мало того, что данные разные, так ещё и история с Гидры начинается 01.03.2011, как будто это фьючерс какой-то. И так со многими акциями, почти со всеми. Фьючерсы вроде правильные, но я проверял не все.
Моё повествование подошло к концу. Собственно, зачем я всё это писал? Чтобы попросить вас о помощи. Что не так с Гидрой? И вообще, взбесилась Гидра или Финам? Почему Гидра и Финам предоставляют абсолютно разные данные?


Attachments
1.jpg (87 downloads)
2.jpg (102 downloads)
3.jpg (80 downloads)
4.jpg (80 downloads)
5.jpg (90 downloads)

_________________________
Помогу с реализацией вашей идеи, оценкой системы. Консультации
frendwork@rambler.ru

Наверх
#83925 - Tue Oct 02 2018 01:21 PM Re: Автоматическое обновление истории TXT [Re: Frend]
serg Offline
Pooh-Bah

Registered: Fri May 14 2010
Записи: 1663
Loc: Россия
Frend !
Ты герой..:)
Поднял свою историю - до 2016 г.была програмка которая качала файлы txt с сайта Финама просто замечательно, но Финам постоянно что то менял и автор отказался поддерживать сию прогу.
Кстати , навел на нее Vito..
Пробовал и Гидру, но не пошла сразу и я забил.
Обхожусь сечас вообще без подкачки, просто мониторю агентов.
НО учитывая твои масштабы агентов (30?,50?...шт smile с подкачкой было бы проше.
Есть еще ( была ?) на Финаме FinamDataFeed и ее позиционировали как для подкачки текстовиков. Так же не запустилась у меня...
А запустить прогу для подкачки текстовиков с Финама в он -лайне было бы здорово !


Отредактировано serg (Tue Oct 02 2018 01:22 PM)

Наверх
#83926 - Tue Oct 02 2018 02:18 PM Re: Автоматическое обновление истории TXT [Re: Frend]
ViL Offline
TSLab
Carpal Tunnel

Registered: Sun Oct 17 2010
Записи: 8137
Не понятны конечные цели.


Такая информация: В программе теперь есть новый поставщик кешированных данных. (офлайновый)
Поставщик умеет собирать закешированную тиковую историю по инструменту из сохраненных bin файлов.
Допустим у меня есть за 7 лет реальной торговли тиковые bin файлы по фортс. Я их Вам кидаю на rutracker, в программе создаете нового поставщика кешированных данных и собираете из них инструменты. Таким образом собственный инструмент ФьючРТС будет из себя представлять 7 летний контракт, на котором можно тестировать, оптимизировать. Но проблема пока только в том, что именно bin файлы из 1.2 он не распознает, пока понимает только файлы gz собранные в 2.0

Наверх
#83927 - Tue Oct 02 2018 03:00 PM Re: Автоматическое обновление истории TXT [Re: ViL]
serg Offline
Pooh-Bah

Registered: Fri May 14 2010
Записи: 1663
Loc: Россия
Конечная цель - в режиме он лайн мониторить ( через закачку текстовиков с Финама ( или из другого доступного источника) он лайн агентов на другой ( не торгующей машине). Конечно можно все грузить параллельно с торгующей машины ( тупо - открываешь копию скрипта и мониторишь НО ! :
1.грузишь второй (...надцатой) копией рабочую машину ( в случае если торгуешь со своей машины или сервака)
2.неудобно "прыгать" ( если Лаба на виртуалке ) из обычной машины на виртуалку.

Было бы здорово если бы на обычной машине ( у которой есть инет, но нет работающих агентов) - была бы организована подкачка текстовиков (с сайта Финам как пример) в Лабу - для мониторинга работы скриптов.
Конечно есть сообщения и пр., но как показал мой опыт ( см. выше) - отдельная машина с подкачкой+ картинка ( трансляция) с рабочей вкладки ( торгующие агенты) - оч.хорошо ! Все наглядно видно !
А уж если утебя 10,20...надцать агентов - оптимальный выход для контроля.
ЗЫ: Вариант передачи данных с торгующей машины куда -то для мониторинга - очень затратный по ресурсам ........

Хотя может быть Френд преследовал другую цель ?


Отредактировано serg (Tue Oct 02 2018 03:01 PM)

Наверх
#83928 - Tue Oct 02 2018 03:02 PM Re: Автоматическое обновление истории TXT [Re: ViL]
Stan Offline
veteran

Registered: Wed Oct 02 2013
Записи: 1357
Но gz это просто архив? Ведь так? Его можно сделать?
Потому что у меня вроде бы на первых порах получалось. Я имею ввиду когда только вышла 2.0


Отредактировано Stan (Tue Oct 02 2018 03:03 PM)

Наверх
#83929 - Tue Oct 02 2018 07:01 PM Re: Автоматическое обновление истории TXT [Re: Stan]
Frend Offline
Pooh-Bah

Registered: Sat Jan 09 2010
Записи: 2054
Агентов да, много, более сотни. Не считал сколько конкретно. Идея немного не в этом. В лабе, в которой я разрабатываю, есть конфигурация в которой открыты все скрипты, которые торгуются (основные направления) раз в месяц (пару недель), я открываю её и смотрю, как они себя повели за последние год (некоторые два, три), включая последние дни. Вот для последних дней и нужно обновление. Вручную обновлять каждый месяц десятки инструментов не очень удобно. Т.е. я не сверяю их с агентами по сделкам, я смотрю текущее поведение эквити с историческим за последние несколько лет, чтобы отлавливать нетипичное поведение кого-либо


Отредактировано Frend (Tue Oct 02 2018 07:04 PM)
_________________________
Помогу с реализацией вашей идеи, оценкой системы. Консультации
frendwork@rambler.ru

Наверх
#83930 - Tue Oct 02 2018 07:18 PM Re: Автоматическое обновление истории TXT [Re: Frend]
ViL Offline
TSLab
Carpal Tunnel

Registered: Sun Oct 17 2010
Записи: 8137
Соответственно для такого случая и создан новый тип поставщика данных.
Кидаете бин файлы в папку и делаете обновление инстурмента в поставщике, история готова. Попробуйте собирать историю таким образом.

Наверх
#83931 - Tue Oct 02 2018 09:29 PM Re: Автоматическое обновление истории TXT [Re: ViL]
Rezident Offline
old hand

Registered: Wed Oct 12 2011
Записи: 742
Loc: Россия
ViL, а на сколько затруднительно создать видео, достаточное, чтобы у любого пользователя появилось правильное понимание как , и в какой последовательности провести манипуляции с этим новым поставщиком данных ( я так понял в исторические ), на примере фуча РТСа. Ну скажем за год правильность сборки такой склейки на тиковом кеше. Метод тыка, в данном случае, мне представляется не обоснованным, с точки зрения надёжности исследований алгоритмов на такой склейке. То собрано, не то? Правильно, не правильно сформировалось? Лично у меня в первого захода не получилось ни по аналогии с 1.2. , ни после прочтения текущей темы.

Наверх
#83932 - Tue Oct 02 2018 10:33 PM Re: Автоматическое обновление истории TXT [Re: Rezident]
ViL Offline
TSLab
Carpal Tunnel

Registered: Sun Oct 17 2010
Записи: 8137
Сформируется правильно сам, если названия файлов не меняли.
Там начать нужно с плюсика. СОздали поставщика и только потом открыли Настройки -> + -> Название инструмента -> Указали папку.
Все дело в маленьком плюсике, мне тоже изначально показалось, что не логично для пользователя нажимать самую маленькую кнопку, которая находится где-то снизу, когда есть поле для названия и поле с папкой.
Попробуйте.


Отредактировано ViL (Tue Oct 02 2018 10:34 PM)

Наверх
#83933 - Wed Oct 03 2018 11:25 AM Re: Автоматическое обновление истории TXT [Re: ViL]
Rezident Offline
old hand

Registered: Wed Oct 12 2011
Записи: 742
Loc: Россия
При создании нового поставщика кешированных данных в списке появляется только папка кешдата, хотя по -идее должна быть и кештрейдс. В дату как можно бины класть? И + создаёт тикер, он должен быть аналогичным названию инструмента или может быть на отвлечённую тему?


Отредактировано Rezident (Wed Oct 03 2018 11:26 AM)

Наверх
#83934 - Wed Oct 03 2018 12:11 PM Re: Автоматическое обновление истории TXT [Re: Rezident]
ViL Offline
TSLab
Carpal Tunnel

Registered: Sun Oct 17 2010
Записи: 8137
Папку выбираете сами же, если не видна нужная, то тикет в саппорт. По идее можно выбрать хоть папку на рабочем столе или вот в видео, после примера с созданием тикера, я создал тикер, который находится на другой машине.
https://www.screencast.com/t/EIXXf9ROkdxm
screencast периодически чистит сервер, если видео пропало со временем, значит посмотрите по теме поставщиков данных в базе знаний.
(На подвисания в видео посреди фильма не обращаем внимание, там на жесткий диск усердно воспроизводятся ошибки, машина перегружена.)
В фильме показывается создание своего инструмента в новом поставщике данных.
Нажимаем +
Даем имя
Выбираем папку
Программа автоматом определила содержимое. (пока точно и хорошо определяет фьючи с русского рынка, они клеятся на ура и криптобиржа derebit, для остальных крипто не актуально. С данными эксанты и ib пока есть сложности)
Выбираем инструмент
При необходимости даем данные об инструменте(как в текстовике).
инструмент создан bitok
Далее показываю, что папку указать можно откуда-нибудь с другой машины, если серверные части правильно настроены и к какой-то машине есть доступ.

Наверх
#83935 - Wed Oct 03 2018 01:55 PM Re: Автоматическое обновление истории TXT [Re: ViL]
Rezident Offline
old hand

Registered: Wed Oct 12 2011
Записи: 742
Loc: Россия
правильно я понимаю, что в папку кешированных данных нужно помещать бины исключительно нужного мне инструмента и в нужном кол-ве или можно тупо скопировать любую папку с кешем целиком, т.е. со всем её содержимым без разбора???

Наверх
#83936 - Wed Oct 03 2018 03:18 PM Re: Автоматическое обновление истории TXT [Re: Rezident]
Rezident Offline
old hand

Registered: Wed Oct 12 2011
Записи: 742
Loc: Россия
То что получается у меня, согласно данного видео, отправил в техподдержку.

Наверх
#83941 - Sun Oct 07 2018 02:20 PM Re: Автоматическое обновление истории TXT [Re: ViL]
panika1979 Offline
newbie

Registered: Fri Aug 10 2018
Записи: 28
Originally Posted By: ViL
Не понятны конечные цели.


Такая информация: В программе теперь есть новый поставщик кешированных данных. (офлайновый)
Поставщик умеет собирать закешированную тиковую историю по инструменту из сохраненных bin файлов.
Допустим у меня есть за 7 лет реальной торговли тиковые bin файлы по фортс. Я их Вам кидаю на rutracker, в программе создаете нового поставщика кешированных данных и собираете из них инструменты. Таким образом собственный инструмент ФьючРТС будет из себя представлять 7 летний контракт, на котором можно тестировать, оптимизировать. Но проблема пока только в том, что именно bin файлы из 1.2 он не распознает, пока понимает только файлы gz собранные в 2.0


Подскажите пжл а просто bin без gz исторические данные Кеша собранные, в 2,0 версии будет реализовано чтоб просто bin считывались?


Отредактировано panika1979 (Sun Oct 07 2018 02:39 PM)

Наверх
#83942 - Sun Oct 07 2018 03:44 PM Re: Автоматическое обновление истории TXT [Re: panika1979]
ViL Offline
TSLab
Carpal Tunnel

Registered: Sun Oct 17 2010
Записи: 8137
Будет в ближайшей ночной.
2.0.29.12 или выше.
http://support.tslab.ru/index.php?/Knowl...ii-programmy-20


Отредактировано ViL (Sun Oct 07 2018 03:45 PM)

Наверх
#83943 - Sun Oct 07 2018 07:39 PM Re: Автоматическое обновление истории TXT [Re: ViL]
panika1979 Offline
newbie

Registered: Fri Aug 10 2018
Записи: 28
Originally Posted By: ViL
Будет в ближайшей ночной.
2.0.29.12 или выше.
http://support.tslab.ru/index.php?/Knowl...ii-programmy-20

Вил а можно ещё вопрос. Про исторические данные, просто тиковые данные использую в скриптах и текстовики весят дофига. Склеил два фьюча последних по Ри весят примерно 800мБ, понимаю что железо играет немаловажную роль но погружает все с трудом и на пределе а иногда Лаборатория отказывается дольше пытаться и отключается(не упрек в огород Ваш) так вот если потом на бинах кешах лаборатории и железу легче будет бины прогрузить чем тхт историю ?
Или разници нету в этом и только железо наращивать?

Наверх
#83944 - Sun Oct 07 2018 08:43 PM Re: Автоматическое обновление истории TXT [Re: panika1979]
ViL Offline
TSLab
Carpal Tunnel

Registered: Sun Oct 17 2010
Записи: 8137
Должно быть немного легче.

Наверх
#83945 - Sun Oct 07 2018 08:45 PM Re: Автоматическое обновление истории TXT [Re: panika1979]
ViL Offline
TSLab
Carpal Tunnel

Registered: Sun Oct 17 2010
Записи: 8137
Originally Posted By: panika1979
Originally Posted By: ViL
Будет в ближайшей ночной.
2.0.29.12 или выше.
http://support.tslab.ru/index.php?/Knowl...ii-programmy-20

Вил а можно ещё вопрос. Про исторические данные, просто тиковые данные использую в скриптах и текстовики весят дофига. Склеил два фьюча последних по Ри весят примерно 800мБ, понимаю что железо играет немаловажную роль но погружает все с трудом и на пределе а иногда Лаборатория отказывается дольше пытаться и отключается(не упрек в огород Ваш) так вот если потом на бинах кешах лаборатории и железу легче будет бины прогрузить чем тхт историю ?
Или разници нету в этом и только железо наращивать?


Если есть машина не торговая, могу в личку скинуть сборку, посмотрите, если что, откатитесь на бекап.

Наверх
#83946 - Sun Oct 07 2018 09:01 PM Re: Автоматическое обновление истории TXT [Re: ViL]
panika1979 Offline
newbie

Registered: Fri Aug 10 2018
Записи: 28
Originally Posted By: ViL
Originally Posted By: panika1979
Originally Posted By: ViL
Будет в ближайшей ночной.
2.0.29.12 или выше.
http://support.tslab.ru/index.php?/Knowl...ii-programmy-20

Вил а можно ещё вопрос. Про исторические данные, просто тиковые данные использую в скриптах и текстовики весят дофига. Склеил два фьюча последних по Ри весят примерно 800мБ, понимаю что железо играет немаловажную роль но погружает все с трудом и на пределе а иногда Лаборатория отказывается дольше пытаться и отключается(не упрек в огород Ваш) так вот если потом на бинах кешах лаборатории и железу легче будет бины прогрузить чем тхт историю ?
Или разници нету в этом и только железо наращивать?


Если есть машина не торговая, могу в личку скинуть сборку, посмотрите, если что, откатитесь на бекап.


А до релиза далеко? Ну я не против если есть возможность такая скинуть... Буду одним из первых тестеров.

Наверх
#83952 - Mon Oct 08 2018 04:58 PM Re: Автоматическое обновление истории TXT [Re: panika1979]
ViL Offline
TSLab
Carpal Tunnel

Registered: Sun Oct 17 2010
Записи: 8137
ночная уже в базе знаний.

Наверх
Page 1 of 2 1 2 >


Moderator:  ViL, sar