quik-lua-rpc
quik-lua-rpc copied to clipboard
Вызов datasource_T падает
Здравствуйте! Пытаюсь получать обновление OHLCV данных. Хотел заиспользовать datasource_SetUpdateCallback, думая что можно задать коллбек и мне будут эти данные приходить, но вместо коллбека нужно строкой вписать fCbDef. И совсем не понятно что там должно быть... В итоге для начала решил просто получить хоть какие-то данные. Имеется следующий код (kotlin):
ZmqTcpQluaRpcClient.newInstance(CONNECT_CONFIG).apply { open() }.use { client ->
val createDataSourceArgs = CreateDataSource.Args.builder()
.classCode("SPBFUT")
.secCode("USDRUBF")
.interval(INTERVAL_M1)
.build()
val ds = client.datasource_CreateDataSource(createDataSourceArgs)
val upd = client.datasource_SetEmptyCallback(ds.datasourceUUID)
val sizeArgs = Size.Args(ds.datasourceUUID)
val size = client.datasource_Size(sizeArgs)
println("DataSource size = $size")
val index = size - 1
val o = client.datasource_O(O.Args(ds.datasourceUUID, index))
val h = client.datasource_H(H.Args(ds.datasourceUUID, index))
val l = client.datasource_L(L.Args(ds.datasourceUUID, index))
val c = client.datasource_C(C.Args(ds.datasourceUUID, index))
val v = client.datasource_V(V.Args(ds.datasourceUUID, index))
// падаем
val t = client.datasource_T(T.Args(ds.datasourceUUID, index))
println("T: $t\nO: $o\nH: $h\nL: $l\nC: $c\nV: $v")
}
ohlvc получаю (и даже корректные).
Но при попытке запроса времени падаем, а квик ругается следующим сообщением об ошибке в скрипте:
Ошибка в poller:start. Стек вызовов: stack traceback: C:\BCS_Work\QUIK_BCS\lua\quik-lua-rpc/service.lua:374: in metamethod '__newindex' ...ua\quik-lua-rpc/impl\protobuf_request_response_serde.lua:631: in function <...ua\quik-lua-rpc/impl\protobuf_request_response_serde.lua:625> ...ua\quik-lua-rpc/impl\protobuf_request_response_serde.lua:46: in function 'impl.protobuf_request_response_serde.serialize_response' C:\BCS_Work\QUIK_BCS\lua\quik-lua-rpc/service.lua:141: in function <C:\BCS_Work\QUIK_BCS\lua\quik-lua-rpc/service.lua:98> (...tail calls...) C:\BCS_Work\QUIK_BCS\lua\lzmq\poller.lua:80: in method 'poll' C:\BCS_Work\QUIK_BCS\lua\lzmq\poller.lua:88: in function <C:\BCS_Work\QUIK_BCS\lua\lzmq\poller.lua:85> (...tail calls...) [C]: in function 'xpcall' C:\BCS_Work\QUIK_BCS\lua\quik-lua-rpc/service.lua:369: in function 'service.start' [C]: in function 'pcall
Квик версии 9.5.0.42. Был бы очень благодарен, если бы вы сказали что нужно поправить, или подсказали бы другой способ получения OHLCVT данных (желательно в режиме реального времени по мере прихода этих данных в стакан).