ctpbee 简单易用的期货实盘 ctp 交易框架 支持 ctp 和 ctp_mini

发布于 2024-05-30 23:44:13 字数 4662 浏览 20 评论 0

ctpbee 是一个基本的量化开发框架, 他的目标一开始就是为了方便量化开发,所以很多 API 的设计都会照顾开发者,当然如果你要开发策略 ,基本的开发知识还是需要你进行掌握的。


bee bee .... for developer's trading ~

tiny but strong

ctpbee provide a micro core of trading, you can make trade and backtest in it.

环境设置

#  linux 用户快速生成中文支持/ windows 用户无须设置 
## for root 
bee init-locale 
## for user, xxx 为你的用户密码, 注意你当前用户需要拥有 sudo 权限 
bee init-locale --password xxxxx 

灵感起源

使用来自于 vnpy 的交易接口,重新提供上层封装 API,简化安装流程,提供快速实现交易功能。

快速安装

mac 用户注意, ctpbee_api 目前仅仅提供源码安装方式, 需要你预先安装 ctpbee_api, 安装参见

# python version: 3.6+

# 源码安装 
git clone    https://github.com/ctpbee/ctpbee    && cd ctpbee && python3 setup.py install  

# pip 源安装
pip3 install ctpbee

支持系统

    <lilinux< li=""> <liwindows< li=""> <limacos< li=""> </limacos<></liwindows<></lilinux<>

快速开始

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() 

功能支持

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  • ctp
  • ctp_mini
  • rohon
  • open_ctp

更多相关信息, 请参阅 文档

命令行运行效果

回测截图

支持多周期多合约回测,回测参考 example/backtest 示例

模拟交易测试

本项目推荐使用 openctp 或者 simnow 做模拟交易测试

关于如何对接 openctp ,请参阅此教程 click here

DEMO : 推荐参阅 openctp 分发实现

遇到问题?

请提交 issue 或者于 issue 搜索关键字, 或者查阅 此处

历史数据支持

对于本地数据自动运维方案,请 Hive 本项目不提供直接的历史数据访问服务。

插件支持

ctpbee 提供了一个 ToolRegister 机制以支持访问数据触发机制,可以实现交易各类插件。

欢迎各位大佬参与开发进来. 实现相关生态功能,如果有相关疑惑,可以发送邮件到 somewheve@gmail.com 寻求技术支持,下面是提供的插件列表

  • ctpbee_kline k 线支持插件
  • ctpbee_webline 使用 flask 编写后端,通过 with_tools 接口接入策略, vue3+tauri 编写桌面应用,敬请期待。

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

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

夏日浅笑〃

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

玍銹的英雄夢

文章 0 评论 0

我不会写诗

文章 0 评论 0

十六岁半

文章 0 评论 0

浸婚纱

文章 0 评论 0

qq_kJ6XkX

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文