← Zurück

S#.Data и запрос к базе данных извне

День добрый. Встала задача получения данных из S#.Data во внешний источник (реализовать аналог getSymbols из quantmod package). Подскажите, возможно ли это? Если "да", то какая из таблиц содержит данные по тикерам/сделкам/свечам?

Спасибо.

War dieses Thema hilfreich?

Thema teilen

Kommentare (14)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Rebelion
Rebelion Autor

Ок, тогда другой вопрос - есть ли где внятный мануал по созданию задания автоматического экспорта тикеров во внешнюю базу данных? Какие таблицы и как нужно создать в базе, как правильно по шагам прописать пункты в настройках автоэкспорта и т.п.

Спасибо.

Mikhail Sukhov
Mikhail Sukhov

Инструменты хранятся в обычной SQLite базе.

Данные хранятся ввиде файлов. Подробнее в разделе http://doc.stocksharp.ru/html/7a8a9518-6270-4cfe-a829-fa6c40e5fabd.htm

Rebelion
Rebelion Autor

Хм. Михаил, а есть ли какой-либо способ получить данные запросом к базе извне? Или только создание собственной SQL-базы и автоэкспорт поможет коммунизму победить?

Mikhail Sukhov
Mikhail Sukhov

Я не понимаю до конца, что вы пытаетесь сделать, но уверен, что проблема куда проще в решение. Попробуйте обратиться к Python программисту какому-то. Уверен, там решение на час работы и пары тысяч рублей. Рекомендую Upwork сайт.

Rebelion
Rebelion Autor

Да мне по сути нужно иметь возможность получать данные из Гидры посредством SQL-запросов к базе (сейчас основной код пишу на R, т.к. мне временно не нужна скорость, а нужно оттестировать компоненты R скриптов, которые потом к боту на S# прикручу). SQLite-база не хранит данные, как я понял, - они хранятся в отдельных файлах. Но из Гидры возможен автоэкспорт получаемых данных в SQL базу внешнюю. Я пытаюсь создать базу и настроить автоматический экспорт в неё из Гидры информации (теперь, раньше же хотел напрямую тащить информацию из SQLite-базы по незнанке). Пытаюсь подружить ужа с ежом - Гидру и MSSQL Express 2016. Если бы был какой видеомануал или хотя бы пошаговая инструкция For dummies - было бы зашибись.

Mikhail Sukhov
Mikhail Sukhov

Напишите на lesson@stocksharp.com Купите тех поддержку и вам помогут подружить. Мануалов нет, видео тем более. С радостью примем в дар подобное от пользователей😀

Rebelion
Rebelion Autor

Видимо, придётся. Скажите, а сколько будет стоить настройка автоэкспорта из гидры в MSSQL базу удалённо через TeamViewer (ну, я хочу 600 рублей сэкономить, задавая это вопрос, а то на 1 вопрос больше получается. :-) )

Mikhail Sukhov
Mikhail Sukhov

Rebelion: Видимо, придётся. Скажите, а сколько будет стоить настройка автоэкспорта из гидры в MSSQL базу удалённо через TeamViewer (ну, я хочу 600 рублей сэкономить, задавая это вопрос, а то на 1 вопрос больше получается. :-) )

Сервис вопрос-ответ в вашем случае вряд ли подойдет. Здесь вы уже задали вопросов на пару тысяч.😂

Вопрос-ответ - это именно простые вопросы с простыми ответами. У вас же вопросы пока более абстрактные. Возможно из-за того, что вы пока сами не понимаете, что вам нужно и как именно.

Хозяин-барин. Можете и попробовать через простые вопросы. Но думаю будет дороже, чем месячный пакет.

Rebelion
Rebelion Autor

А цены где есть на месяц техподдержки? Я просто на сайте смотрю - там только за вопрос деньги предлагают заплатить. Вот и решил спросить, мол, сколько будет стоить мне подключение специалиста по teamviewer'у к моему серверу и настройка экспорта данных по тикерам в автоматическом режиме из Гидры в базу на MASSQL Express...

Mikhail Sukhov
Mikhail Sukhov

Rebelion: А цены где есть на месяц техподдержки? Я просто на сайте смотрю - там только за вопрос деньги предлагают заплатить. Вот и решил спросить, мол, сколько будет стоить мне подключение специалиста по teamviewer'у к моему серверу и настройка экспорта данных по тикерам в автоматическом режиме из Гидры в базу на MASSQL Express...

Если вам нужна именно работа ввиде подключение к вашему серверу и настройка оборудования, то это уже не техническая поддержка, а заказ работы - http://stocksharp.ru/robot/

Rebelion
Rebelion Autor

Разобрался как подключить. При попытке экспорта для имеющегося с инструмента в S#.Data получаю сообщение вида: 13:35:54.598| |Экспорт (авто)|SPFB.SI@FORTS. Экспорт ExecutionMessage в Sql. 13:35:54.599| |Экспорт (авто)|SPFB.SI@FORTS. Экспорт ExecutionMessage в Sql. Дата 05.01.2015 0:00:00. 13:35:54.603|Error |Экспорт (авто)|System.Data.SqlTypes.SqlTypeException: Переполнение SqlDateTime. Должно находиться в пределах от 1/1/1753 12:00:00 AM и 12/31/9999 11:59:59 PM. в System.Data.SqlClient.TdsParser.TdsExecuteRPC(SqlCommand cmd, _SqlRPC[] rpcArray, Int32 timeout, Boolean inSchema, SqlNotificationRequest notificationRequest, TdsParserStateObject stateObj, Boolean isCommandProc, Boolean sync, TaskCompletionSource1 completion, Int32 startRpc, Int32 startParam) в System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds, Boolean describeParameterEncryptionRequest) в System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource1 completion, Int32 timeout, Task& task, Boolean asyncWrite) в System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite) в System.Data.SqlClient.SqlCommand.ExecuteNonQuery() в StockSharp.Algo.Export.Database.DbProviders.MSSQLDbProvider.InsertBatch(Table table, IEnumerable1 parameters) в StockSharp.Algo.Export.DatabaseExporter.Do[TValue,TTable](IEnumerable1 values, Func1 getTable) в Ecng.Common.Converter.<>c__DisplayClassf.<DoInCulture>b__e() в Ecng.Common.Converter.DoInCulture(CultureInfo cultureInfo, Func`1 func) в StockSharp.Hydra.Tools.ExportTask.OnProcess()

В чём может быть проблема? Я понимаю, что скорее всего вопрос в несовпадении форматов дат. Хотелось бы понять, как это подправить в базе - какие форматы для соответствующих полей *Date и *Time выставить.

JaguarFX
JaguarFX

Была похожая ситуация, только данные мне нужны в Матлабе. В итоге сделал дллку с функциями для работы с хранилищем S#.Data из внешних приложений (получение списка инструментов, временных рядов hloc и пр). Это решило проблему без всякого sql-сервера.

Mikhail Sukhov
Rebelion
Rebelion Autor

Да видимо придётся писать. Просто не так удобно, конечно, - думал, что быстренько сделаю мостик между гидрой и R-клиентом через промежуточную базу. А не поделитесь dll'кой? 😊

JaguarFX
JaguarFX

Выложил в репозитарий: https://github.com/lebedevsrg/SDataExtract/ забирай. Там в проекте MTBtest забиты как ресурсы два m-файла, можешь посмотреть как идет вызов из Matlab. Для R скорее всего как-то по аналогии.