datakit
对应demo地址datakit
仿真或实盘中的实时行情,需要通过datakit工具实时接收,datakit将接受到的行情分发给不同的策略,同时并保存到本地作为当日的历史行情,在收盘后会的盘后处理中,将当日数据合并到历史行情中。盘后工作的时间取决于datakit的配置文件statemonitor.yaml
Tip
datakit接受哪些合约的行情,取决于contracts.json,所以记得定时使用ctp_loader进行更新。
dtcfg.yaml
datakit工具配置,制定了基础配置文件的所在目录、行情分发设置以及指定其他配置文件
basefiles: # 基础配置文件目录
commodity: ..\common\commodities.json
contract: ..\common\contracts.json
holiday: ..\common\holidays.json
session: ..\common\sessions.json
broadcaster: # 数据广播设置
active: true
bport: 3997 # 端口
broadcast: # 广播设置,策略配置中tdparsers.yaml的配置需要与这个一致,否则无法接收到数据
- host: 255.255.255.255
port: 9001
type: 2
multicast_:
- host: 224.169.169.169
port: 9002
sendport: 8997
type: 0
- host: 224.169.169.169
port: 9003
sendport: 8998
type: 1
- host: 224.169.169.169
port: 9004
sendport: 8999
type: 2
parsers: mdparsers.yaml # 行情服务设置
statemonitor: statemonitor.yaml # 状态设置
writer: # 行情记录设置
module: WtDtStorage #数据存储模块
async: true #同步落地还是异步落地,期货推荐同步,股票推荐异步
groupsize: 20 #日志分组大小,主要用于控制日志输出,当订阅合约较多时,推荐1000以上,当订阅的合约数较少时,推荐100以内
path: ../STK_Data #数据存储的路径
savelog: false #是否保存tick到csv
disabletick: false #不保存tick数据,默认false
disablemin1: false #不保存min1数据,默认false
disablemin5: false #不保存min5数据,默认false
disableday: false #不保存day数据,默认false
disabletrans: false #不保存股票l2逐笔成交数据,默认false
disableordque: false #不保存股票l2委托队列数据,默认false
disableorddtl: false #不保存股票l2逐笔委托数据,默认false
disablehis: false #收盘作业不转存历史数据,默认false
Tip
如果需要开启多个datakit的话,需要设置不同的bport与path
statemonitor.yaml
datakit的配置文件之一,指定了不同交易时段品种的收盘时间,初始化时间,名称以及盘后工作时间
FD0900:
closetime: 1515 # 收盘时间
inittime: 850 # 初始化时间
name: 期白0900 # 名称
proctime: 1600 # 盘后工作时间
FD0915:
closetime: 1530
inittime: 900
name: 期白0915
proctime: 1600
mdparsers.yaml
行情服务配置
parsers:
- active: true
broker: '9999'
code: ''
front: tcp://180.168.146.187:10211
id: parser
module: ParserCTP
pass: 你的SIMNOW密码
user: 你的SIMNOW账号
runDT
运行datakit启动代码,开启数据工具
from wtpy import WtDtEngine
if __name__ == "__main__":
#创建一个运行环境,并加入策略
engine = WtDtEngine()
engine.initialize("dtcfg.yaml", "logcfgdt.yaml")
engine.run()
kw = input('press any key to exit\n')