Как качать с РТС?
Atom
17.06.2014


Приветствую!

Решил попробовать работу с гидрой, скачал последнюю версию (4.2.3.10), настроил источник RTS, включил его.

Далее жму кнопку добавления инструментов и... затык. Что нужно дальше сделать, чтобы скачать тики например RIZ9 с FTP РТС?

Спасибо.

Теги:


Спасибо:


Mikhail Sukhov

Фотография
Дата: 17.06.2014
Ответить


Будет проверка на удобство нашего интерфейса. Жду с нетерпением результата вашего исследования.
Спасибо:

Romant

Фотография
Дата: 17.06.2014
Ответить


Михаил,

Я сюда написал после того, как "не осилил". Настроить скачивание с финама получилось, хотя тоже не вполне очевидна работа диалога добавления инструментов. По умолчанию кнопка поиска в диалоге заблокирована, она включается только если в дополнительном фильтре что-то указать. В итоге, я в поле Код указывал RTS, искал, потом RI, искал, потом закрывал диалог, потом его снова открывал (так он показывает всё найденное, без фильтров), потом на самом диалоге выбирал "Фьючерс" для фильтрации списка, потом уже выбирал все RI[..] и все SPFB.RTS-[..] тикеры. Почему бы просто не найти все имеющиеся инструменты? Неведомо.

С РТС же я не понимаю, как поступать. Все уже найденные для финама тикеры имеют постфикс @FORTS, в хэлпе же на скриншотах видно, что тикеры с РТС должны иметь постфикс @RTS, но RTS даже нет в списке площадок.

Михаил, Вы не могли бы просто по шагам описать, что нужно сделать, чтобы в источник данных Finam добавить все имеющиеся фьючерсы на индекс, в источник данных RTS добавить тоже самое, причём сделать это так, как это было задумано разработчиками?
Спасибо:

Mikhail Sukhov

Фотография
Дата: 17.06.2014
Ответить


Я предлагаю тогда написать сюда свой мини опус по опыту настройки Финама и РТС. Что показалось сложным, неочевидным, непонятным.
Спасибо:

Romant

Фотография
Дата: 17.06.2014
Ответить


Михаил, Вы напрасно иронизируете :-)

Это уже наверное третья попытка таки воспользоваться гидрой, первые две были с некоторыми промежутками предприняты в течение предыдущих лет трёх-четырёх, начиная почти с момента появления гидры и затем через пару лет. Оба раза я гидру ставил, добросовестно пытался что-то сделать, понимал, что я попросту не понимаю, что и в какой момент и как в этой программе происходит, после чего сносил её и делал тоже самое руками (писал/правил свой загрузчик с финама и парсил, что мне нужно и как мне нужно).

Сейчас третья попытка, она связана с тем, что мне нужны тики RI. Тики - это геморрой, грузятся с финама только по одному дню, кроме того мне хочется получить эталонные тики с РТС.

GUI последней версии стал куда более внятным, это факт, поэтому собственно гидра была поставлена утром и аж до сих пор не снесена. Курение мануала показало, что РТС - особый случай, для загрузки данных с их FTP тикеры предварительно не выбираются, а качается всё скопом, так что сейчас оно как раз всё с РТС и качает, то есть вопрос скачивания всех данных именно с РТС решился.

По поводу работы диалога добавления инструментов в источник данных я всё написал выше: в нём нельзя найти все инструменты источника, непременно нужно что-то указывать в дополнительном фильтре. Если поиск произвести несколько раз с разными параметрами в доп фильтре, то потом нужно диалог закрыть и открыть снова, чтобы увидеть всё, что нашёл за все предыдущие поиски. Я так искал сначала всё, что содержит в названии SPFB.RTS, затем всё, что содержит RI, затем закрывал/открывал диалог, затем к комбике указывал фьючерсы, затем уже по одному выдёргивал тикеры, относящиеся к фьючу на индекс ртс.

