函数
交易函数
- 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论