ITPub博客

首页 > IT职业 > IT生活 > 实战用美股数据api实现基于订单簿不平衡的短线交易策略并验证效果

实战用美股数据api实现基于订单簿不平衡的短线交易策略并验证效果

原创 IT生活 作者:数据日志簿 时间:2026-07-22 18:15:36 0 删除 编辑

开盘前那段时间我通常不怎么盯价格,而是更关注盘口跳动的密度变化。美股在流动性还没完全展开的时候,订单簿会出现一种很“松”的状态,挂单看起来很多,但真实成交力量并不均衡。这个阶段如果盯得久,会发现价格不是被推出来的,更像是被“抽走平衡”之后自然滑动。

订单簿不平衡到底在看什么

订单簿不平衡(Order Book Imbalance)说白了就是买卖双方在深度上的力量差。买一到买五和卖一到卖五的总量如果长期偏向一侧,短线价格更容易被带动。

但我更在意的是持续状态,而不是某一瞬间的数值。很多时候单点不平衡只是噪声,真正有意义的是连续几个tick都保持同方向偏移,这种结构才会对价格形成推动。

表达上可以压缩成一个很直接的关系:

  • bid_volume:买方深度

  • ask_volume:卖方深度

  • imbalance = (bid - ask) / (bid + ask)

数值本身不复杂,复杂的是它在时间轴上的稳定性。

数据从哪里来决定了信号质量

做这类策略最容易踩空的一点是数据来源不够细。很多美股数据api只给成交或者K线,盘口深度被压缩之后,所谓的不平衡就变成了“看起来合理但没有交易意义”的指标。

我后来直接用WebSocket去接tick级别数据,把每一次盘口更新当成状态变化,而不是采样点。这样才能看到挂单是怎么被吃掉、补回、再被打穿的过程,而不是最后那条K线的结果。

以 AllTick API 为例,通过WebSocket订阅可以拿到实时交易与盘口流:

import websocket
import json

url = "wss://apis.alltick.co/websocket-api/stock-websocket-interface-api/transaction-quote-subscription"

def on_message (ws, message):
    data = json.loads(message)
    print(data)

ws = websocket.WebSocketApp(url, >
ws.run_forever()

这一步的意义不在代码,而在于把市场从“结果视角”拉回到“过程视角”。

信号怎么变成交易动作

订单簿不平衡如果直接用来下单,很容易被噪声带偏,所以我做了一层很轻的过滤。只有在同一方向持续占优,同时成交没有明显衰减,才会认为结构在成立。

这个过程里不需要复杂模型,反而是简单规则更稳定。短线里真正重要的不是预测方向,而是确认“是否正在发生推进”。

执行上我会给一个时间窗口,比如30到90秒,如果信号持续存在就保持观察状态,一旦结构回到均衡区间就退出,不去等它走完。

回测和真实之间的落差

用K线去回测订单簿策略基本会失真,这一点很快就能感觉出来。K线把很多微观变化压平之后,信号会显得过于干净,回测曲线也会更漂亮,但实际交易完全不是同一个东西。

我做回测时直接用tick级别数据重建订单簿状态,每一次更新都模拟一次撮合变化。计算量更大,但能看到滑点、延迟、以及成交失败这些真实情况。

成本在这里影响非常直接,哪怕微小的手续费差异,长期都会把策略从可用推向不可用。

跑出来之后看到的结构

策略跑一段时间后,表现不是均匀的,而是集中在少数市场阶段。开盘波动大时信号更容易成立,盘中平稳阶段基本会变钝甚至失效。

单个标的表现也不稳定,换成多个标的做信号叠加之后,曲线反而更平滑一些。说明订单簿不平衡更像局部结构信号,而不是全局规律。

整个过程中,美股数据api只是把市场结构展开的工具,真正起作用的还是数据是否真实反映了微观变化。如果这一层不对,后面做再多计算也只是对噪声建模。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70048654/viewspace-3176518/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2025-12-10

  • 博文量
    47
  • 访问量
    46179