返回介绍

快速开始

发布于 2024-05-30 23:39:26 字数 1892 浏览 0 评论 0 收藏 0

示例

我将在这里为你演示一个比较小的 ctp 核心,我会将所有的代码放在同一个文件中并加上注释, 所以请你们仔细阅读哦,话不多说上 code

from ctpbee import CtpBee, CtpbeeApi
from ctpbee.constant import *
from ctpbee import Action
from ctpbee import RiskLevel


class ActionMe(Action):
    def __init__(self, app):
        # 请记住要对父类进行实例化
        super().__init__(app)
        # 通过 add_risk_check 接口添加风控
        self.add_risk_check(self.sell)


class DoubleMA(CtpbeeApi):
    def __init__(self, name):
        super().__init__(name)
        self.instrument_set = ['rb2001.SHFE']

    def on_contract(self, contract: ContractData):
        if contract.local_symbol in self.instrument_set:
            self.action.subscribe(contract.local_symbol)

    def on_tick(self, tick: TickData) -> None:
        """
        tick 行情触发的时候会调用此函数,你可以通过 print 来打印它查看详情
        """
        print(tick)


def create_app():
    """
    工厂函数 创建 app 变量并加载相关变量,最后返回
    """
    app = CtpBee("ctpbee", __name__, action_class=ActionMe)  # 在此处我们创建我们的核心 App。
    info = {
        "CONNECT_INFO": {
            "userid": "089131",
            "password": "350888",
            "brokerid": "9999",
            "md_address": "tcp://218.202.237.33:10112",
            "td_address": "tcp://218.202.237.33:10102",
            "product_info": "",
            "appid": "simnow_client_test",
            "auth_code": "0000000000000000"
        },
        "INTERFACE": "ctp",  # 接口声明
        "TD_FUNC": True,  # 开启交易功能
    }
    app.config.from_mapping(info)
    double_ma = DoubleMA("double_ma")  # 创建我们的策略实例
    app.add_extension(double_ma)  # 将我们的策略通过 app 的 add_extension 接口加入进系统
    return app


if __name__ == "__main__":
    """
    通过 ctpbee 自己提供的 24 小时运行模块,让 ctpbee 能够自行运行程序,并在交易时间段和
    非交易时间段自动上下线
    """
    from ctpbee import hickey

    # 注意你在此处传入的是创建 App 的函数
    hickey.start_all(create_app)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文