从qlib的因子表达式端到端因子挖掘框架:DeepAlphaGen V1.0代码发布,支持最新版本qlib,
到bt的算子Algo使用toml配置工程,模块化开发策略的门槛更低,
pybroker的WFA前向滚动的回测AI量化系统Quantlab V1.7代码更新,支持pybroker引擎,含大类资产风险平价及波动率策略源码集,平均年化15%,
backtrader:backtrader的策略模板,结合“积木式”的策略模块(全系统代码下载)
实现一个回测平台非常容易,用pandas加几行代码就可以实现一个向量化的引擎。
但要真正投入生产,还是需要一定的功力。
很多学员更关心实盘,所以咱们今天重点聊聊CTP。
CTP(Comprehensive Transaction Platform)是由上海期货信息技术有限公司(上海期货交易所的全资子公司)开发的快速证券交易系统,以“新一代交易所系统”的核心技术为基础,具有稳定、高速的开放式接口。
vnpy就是做ctp接口起家,然后加上了回测引擎。
以终为始是一个好的策略。
这里介绍一个年轻的框架ctpbee,架构参考flask的微内核。
ctpbee多周期多合约的回测截图:
启动代码如下:
from ctpbee import CtpBee from ctpbee import CtpbeeApi from ctpbee.constant import * class CTA(CtpbeeApi): def __init__(self, name): super().__init__(name) def on_init(self, init: bool) -> None: # 初始化完成回调 self.info("init successful") def on_tick(self, tick: TickData) -> None: print(tick.datetime, tick.last_price) # 打印tick时间戳以及最新价格 # 买开 self.action.buy_open(tick.last_price, 1, tick) # 买平 self.action.buy_close(tick.last_price, 1, tick) # 卖开 self.action.sell_open(tick.last_price, 1, tick) # 卖平 self.action.sell_close(tick.last_price, 1, tick) # 获取合约的仓位 position = self.center.get_position(tick.local_symbol) print(position) def on_contract(self, contract: ContractData) -> None: if contract.local_symbol == "rb2205.SHFE": self.action.subscribe(contract.local_symbol) # 订阅行情 print("合约乘数: ", contract.size) if __name__ == '__main__': app = CtpBee('ctp', __name__) info = { "CONNECT_INFO": { "userid": "", "password": "", "brokerid": "", "md_address": "", "td_address": "", "appid": "", "auth_code": "", "product_info": "" }, "INTERFACE": "ctp", "TD_FUNC": True, # Open trading feature } app.config.from_mapping(info) # loading config from dict object cta = CTA("cta") app.add_extension(cta) app.start()
作者本人的建议,与我的观点相同:策略开发站在个人角度而言更加希望各位quant通过因子研究的方式进行策略研究与回测, 而不是通过ctpbee硬写, 内部并没有提供较为复杂的参数优化器帮助各位实现策略调优。
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/103613
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!