Сейчас капитально неясно одно: докачает гидра все сделки с РТС, как мне затем из всей этой массы брать интересные мне тикеры?
Спасибо: Mikhail Sukhov

Mikhail Sukhov

Фотография
Дата: 17.06.2014
Ответить


Romant Перейти

GUI последней версии стал куда более внятным, это факт, поэтому собственно гидра была поставлена утром и аж до сих пор не снесена. Курение мануала показало, что РТС - особый случай, для загрузки данных с их FTP тикеры предварительно не выбираются, а качается всё скопом, так что сейчас оно как раз всё с РТС и качает, то есть вопрос скачивания всех данных именно с РТС решился.


Недостатки более-менее понятны. Какие будут предложения по улучшению и упрощению?
Спасибо:

Romant

Фотография
Дата: 17.06.2014
Ответить


По диалогу добавления инструментов предложение одно: кнопка поиска должна быть активна всегда. Если в фильтрах ничего не указано - значит искать все тикеры, если что-то указано - значит искать с фильтрацией (сейчас же оно работает так: пустые фильтры - значит не искать вообще).

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

Romant

Фотография
Дата: 17.06.2014
Ответить


Рано я радовался. При скачивании данных с РТС постоянно сыпались ошибки "не могу найти путь", инициируемые функцией удаления директории. Это наверное косяк сам по себе, но оно хотя бы реально качало. Сейчас же стали тысячами сыпаться одни и те же ошибки, загрузка застопорилась на 22.10.2009:

RTS 17.06.2014 19:41:09 Info Старт загрузки сделок за 22.10.2009.
RTS 17.06.2014 19:41:09 Error System.IO.DirectoryNotFoundException: Could not find a part of the path 'D:\Activity\Business\Business_Storage\Software\S#\Hydra\Data\RTS\TemporaryFiles\20091022'.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.Directory.Delete(String fullPath, String userPath, Boolean recursive, Boolean checkHost)
at Ecng.Interop.InteropHelper.BlockDeleteDir(String dir, Boolean isRecursive, Int32 iterCount, Int32 sleep)
at StockSharp.Algo.History.Russian.Rts.RtsHelper.Extract(Stream stream, String destFolder)
at StockSharp.Algo.History.Russian.Rts.RtsHelper.Extract(String zipFile, String destFolder)
at StockSharp.Algo.History.Russian.Rts.DbfSource.DownloadDbf(FTP_Client client, DateTime time)
at StockSharp.Algo.History.Russian.Rts.DbfSource.LoadTrades(ISecurityStorage securityStorage, FTP_Client client, DateTime date)
at StockSharp.Algo.History.Russian.Rts.RtsHistorySource.<>c__DisplayClass3.<LoadTrades>b__0()
at Ecng.Common.Converter.DoInCulture[T](CultureInfo cultureInfo, Func`1 func)
at StockSharp.Algo.History.Russian.Rts.RtsHistorySource.LoadTrades(ISecurityStorage storage, DateTime date)
at StockSharp.Hydra.Rts.RtsTask.OnProcess()
at StockSharp.Hydra.Core.BaseHydraTask.<Start>b__0()
RTS 17.06.2014 19:41:09 Info Старт загрузки сделок за 22.10.2009.
RTS 17.06.2014 19:41:09 Error System.IO.DirectoryNotFoundException: Could not find a part of the path 'D:\Activity\Business\Business_Storage\Software\S#\Hydra\Data\RTS\TemporaryFiles\20091022'.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.Directory.Delete(String fullPath, String userPath, Boolean recursive, Boolean checkHost)
at Ecng.Interop.InteropHelper.BlockDeleteDir(String dir, Boolean isRecursive, Int32 iterCount, Int32 sleep)
at StockSharp.Algo.History.Russian.Rts.RtsHelper.Extract(Stream stream, String destFolder)
at StockSharp.Algo.History.Russian.Rts.RtsHelper.Extract(String zipFile, String destFolder)
at StockSharp.Algo.History.Russian.Rts.DbfSource.DownloadDbf(FTP_Client client, DateTime time)
at StockSharp.Algo.History.Russian.Rts.DbfSource.LoadTrades(ISecurityStorage securityStorage, FTP_Client client, DateTime date)
at StockSharp.Algo.History.Russian.Rts.RtsHistorySource.<>c__DisplayClass3.<LoadTrades>b__0()
at Ecng.Common.Converter.DoInCulture[T](CultureInfo cultureInfo, Func`1 func)
at StockSharp.Algo.History.Russian.Rts.RtsHistorySource.LoadTrades(ISecurityStorage storage, DateTime date)
at StockSharp.Hydra.Rts.RtsTask.OnProcess()
at StockSharp.Hydra.Core.BaseHydraTask.<Start>b__0()
RTS 17.06.2014 19:41:09 Info Старт загрузки сделок за 22.10.2009.
RTS 17.06.2014 19:41:10 Info Перешел в состояние Stopping.
RTS 17.06.2014 19:41:10 Error System.IO.DirectoryNotFoundException: Could not find a part of the path 'D:\Activity\Business\Business_Storage\Software\S#\Hydra\Data\RTS\TemporaryFiles\20091022'.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.Directory.Delete(String fullPath, String userPath, Boolean recursive, Boolean checkHost)
at Ecng.Interop.InteropHelper.BlockDeleteDir(String dir, Boolean isRecursive, Int32 iterCount, Int32 sleep)
at StockSharp.Algo.History.Russian.Rts.RtsHelper.Extract(Stream stream, String destFolder)
at StockSharp.Algo.History.Russian.Rts.RtsHelper.Extract(String zipFile, String destFolder)
at StockSharp.Algo.History.Russian.Rts.DbfSource.DownloadDbf(FTP_Client client, DateTime time)
at StockSharp.Algo.History.Russian.Rts.DbfSource.LoadTrades(ISecurityStorage securityStorage, FTP_Client client, DateTime date)
at StockSharp.Algo.History.Russian.Rts.RtsHistorySource.<>c__DisplayClass3.<LoadTrades>b__0()
at Ecng.Common.Converter.DoInCulture[T](CultureInfo cultureInfo, Func`1 func)
at StockSharp.Algo.History.Russian.Rts.RtsHistorySource.LoadTrades(ISecurityStorage storage, DateTime date)
at StockSharp.Hydra.Rts.RtsTask.OnProcess()
at StockSharp.Hydra.Core.BaseHydraTask.<Start>b__0()
RTS 17.06.2014 19:41:10 Info Перешел в состояние Stopped.

Я загрузку отключил, перезапустил, ошибки сохранились, загрузка дальше этой даты не идёт.
Спасибо:

Romant

Фотография
Дата: 17.06.2014
Ответить


Пару экспериментов сделал, выяснил: если руками в TemporaryFiles создать папку 20091022, то данные за эту дату скачаются, а потом будут такие же ошибки на дату 20091023.

Я искренне удивляюсь - софтине несколько лет, её по идее пользуют много людей - а вот такие штучки случаются постоянно.
Спасибо:

Romant

Фотография
Дата: 17.06.2014
Ответить


И ещё пару экспериментов сделал:
1. Непонятно, что делает команда "Очистить данные" (удалял всё). Файл .db в настройках после неё не чистится, список инструментов, что выводится в диалоге этой команды, не обнуляется.
2. Непонятно, что делает команда "Синхронизировать данные с директориями" (в хэлпе описание не нашёл).

В общем, в сухом остатке: с RTS докачало до 20091022, выдавая сотни ошибок удаления директории, после чего упёрлось в отсутствие папки 20091022 и дальше просто стало сыпать ошибки удаления папки тысячами, ничего не качая.
Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy