实盘交易
程序化交易也就是自动化交易,也就是大家常见的各种量化框架,本质就是任务的定时调度 + 通知回调。
Hikyuu 主要聚焦于快速策略分析,本身不提供实盘交易,Strategy 运行时仅供大家学习参考如何和实盘进行对接,造成盈亏请自行负责。
具体可参见安装目录下的 strategy 子目录下的相关 demo。
公共参数:
spot_worker_num=1 (int) : 接收行情数据时内部的线程数
quotation_server=”” (string) : 指定行情服务地址,为空表示使用本机默认配置(hikyuu.ini)
- class hikyuu.Strategy
策略运行时
- name 名称
- context 策略上下文
- tm 当前交易账户
- sp 移滑价差算法(回测时使用)
- start(self)
启动策略执行,请在完成相关回调设置后执行。
- 参数:
auto_recieve_spot (bool) – 是否自动接收行情数据
- on_change(self, func)
设置证券数据更新回调通知
- 参数:
func – 一个可调用的对象如普通函数,需接收 stock 和 ktype 参数
- on_received_spot(self, func)
设置证券数据更新通知回调
- 参数:
func – 可调用对象如普通函数,没有参数
- run_daily(self, func)
设置日内循环执行回调。如果忽略市场开闭市,则自启动时刻开始按间隔时间循环, 否则第一次执行时将开盘时间对齐时间间隔,且在非开市时间停止执行。
- 参数:
func – 可调用对象如普通函数,没有参数
time (TimeDelta) – 间隔时间,如间隔3秒:TimeDelta(0, 0, 0, 3) 或 Seconds(3)
market (str) – 使用哪个市场的开闭市时间
ignore_market – 忽略市场开闭市时间
- run_daily_at(self, func)
设置每日定点执行回调
- 参数:
func – 可调用对象如普通函数,没有参数
time (TimeDelta) – 执行时刻,如每日15点:TimeDelta(0, 15)
ignore_holiday – 节假日不执行
- today(self)
获取当前交易日日期(使用该方法而不是 Datatime.today(), 以便回测和实盘一直)
- 返回:
当前交易日日期
- now(self)
获取当前时间(使用该方法而不是 Datatime.now(), 以便回测和实盘一直)
- 返回:
当前时间
- next_datetime(self)
下一交易时间点(回测使用)
- get_last_kdata(self, stk, start_date, ktype, recover_type)
获取指定证券从指定日期开始到当前时间的对应K线数据(为保证实盘和回测一致,请使用本方法获取K线数据)
或 指定当前能获取到的最后 last_num 条 K线数据(为保证实盘和回测一致,请使用本方法获取K线数据)
- get_kdata(self, stk, start_date, end_date, ktype, recover_type)
获取指定证券指定日期范围内的K线数据(为保证实盘和回测一致,请使用本方法获取K线数据)