Skip to content

交易函数

order-买卖标的

python
order(security,amount,style=None,side='long',close_today=False,account)

参数

  • security: 标的代码,支持股票/期货/场内基金/可转债

  • amount: 交易数量(股),正数表示买入,负数表示卖出

  • style: OrderStyle 对象,MarketOrderStyle(limit_price)/LimitOrderStyle(limit_price),市价/限价.默认是 MarketOrderStyle(0).

  • side: 'long'/'short',操作多单还是空单.默认为多单,股票、ETF 暂不支持开空单

  • close_today: 平今/平昨字段,期货专用.不管 close_today 是 True 还是 False,此函数只会产生一个订单,区别在于平仓时的手续费计算,平昨仓使用 close_commission 对应手续费率,平今仓使用 close_today_commission 手续费率.

    • close_today=True,只平今仓,今仓不足的时候,订单将会被废单.
    • close_today=False,优先平昨仓,昨仓不足部分平今仓
  • account: int,指定第几个账户,1 是第一个,2 是第二个...按顺序.

    • 回测时,只有一个账户,这个参数无效.仿真和实盘时,和界面上添加的账户顺序对应.
    • 注意: 如果策略里设置的账户数多于界面上添加的账户数,默认使用超出范围的账户会直接报错.如果想修改,参考设置函数 set_option().

返回

  • 成功: str,order_id
  • 失败: None

order_target-买卖标的使最终标的的数量达到指定的数量

python
order_target(security,amount,style=None,side='long',close_today=False,account)

注意使用此接口下单时若指定的标的有未完成的订单,则先前未完成的订单将会被取消

参数

  • security: 标的代码,支持股票/期货/场内基金/可转债

  • amount: 期望的最终数量

  • style: OrderStyle 对象,MarketOrderStyle(limit_price)/LimitOrderStyle(limit_price),市价/限价.默认是 MarketOrderStyle(0)

  • side: 'long'/'short',操作多单还是空单.默认为多单,股票、ETF 暂不支持开空单.

  • close_today: 平今/平昨字段,期货专用.不管 close_today 是 True 还是 False,此函数只会产生一个订单,区别在于平仓时的手续费计算,平昨仓使用 close_commission 对应手续费率,平今仓使用 close_today_commission 手续费率.

    • close_today=True,只平今仓,今仓不足的时候,订单将会被废单.
    • close_today=False,优先平昨仓,昨仓不足部分平今仓
  • account: int,指定第几个账户,1 是第一个,2 是第二个...按顺序.

    • 回测时,只有一个账户,这个参数无效.仿真和实盘时,和界面上添加的账户顺序对应.
    • 注意: 如果策略里设置的账户数多于界面上添加的账户数,默认使用超出范围的账户会直接报错.如果想修改,参考设置函数 set_option().

返回

  • 成功: str,order_id
  • 失败: None

order_target_value-调整标的仓位到指定价值

python
order_target_value(security,value,style=None,side='long',close_today=False,account)

注意使用此接口下单时若指定的标的有未完成的订单,则先前未完成的订单将会被取消

参数

  • security: 标的代码,支持股票/期货/场内基金/可转债

  • value: 期望的标的最终价值,value=最新价 * 手数 * 保证金率(股票为 1) * 乘数(股票为 100)

  • style: OrderStyle 对象,MarketOrderStyle(limit_price)/LimitOrderStyle(limit_price),市价/限价.默认是 MarketOrderStyle(0)

  • side: 'long'/'short',操作多单还是空单.默认为多单,股票、ETF 暂不支持开空单.

  • close_today: 平今/平昨字段,期货专用.不管 close_today 是 True 还是 False,此函数只会产生一个订单,区别在于平仓时的手续费计算,平昨仓使用 close_commission 对应手续费率,平今仓使用 close_today_commission 手续费率.

    • close_today=True,只平今仓,今仓不足的时候,订单将会被废单.
    • close_today=False,优先平昨仓,昨仓不足部分平今仓
  • account: int,指定第几个账户,1 是第一个,2 是第二个...按顺序.

    • 回测时,只有一个账户,这个参数无效.仿真和实盘时,和界面上添加的账户顺序对应.
    • 注意: 如果策略里设置的账户数多于界面上添加的账户数,默认使用超出范围的账户会直接报错.如果想修改,参考设置函数 set_option().

