Skip to content

Research: 自动交易 & 自动做市策略调研 #169

@wjllance

Description

@wjllance

自动交易 & 自动做市策略调研

基于 standx-cli 现有技术能力,调研可支持的策略类型。

一、standx-cli 现有能力

1.1 命令行接口

模块 命令 功能
市场数据 standx market ticker, depth, trades, kline, funding
账户数据 standx account balances, positions, orders, history
订单管理 standx order create, cancel, cancel-all
杠杆/保证金 standx leverage/margin 调整杠杆和保证金模式
实时流 standx stream price, depth, trade, order, position, balance, fills
视图 standx dashboard/portfolio 账户全景视图

1.2 WebSocket 实时数据

  • Public: price, depth, trade (无需认证)
  • Private: order, position, balance, fills (需认证)

1.3 数据模型

  • OrderSide: Buy/Sell
  • OrderType: Limit/Market
  • TimeInForce: GTC/IOC/FOK
  • Position: 持仓信息 (qty, entry_price, mark_price, upnl, liq_price, roe)
  • OrderBook: 深度数据 (bids, asks, spread)
  • Kline: K线数据 (open, high, low, close, volume)

二、可支持的自动交易策略

2.1 趋势跟踪策略

策略 说明 支持程度
均线交叉 MA/EMA 金叉买入,死叉卖出 ✅ 已有 kline 数据支持
突破策略 价格突破关键位开仓 ✅ 已有 price/depth 支持
** RSI 背离** RSI 超买超卖信号 ✅ 已有 kline 可计算

实现方式:

# 获取 K 线数据
standx market kline --symbol BTCUSDT --interval 1m --limit 100

# 计算策略信号后执行
standx order create --symbol BTCUSDT --side buy --type limit --qty 0.1 --price 67000

2.2 网格策略 (Grid Trading)

策略 说明 支持程度
现货网格 震荡行情中低买高卖 ✅ 限价单 + 取消单
合约网格 合约市场网格套利 ✅ 合约订单支持
无限网格 智能追踪价格调整网格 ✅ 可通过脚本实现

实现方式:

# 伪代码示例
price = get_price()
grid_levels = [price * (1 - i*0.01) for i in range(1, 10)]

for level in grid_levels:
    # 在每个网格价位挂限价单
    standx order create --symbol BTCUSDT --side buy --type limit --qty 0.1 --price {level}

2.3 现货成本平均 (DCA)

策略 说明 支持程度
定投 定期定额买入 ✅ 限价单 + cron 定时执行
智能加仓 价格下跌时加倍买入 ✅ 条件判断 + 订单执行
减仓策略 价格上涨时分批卖出 ✅ 分批限价单

实现方式:

# Cron 定时执行
0 8 * * * standx order create --symbol BTCUSDT --side buy --type limit --qty 0.01 --price 67000

2.4 止盈止损策略

策略 说明 支持程度
固定止盈止损 开仓时设置固定比例 ✅ 需外部脚本监控
追踪止损 价格向有利方向移动后更新止损 ✅ WebSocket 监控 + 订单修改
条件单 触发条件时执行订单 ✅ 限价单 + 外部逻辑

实现方式:

# 监控持仓,自动止损
position = get_position()
if position.upnl < -100:  # 亏损 100 USDT
    standx order create --symbol BTCUSDT --side sell --type market --qty {position.qty}

三、可支持的自动做市策略

3.1 基础做市 (Market Making)

策略 说明 支持程度
双边做市 同时挂买卖单获取价差 ✅ 限价单 + 订单簿数据
区间做市 只在指定价格区间挂单 ✅ 限价单 + 条件判断
市商价差 紧跟盘口价差 ✅ WebSocket depth 实时更新

实现方式:

# 获取订单簿数据
depth = standx market depth --symbol BTCUSDT --json
best_bid = depth.bids[0].price
best_ask = depth.asks[0].price

# 在买卖盘口各挂一单
spread = best_ask - best_bid
if spread > 10:  # 价差大于 10 USDT
    standx order create --symbol BTCUSDT --side buy --type limit --qty 0.1 --price {best_bid + 1}
    standx order create --symbol BTCUSDT --side sell --type limit --qty 0.1 --price {best_ask - 1}

3.2 资金费率套利 (Funding Arbitrage)

策略 说明 支持程度
跨所套利 低价买入,高价卖出 ✅ 市场数据支持
期现套利 合约与现货价差套利 ✅ funding rate 数据
资金费率套利 收取资金费率同时对冲 ✅ funding 数据

实现方式:

# 获取资金费率
standx market funding --symbol BTCUSDT

# 正资金费率时做多,负资金费率时做空
# 同时在现货市场对冲

3.3 动态做市

策略 说明 支持程度
自适应价差 根据波动率调整买卖价差 ✅ K 线计算波动率
成交量加权 根据成交量调整挂单量 ✅ 实时交易数据
冰山订单 隐藏真实订单量 ⚠️ 需 API 支持

四、策略实现架构

┌─────────────────────────────────────────────────────────┐
│                    策略引擎 (Python/JS)                  │
├─────────────────────────────────────────────────────────┤
│  1. 数据采集                                             │
│     standx stream price --symbol BTCUSDT               │
│     standx market depth --symbol BTCUSDT               │
│     standx account positions                           │
├─────────────────────────────────────────────────────────┤
│  2. 信号计算                                             │
│     - 技术指标 (MA, RSI, Bollinger)                    │
│     - 策略逻辑 (网格、套利、条件)                        │
│     - 风险管理 (止损、仓位)                              │
├─────────────────────────────────────────────────────────┤
│  3. 执行层                                              │
│     standx order create ...                            │
│     standx order cancel ...                            │
│     standx order cancel-all ...                        │
└─────────────────────────────────────────────────────────┘

五、推荐实现的 MVP 策略

优先级 策略 复杂度 风险
⭐⭐⭐ 网格交易
⭐⭐⭐ 趋势跟踪 (均线交叉)
⭐⭐ 止盈止损机器人
⭐⭐ DCA 定投 极低
双边做市 中高
资金费率套利

六、后续扩展

  1. 策略配置文件: standx bot run --config strategy.yaml
  2. 内置策略库: 提供常用策略模板
  3. 回测功能: standx backtest --strategy grid --symbol BTCUSDT
  4. 模拟交易: standx bot paper trade

总结

standx-cli 现有的命令和 WebSocket 能力可以支持:

  • ✅ 限价单/市价单创建和取消
  • ✅ 实时价格和订单簿监控
  • ✅ 持仓和账户余额查询
  • ✅ K 线数据分析

核心限制:

  • 目前没有内置策略引擎,需要外部脚本调用 CLI
  • 订单执行延迟依赖 CLI 调用速度
  • 建议使用 Python/Node.js 脚本作为策略引擎

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions