1. 套利策略的初始化函数,订阅两个数据
void arbitrage_strategy::on_init(subscriber& suber)
{// 向订阅者注册两个交易代码的tick接收器。suber.regist_tick_receiver(_code1, this);suber.regist_tick_receiver(_code2, this);// 获取当前交易日。uint32_t trading_day = get_trading_day();// 可以在此函数中添加其他初始化任务。
}
2. 订阅两个数据的tick级别的数据处理和策略
void arbitrage_strategy::on_tick(const tick_info& tick)
{// 检查是否临近交易结束时间if (is_close_coming()){// 如果是,则记录调试信息并立即返回LOG_DEBUG("time > _coming_to_close", tick.id.get_id(), tick.time);return;}// 根据tick数据更新价格信息if (tick.id == _code1){// 更新1号合约价格_price1 = tick.price;}else if (tick.id == _code2){// 更新2号合约价格_price2 = tick.price;}// 如果价格信息为空,则返回if (_pric