【金融量化】Ptrade中的基础交易与高级量化交易策略的下单接口

发布于:2025-03-06 ⋅ 阅读:(30) ⋅ 点赞:(0)

1 基础交易与订单管理接口

1. order

功能:用于按指定数量买卖股票或其他金融产品。
参数

  • security:股票代码(字符串类型)。
  • amount:交易数量(整数类型),正数表示买入,负数表示卖出。
  • limit_price:买卖限价(浮点数类型),可选参数,默认使用最新价。

返回:返回Order对象的id(字符串类型),如果创建订单成功则返回id,失败则返回None


2. order_value

功能:用于按指定价值买卖股票或其他金融产品。
参数

  • security:股票代码(字符串类型)。
  • value:股票价值(浮点数类型)。
  • limit_price:买卖限价(浮点数类型),可选参数,默认使用最新价。

返回:返回Order对象的id(字符串类型),如果创建订单成功则返回id,失败则返回None


3. order_target_value

功能:用于调整股票持仓市值到指定价值。
参数

  • security:股票代码(字符串类型)。
  • value:目标持仓市值(浮点数类型)。
  • limit_price:买卖限价(浮点数类型),可选参数,默认使用最新价。

返回:返回Order对象的id(字符串类型),如果创建订单成功则返回id,失败则返回None


4. get_open_orders

功能:获取当前所有未完成的订单。
参数:无。
返回:返回一个包含Order对象的列表(list[Order]),每个Order对象包含订单的详细信息,如idstatusfilled等。


5. get_orders

功能:获取指定订单的详细信息。
参数

  • order_id:订单ID(字符串类型)。

返回:返回一个包含Order对象的列表(list[Order]),每个Order对象包含订单的详细信息,如idstatusfilled等。


6. get_traders

功能:获取当前所有交易者的信息。
参数:无。
返回:返回一个包含Trader对象的列表(list[Trader]),每个Trader对象包含交易者的详细信息,如idnamebalance等。


Order对象的参数

Order对象通常包含以下字段:

  • id:订单的唯一标识符(字符串类型)。
  • status:订单状态(字符串类型),如8表示已完成。
  • filled:已成交数量(浮点数类型)。
  • amount:订单总数量(整数类型)。
  • limit_price:订单限价(浮点数类型)。
  • security:股票代码(字符串类型)。

2 高级交易与策略执行下单接口

1. 条件单设置

条件单允许用户设置特定的条件,当市场满足这些条件时,系统会自动执行交易指令。

功能:根据设定的价格条件自动下单。

参数

  • stock_code:股票代码。
  • buy_price_condition:买入价格条件。
  • order_type:订单类型(如买入、卖出)。

示例代码

# 假设用户希望通过Ptrade设定一个条件单,当股票价格达到特定水平时自动买入
buy_price_condition = 10.5  # 设定的买入价格为10.5元
stock_code = '000001'  # 交易的股票代码为000001

# 调用Ptrade的条件单功能
set_condition_order(stock_code, buy_price_condition, order_type='buy')

2. 篮子交易

篮子交易允许用户将多只股票或金融资产组成“篮子”进行统一交易。

功能:一键买卖多只股票,简化投资组合管理。

参数

  • basket:篮子中的股票代码列表。
  • order_type:订单类型(如买入、卖出)。

示例代码

# 假设用户希望通过Ptrade进行篮子交易
basket = ['000001', '600000']  # 篮子中的股票代码
order_type = 'buy'  # 买入操作

# 调用Ptrade的篮子交易功能
execute_basket_trade(basket, order_type)

3. 拆单策略

拆单策略用于将大额订单拆分成小额订单,以降低对市场的冲击。

功能:将大额订单拆分成多个小额订单,逐步执行。

参数

  • stock_code:股票代码。
  • total_quantity:总数量。
  • split_type:拆单策略类型(如数量递减、区间随机、固定数量)。

示例代码

# 假设用户希望通过Ptrade进行拆单交易
stock_code = '000001'  # 交易的股票代码
total_quantity = 10000  # 总数量
split_type = 'quantity_decrease'  # 数量递减策略

# 调用Ptrade的拆单策略功能
split_order(stock_code, total_quantity, split_type)

4. 抢单交易

抢单交易用于监控和快速买入即将涨停的股票。

功能:根据设定的涨幅条件自动筛选并下单。

参数

  • stock_pool:监控的股票池。
  • rise_condition:涨幅条件(如主板8%,创业板18%)。

示例代码

# 假设用户希望通过Ptrade进行抢单交易
stock_pool = ['000001', '600000']  # 监控的股票池
rise_condition = {'main_board': 8, 'gem': 18}  # 主板涨幅8%,创业板涨幅18%

# 调用Ptrade的抢单交易功能
execute_quick_order(stock_pool, rise_condition)

5. 一键清仓

一键清仓用于在市场形势突变时迅速卖出所有持仓股票。

功能:快速卖出所有持仓股票。

参数

  • account_id:账户ID。

示例代码

# 假设用户希望通过Ptrade进行一键清仓
account_id = '123456'  # 账户ID

# 调用Ptrade的一键清仓功能
clear_all_positions(account_id)

6. 一键全撤

一键全撤用于撤销所有未成交的订单。

功能:快速撤销所有未成交订单。

参数

  • account_id:账户ID。

示例代码

# 假设用户希望通过Ptrade进行一键全撤
account_id = '123456'  # 账户ID

# 调用Ptrade的一键全撤功能
cancel_all_orders(account_id)

7. 一键申购

一键申购用于快速申购新股或新基金。

功能:快速申购新股或新基金。

参数

  • stock_code:股票代码。
  • amount:申购金额。

示例代码

# 假设用户希望通过Ptrade进行一键申购
stock_code = '000001'  # 股票代码
amount = 10000  # 申购金额

# 调用Ptrade的一键申购功能
execute_subscription(stock_code, amount)

3 区别

第一组API:基础交易与订单管理

  1. order: 用于执行普通的下单操作,指定股票代码、数量和价格进行买入或卖出。适用于简单的单笔交易场景。
  2. order_value: 根据指定的金额下单,系统会自动计算可购买的股票数量。适用于希望以固定金额进行交易的场景。
  3. order_target_value: 将持仓调整到指定的目标金额。适用于需要动态调整持仓比例的量化策略。
  4. get_open_orders: 获取当前未成交的订单列表。适用于监控和管理未完成订单的场景。
  5. get_orders: 获取所有历史订单信息。适用于需要分析历史交易记录的场景。
  6. get_traders: 获取交易员或账户信息。适用于需要管理多个交易员或账户的场景。

第二组API:高级交易与策略执行

  1. set_condition_order: 设置条件单,当满足特定条件时自动触发交易。适用于需要自动化执行复杂交易策略的场景。
  2. execute_basket_trade: 执行篮子交易,即同时交易多个股票或资产。适用于需要批量交易或组合交易的场景。
  3. split_order: 将大单拆分为多个小单执行,以减少市场冲击。适用于大额交易或需要隐蔽交易的场景。
  4. execute_quick_order: 快速执行市价单,适用于需要立即成交的场景。
  5. clear_all_positions: 清空所有持仓。适用于需要快速平仓或重置投资组合的场景。
  6. cancel_all_orders: 取消所有未成交的订单。适用于需要快速撤销所有挂单的场景。
  7. execute_subscription: 执行订阅操作,通常用于基金或产品的申购。适用于需要自动化处理申购的场景。
  • 第一组API主要用于基础交易和订单管理,适合简单的交易需求。
  • 第二组API则用于更复杂的交易策略和批量操作,适合量化交易或需要自动化执行的场景。