Pharos
Trade

exchange.CancelAllOrders()

取消所有未完成的订单。

语法

python
canceled_count = exchange.CancelAllOrders()

返回值

  • int: 取消的订单数量

示例

基础用法

python
# 取消所有挂单
count = exchange.CancelAllOrders()
Log(f"已取消 {count} 个订单")

紧急止损

python
def emergency_stop():
    """紧急停止:取消所有订单并市价平仓"""
    # 1. 取消所有挂单
    count = exchange.CancelAllOrders()
    Log(f"已取消 {count} 个挂单")
    
    # 2. 市价平仓
    account = exchange.GetAccount()
    if account['Stocks'] > 0:
        depth = exchange.GetDepth()
        price = depth['Bids'][0][0]  # 买一价
        exchange.Sell(price, account['Stocks'])
        Log(f"市价卖出: {account['Stocks']}")

# 使用
emergency_stop()

策略切换前清理

python
def cleanup_before_switch():
    """切换策略前清理所有订单"""
    Log("正在清理所有订单...")
    count = exchange.CancelAllOrders()
    Log(f"清理完成,取消了 {count} 个订单")
    Sleep(1000)  # 等待订单完全取消

cleanup_before_switch()

注意事项

  1. 不可逆操作:此操作会取消所有挂单,请谨慎使用
  2. 正在成交的订单:可能有订单正在成交中,取消可能失败
  3. 建议场景:策略停止、紧急止损、参数调整前

相关方法