返回

  • 成功: str,order_id
  • 失败: None

order_value-买卖价值为指定价值的标的

python
order_value(security,value,style=None,side='long',close_today=False,account)

参数

  • security: 标的代码,支持股票/期货/场内基金/可转债

  • value: 股票价值,value=最新价 * 手数 * 保证金率(股票为 1) * 乘数(股票为 100)

  • style: OrderStyle 对象,MarketOrderStyle(limit_price)/LimitOrderStyle(limit_price),市价/限价.默认是 MarketOrderStyle(0)

  • side: 'long'/'short',操作多单还是空单.默认为多单,股票、ETF 暂不支持开空单.

  • close_today: 平今/平昨字段,期货专用.不管 close_today 是 True 还是 False,此函数只会产生一个订单,区别在于平仓时的手续费计算,平昨仓使用 close_commission 对应手续费率,平今仓使用 close_today_commission 手续费率.

    • close_today=True,只平今仓,今仓不足的时候,订单将会被废单.
    • close_today=False,优先平昨仓,昨仓不足部分平今仓
  • account: int,指定第几个账户,1 是第一个,2 是第二个...按顺序.

    • 回测时,只有一个账户,这个参数无效.仿真和实盘时,和界面上添加的账户顺序对应.
    • 注意: 如果策略里设置的账户数多于界面上添加的账户数,默认使用超出范围的账户会直接报错.如果想修改,参考设置函数 set_option().

返回

  • 成功: str,order_id
  • 失败: None

get_open_orders-获取当天的所有未完成的委托详情

python
get_open_orders()

get_orders-获取委托详情

获取指定订单对象/当天的所有订单委托详情

python
get_orders(order_id=None)

参数

  • order_id: 订单编号,由下单函数返回.不传参数时,返回当天所有委托订单

返回

返回一个[Order]对象或一个 dict, key 是 order_id, value 是[Order]对象

示例

python
a = order_target_value(stock, cash)
print(get_orders()[a])

# UserOrder({'order_id': ZLT-0000000--sz300418,'status': filled,'add_time': 2023-02-20 09: 30: 00,'security': sz300418,'amount': 36200,'filled': 36200,'side': long,'action': open,'price': 23.2200,'commission': 252.1691,'style': MarketOrderStyle: _limit_price=0.0])

get_trades-获取当天成交详情

python
get_trades()

返回

返回一个 dict, key 是 trade_id, value 是[Trade]对象

cancel_order-撤单

python
cancel_order(order)

参数

  • order: [Order]对象或者 order_id

inout_cash-账户转入或转出资金

python
inout_cash(cash)

账户转入或转出资金,当日的出入金从当日开始记入成本,用于计算收益,即当日结束计算收益时的本金是包含当日出入金金额的(暂不支持)

参数

  • cash: 可正可负,正为入金,负为出金.

基金交易

order_etf-etf 实物申赎

python
order_etf(etf_code, amount,trade_type,cash_list,stock_list,account)

仅仿真/实盘中可使用

参数

  • etf_code: etf 代码,str

  • amount: 申购数量,int

  • trade_type: 'esg' 申购,'ehh'赎回

  • cash_list: 仅申购使用,需要现金替代的金额列表,list[str]

  • stock_list: 仅申购使用,需要现金替代的代码列表,list[str]

  • account: int,指定第几个账户,1 是第一个,2 是第二个...按顺序.

    • 回测时,只有一个账户,这个参数无效.仿真和实盘时,和界面上添加的账户顺序对应.
    • 注意: 如果策略里设置的账户数多于界面上添加的账户数,默认使用超出范围的账户会直接报错.如果想修改,参考设置函数 set_option().

返回

  • 成功: str,order_id
  • 失败: None

事件通知

on_position_warning-当仓位到达指定位置时触发

当仓位到达指定位置时触发(默认 70%)

python
on_position_warning(context,msg)

参数

  • context: 上下文对象
  • msg: 当前仓位,百分比

on_order-当订单撮合成功后触发

python
on_order(context,msg)

参数

  • context: 上下文对象
  • msg: 当前成交的订单信息

文档版本: 1.0.0 | 发布于 2025-01-29