返回介绍

函数

发布于 2024-05-30 23:59:21 字数 4640 浏览 0 评论 0 收藏 0

交易函数

1, 发单函数---> send_order

基于 ctpbee 的设计,让一切都变得自由和简单~ 没错发单也继承了此特性 ctpbe 提供了两种发单方式,核心对象发单直接发单和全局代理发单,以下是两种方式的简单介绍

  • 通过核心对象发单

    通过调用核心 CtpBee 的 send_order 接口来进行发单

    • 函数参数签名
      CtpBee.send_order()
    • 简单使用
      app.send_order(req)
    • 解释
      直接拿到核心 app 进行下单,接受参数为 OrderRequest 类的实例, ctpbee 提供了 helper 让你可以快速构建请求
  • 全局代理发单

    通过上面的了解, 你应该理解了原理. 通过 context 的代理对象进行发单, 快速调度使用 CtpBee 使用接口,这个代理是可以全局进行访问的 - 简单使用:

    from ctpbee import send_order
    send_order(order_req)
    
    • 函数签名

      def send_order(order_req: OrderRequest, app_name: str = "current_app") -> str:

    • 解释

      • 调用 CtpBee 对象进行发单, 当不指定 account_name 时候,默认调用 current_app 进行下单
      • param: order_req OrderRequest 发单请求
      • param: app_name 字符串 CtpBee 的第一个参数,默认为 current_app ,也就是当前最近推入栈中的对象
2, 撤单函数

撤单函数的设计和发单函数几乎一模一样,稍微有点差异的是接受的参数为 CancleRequest 类的实例。:

def cancle_order(cancle_req: CancelRequest, app_name: str = "current_app") -> None:
    """
        撤单, 当不指定 account_name 时候,默认调用 current_app 进行撤单
        param: cancle_req  OrderRequest 撤单请求
        param: account_name 字符串  CtpBee 的第一个参数
    """
    ...

3,当前对象

为了方便设计单账户的操作,在全局设计了 current_app 这个代理对象,你可以在全局的任何位置导入 current_app

from ctpbee import current_app

来访问并使用他,注意 current_app == CtpBee 实例化后的 app 哦

函数签名:

def current_app() -> CtpBee:
    """
        返回栈顶的 CtpBee 对象
    """
    ...
4,切换对象

对于多个账户而言,如何进行快速处理成为一键稍微麻烦的事情,那么能不能写一样的代码,然后赋予代码不同的含义呢? 答案是可以的 通过:

from ctpbee import switch_app

你可以来快速将想要的 app 切换到 current_app, 而那些发单操作只需要用 current_app 来进行操作即可, 这样对于多账户你只需要写切换逻辑即可, 请注意接受的参数为 CtpBee 实例化的第一个参数哦 函数签名:

def switch_app(name:Text) -> None:
    """
        将名字为 name 的 CtpBee 的对象切换到栈顶
        param  : name 字符串 Ctpbee 的第一个参数
        return : None
    """
    ...
5,获得对象

此项是针对快速想要拿到 app 变量的需求而设计,接受参数同样是 CtpBee 实例化的第一个参数哦,返回 app 实例:

from ctpbee import get_app

函数签名:

def get_app(name: Text) -> CtpBee:
    """
        用途: 根据 app 的名字查找 CtpBee 对象
        param  : name 字符串 CtpBee 的第一个参数
        return : CtpBee 对象/None
    """
    ...
6, 查询持仓

同样基于设计的缘故,ctpbee 提供了全局的查询持仓操作,函数返回数字

0 代表成功

其他则被 ctp 的流控所阻挡:

from ctpbee import query_position

函数签名:

def query_position(name: Text="current_app"):
    """
        调用 Ctpbee 对象进行查询持仓操作
        name 为 CtpBee 的第一个参数,默认为 CtpBee
    """
    ...
7, 查询账户

和查询持仓操作一样,不同的是目的为查询账户信息

函数签名:

def query_account(name: Text="current_app"):
    """
       调用 Ctpbee 对象进行查询账户操作
       name 为 CtpBee 的第一个参数
    """

行情函数

对于行情,ctpbee 提供了三个功能

1,订阅行情

向柜台快速发起行情请求要求 函数签名:

def subscribe(symbol):
    """
        param  : symbol 字符串 订阅的代码
        return : None
    """
    通过 symbol 进行订阅函数
2, 校验数据是否合法

用户校验 tick 数据或者 bar 数据是否合法,返回 True/False 简单使用:

def on_bar(self, bar):
    if not auth_time(bar.datetime.time())
        return
    """ bar 处理"""
    ...

函数签名:

def auth_time(data_time: time) -> bool:
    """
        校验时间 tick 或者 bar 的时间合不合法
        for example:
            data_time = tick.datetime.time()
    """
    ...

3,发单助手

为了便捷发单,ctpbee 内置快速为你构建各类请求的函数, 这些函数都被包括在 helper 助手里面:

from ctpbee import helper

以下是各种方法, 出于考虑到数据的来源不同,内置了两种方式 通过变量:

1,helper.generate_order_req_by_var()
函数签名: symbol: str, exchange: Exchange, direction: Direction, offset: Offset, type: OrderType, volume, price
函数返回: OrderRequest
函数用途: 通过传入常量来构建 OrderRequest

通过字符串:

helper.generate_order_req_by_str::
函数签名: symbol: str, exchange: Exchange, direction: Direction, offset: Offset, type: OrderType, volume, price
函数返回: OrderRequest
函数用途: 通过传入字符串来构建 OrderRequest, 可以大小写(除 symbol,volume, price 外)

以上是下单请求构建方式,还有撤单请求构建方式 通过变量:

helper.generate_cancle_req_by_var

通过字符串:

helper.generate_cancle_req_by_str

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

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

发布评论

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