ctpbee:一键启动的超快乐交易实盘框架

从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
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!

(0)
股市刺客的头像股市刺客
上一篇 2024 年 7 月 29 日
下一篇 2024 年 7 月 29 日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注