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


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

Спасибо.

Теги:


Спасибо:


< 1 2 
Rebelion

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


Разобрался как подключить. При попытке экспорта для имеющегося с инструмента в 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, TaskCompletionSource`1 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, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite)
в System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)
в System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
в StockSharp.Algo.Export.Database.DbProviders.MSSQLDbProvider.InsertBatch(Table table, IEnumerable`1 parameters)
в StockSharp.Algo.Export.DatabaseExporter.Do[TValue,TTable](IEnumerable`1 values, Func`1 getTable)
в Ecng.Common.Converter.<>c__DisplayClassf.<DoInCulture>b__e()
в Ecng.Common.Converter.DoInCulture[T](CultureInfo cultureInfo, Func`1 func)
в StockSharp.Hydra.Tools.ExportTask.OnProcess()

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

JaguarFX

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


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

Rebelion

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


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

JaguarFX

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


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

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

loading
clippy