dataserver

pip 安装的,可在 shell 下直接执行 dataserver 命令。或使用 Python 执行安装目录下 gui/dataserver.py 文件。

dataserver 参数如下:

Options:
-addr, --addr TEXT              自身对外提供的服务地址, 如需外部机器访问,请使用 tcp://0.0.0.0:port
-n, --work_num INTEGER          行情接收处理线程数
-save, --save BOOLEAN           保存行情数据(仅支持clickhouse)
-buf, --buf BOOLEAN             缓存行情数据
-parquet_path, --parquet_path TEXT  Parquet 文件存储路径

dataserver 需要配合行情采集服务使用,可以和行情采集服务所在机器在同一台机器上运行,也可以在两台机器上分别运行,但需要配置好网络。

启动行情采集数据服务如下,如下命令行等其他方式,请查看安装目录下 gui 子目录下相关 python 文件

../_images/dataserver_01.png

和行情采集在同一台服务器上运行时,通常不用修改配置。如果不在同一机器上,需要调整 dataserver 所在机器相关配置:

如,行情采集运行在 A 机器(IP地址为: 192.168.1.2),dataserver 运行在 B 机器(IP地址:192.168.1.3),则修改 B 机器用户目录下的 hikyuu.ini 文件:

修改 [hikyuu] 节下的 quotation_server 参数为:

[hikyuu]
tmpdir = /Users/fasiondog/stock/tmp
datadir = /Users/fasiondog/stock
quotation_server = tcp://192.168.1.2:9200

如正常连接至行情采集服务,则会显示如下字样:

Ready to receive quotation from ....

如连接行情采集服务失败,将持续打印连接失败信息,如:

../_images/dataserver_02.png

在 hikyuu 其他程序中使用,调用 get_data_from_buffer_server 从 B 机器获取缓存的实时数据:

get_data_from_buffer_server(addr: str, stklist: list, ktype: Query.KType)
参数:
  • addr (str) -- 数据服务器地址

  • stklist (list) -- 需要获取数据的股票列表

  • ktype (Query.KType) -- 数据类型

如:

get_data_from_buffer_server("tcp://192.168.1.3:9201", [sm["sh000001"], sm["sh000002"]], KQuery.DAY)

使用此方法的其他 hikyuu 进程,可以通过 load_hikyuu 中的参数 “start_spot” 或 Strategy.start 方法参数,禁用自己的行情接收,节省机器资源占用。