马上1.0就要发布了 代码
我就慢悠悠的写文章了, 写个代码 (文章) 真难!
先回到正题 如何来录制tick
首先我们来创建一个App
from ctpbee import CtpBee
app = CtpBee("recorder", __name__)
然后载入配置信息
info = {
"CONNECT_INFO": {
"userid": "", # 期货账户名
"password": "", # 登录密码
"brokerid": "", # 期货公司id
"md_address": "", # 行情地址
"td_address": "", # 交易地址
"appid": "", # 产品名
"auth_code": "", # 认证码
"product_info":"" # 产品信息
},
"INTERFACE":"ctp", # 登录期货生产环境接口
}
app.config.from_mapping(info)
环境准备好了,那么我们来讨论来如何录制tick
一般录制tick数据需要接受行情、过滤行情、行情入库 这三个步骤
首先来收到行情
from ctpbee import CtpbeeApi
class Market(CtpbeeApi):
def on_bar(self, bar):代码
""" 处理k线数据 """
def on_tick(self, tick):
""" 处理tick信息 """
在上述代码中我们提供了便捷的API让你能够直接收到行情tick和k线数据
注意k线数据是本地自行聚合的
我们现在要过滤行情,我们需要在此处思考两个点,数据不合法如何进行过滤
常见的两种不合法场景
- 交易时间段出现非交易时间段的数据, 成为垃圾tick
- 非交易时间段出现垃圾tick
- 断线
那么如何解决上述问题呢?
第一个可能就要用到一个连续行情的算法了 来确保脏tick
不会被送进数据库
第二个可以根据交易时间进行过滤即可
第三个不好意思我也没想到你单台主机处理这个问题的可能性
那么动手做吧 直接放代码
from datetime import datetime