aastock港股如何深入分析?用十档盘口与逐笔成交

举报
yd_274281270 发表于 2026/10/22 20:17:08 2026/10/22
【摘要】 在 AASTOCKS 看完港股报价,若还想判断买卖盘厚度、观察成交节奏或复盘价格变化,需要把盘口和逐笔记录接入程序。TickDB 的港股盘口支持买卖各最多十档,逐笔查询返回成交价格、数量、方向与时间,并可订阅实时成交。本文用深度失衡和成交样本均价说明这些数据的用途,同时区分最近成交窗口与可按日期回查的历史数据。

aastock港股如何深入分析?用十档盘口与逐笔成交

摘要: 在 AASTOCKS 看完港股报价,若还想判断买卖盘厚度、观察成交节奏或复盘价格变化,需要把盘口和逐笔记录接入程序。TickDB 的港股盘口支持买卖各最多十档,逐笔查询返回成交价格、数量、方向与时间,并可订阅实时成交。本文用深度失衡和成交样本均价说明这些数据的用途,同时区分最近成交窗口与可按日期回查的历史数据。

搜索 aastock,打开 AASTOCKS(阿思达克)查看港股报价,是观察市场的一个起点。但一个最新价无法回答更细的问题:当前买卖报价之间隔了多远?买一背后的几档还有多少挂单?某次价格跳动是一笔小额成交,还是一段密集成交的结果?

这些问题分别需要盘口深度和逐笔成交。TickDB 对港股应用的具体价值,在于把买卖各最多十档的价格与数量、可查询的逐笔成交明细,以及实时 depth / trade 推送提供给程序,让看盘观察能够继续进入计算、告警和记录复盘。本文围绕这一数据用途展开,不把 AASTOCKS 当作待抓取的数据源,也不暗示两家存在接口合作。

十档盘口让报价从一个数变成价格梯度

最新成交价描述已经发生的成交,盘口描述当前可见的买卖报价。只看买一和卖一,可以计算最优价差;继续看买二至买十、卖二至卖十,才能观察靠近市场价格的挂单分布是否集中、是否存在明显的数量落差。

当前港股 depth 文档标注每侧最高十档,REST 返回 bids 和 asks,每档包含价格与数量;也可以通过 WebSocket depth 持续接收更新。买盘按价格降序、卖盘按价格升序排列。这里的“十档”是每侧上限,不保证每次都有十档;空档、流动性不足或休市时可能返回更少。

这带来两个可计算的观察量。第一个是最优价差,即卖一减买一。第二个是当前可见深度失衡,即“买方档位数量之和减卖方档位数量之和”,再除以两边数量之和。比较时应固定档位范围并核对数量单位;若只有部分档位,要报告实际档数,不能把结果命名为完整十档指标。

图 1:十档盘口支持对多档挂单进行计算。数值为构造示例,数量单位一致,不代表任何股票的实时报价。

例如买方十档数量合计 12,000、卖方合计 8,000,则失衡值为 (12000−8000)/(12000+8000)=0.20。它表示这一可见范围内买方数量较多,可以作为观察盘口变化的输入;它并不意味着价格将上涨 20%,也不能证明大单一定会成交。挂单可以撤销,十档报价也没有提供逐笔委托身份或完整订单队列。

还可以在“当前挂单保持不变”的假设下,按卖一、卖二等逐档累加,估算一个给定买入数量会涉及哪些可见价位。这是静态深度测算,不能当成实际成交价格或滑点保证;超出已返回档位覆盖的数量,应标记无法估算。

逐笔明细补上实际成交的过程

盘口回答“现在挂着什么”,逐笔成交回答“实际成交了什么”。港股逐笔记录包括成交 ID、价格、数量、方向和毫秒时间戳。程序可以据此统计样本内成交笔数、数量分布、成交间隔,以及成交量加权平均价,进一步判断一段价格变化对应怎样的成交活动。

一个简单构造样本包含三笔成交:价格 100.00、数量 100;价格 100.20、数量 200;价格 100.10、数量 100。样本均价为 (100×100+100.20×200+100.10×100)/400=100.125。这个结果只描述这三笔成交,不能称为全天均价。研究时需要同时保留样本最早与最晚时间,避免把“最近若干笔”误读成“最近一分钟”。

方向字段有 buy、sell、neutral 三类。可以分别统计各类数量,但应保留中性成交,也不要把方向标签直接改写为“主力净流入”。成交方向分类本身不提供交易者身份;具体分类方法和数量单位仍需核对。

历史逐笔明细需要分清服务范围。 当前公开 REST 文档支持查询成交记录,默认 100 笔、最多 1000 笔,列出的参数为 symbol、limit、type。已核验材料没有给出按起止日期回查多天成交的参数、分页方式或逐笔保留年限。因此,本文把它用于最近已发生的成交查询,不把它宣传为任意历史日期的全量逐笔下载。

若目标是今后持续复盘,可以订阅 WebSocket trade 并由应用归档。港股推送中的成交位于 data.trades 数组,一条消息可能包含多笔,不能只取第一笔。历史 K 线的可查询范围也不能直接当作历史逐笔的保留范围。

图 2:逐笔查询与实时订阅可进入同一个复盘流程。归档是应用实现的能力,断线缺口仍需检查。

组合盘口与成交才能解释更多现象

假设卖一数量减少了,只看两次盘口无法判断它是被成交消耗,还是被撤走。加入相邻时间段的成交记录后,可以检查该价位附近是否出现相应成交;若同时观察到报价补充,还能研究挂单消耗和补充的节奏。这是多份证据的对照,不能凭一次数量变化断言某个参与者在吸筹或出货。

这里需要防止时间上的误用。盘口与成交来自不同消息或请求,必须保留各自原始时间和本地接收时间。只有确认时间含义可比较后,才能做近似对齐;不要拿成交之后的盘口倒推成交之前的可见流动性。缺少事件序列、消息存在间隔时,也不能把近似对齐包装成精确还原。

对于港股看板、流动性观察工具和成交异常提示,这正是结构化行情接口的价值:应用可以把同一标的的最新价、盘口状态和成交事件分开存储,再按自己的问题计算。它比只在程序里显示一个价格多了实际分析空间;这不等于断言 AASTOCKS 的其他产品没有相应功能。

查询十档盘口并计算成交样本指标

下面的 Python 3 示例分别查询 700.HK 的盘口与最近成交,输出实际档数、价差、可见深度失衡、成交笔数、样本时间范围和样本均价。代码只依赖标准库,保存为 hk_depth_trades.py,在环境中设置 TICKDB_API_KEY 后运行。

当前官方权限表将 depth 和 trades 标为基础版及以上可用、免费版不可用;具体仍取决于账户权益与标的覆盖。程序不是撮合器,也没有实现流式归档。

import json

import os

from decimal import Decimal

from urllib.parse import urlencode

from urllib.request import Request, urlopen



def fetch(path, **params):

url = "https://api.tickdb.ai/v1/market/" + path

request = Request(url + "?" + urlencode(params), headers={

"X-API-Key": os.environ["TICKDB_API_KEY"]

})

with urlopen(request, timeout=10) as response:

body = json.load(response)

if body.get("code") != 0:

raise ValueError("API business error")

return body["data"]



def positive(value):

number = Decimal(str(value))

if not number.is_finite() or number <= 0:

raise ValueError("Invalid price or quantity")

return number



def summarize(depth, tape):

if depth["symbol"] != "700.HK" or tape["symbol"] != "700.HK":

raise ValueError("Unexpected symbol")

bids = [(positive(p), positive(q)) for p, q in depth["bids"]]

asks = [(positive(p), positive(q)) for p, q in depth["asks"]]

if not 0 < len(bids) <= 10 or not 0 < len(asks) <= 10:

raise ValueError("Empty or unexpected depth")

bid_qty = sum(q for p, q in bids)

ask_qty = sum(q for p, q in asks)

unique = {}

for trade in tape["trades"]:

key = (trade["id"], trade["timestamp"])

if key in unique and unique[key] != trade:

raise ValueError("Conflicting trade records")

unique[key] = trade

trades = list(unique.values())

amounts = [(positive(t["price"]), positive(t["quantity"]))

for t in trades]

total = sum(q for p, q in amounts)

vwap = sum(p * q for p, q in amounts) / total if total else None

times = [t["timestamp"] for t in trades]

return {

"bid_levels": len(bids), "ask_levels": len(asks),

"spread": str(min(p for p, q in asks) - max(p for p, q in bids)),

"visible_depth_imbalance": str((bid_qty - ask_qty) / (bid_qty + ask_qty)),

"depth_timestamp_ms": depth["timestamp"],

"trade_count": len(trades),

"trade_window_ms": [min(times), max(times)] if times else None,

"sample_vwap": str(vwap) if vwap is not None else None,

}



if __name__ == "__main__":

depth = fetch("depth", symbol="700.HK", type="stock")

tape = fetch("trades", symbol="700.HK", type="stock", limit=1000)

print(json.dumps(summarize(depth, tape), indent=2))


这里特意保留两套时间:盘口的 depth_timestamp_ms 和成交样本的 trade_window_ms。两个请求先后执行,不是同一时刻的原子快照,因此代码仅分别统计,不把两者硬拼成因果结论。sample_vwap 是返回记录的成交量加权均价;visible_depth_imbalance 只覆盖实际返回档位。

示例在单次响应内用成交 ID 与时间戳组合处理完全重复记录,冲突记录直接报错。这不是对成交 ID 跨日唯一性的假设。长期归档还应确认 ID 作用域,保存原始记录和来源,并单独处理更正、重复消息与断线区间。数量无效、盘口为空等情况会报错;时间有效性、市场状态、异常价差和账户限流需要在生产应用中进一步处理。

代码和文中计算已用构造样本离线验证,未进行带密钥的在线查询或持续订阅实测。公开文档核对日期为 2026 年 10 月 22 日,示例数值不是真实行情。

接入后的验收要落在分析任务上

选择港股行情服务时,应检查要研究的标的能否返回预期档位、逐笔记录是否含所需字段、订阅后如何保存和重建自己的样本窗口。请求了 1000 笔不代表返回了 1000 笔,更不代表覆盖完整交易日;持续订阅也不自动证明没有漏数。

TickDB 在本文场景中的优势,是把十档报价梯度与逐笔成交过程都变成可计算的数据输入,并提供查询和订阅两种接入方式。对需要从 AASTOCKS 日常看盘走向自主分析的人,这能支撑盘口观察、成交节奏统计和自有记录复盘。实际选用时,再按标的、权限、时效和历史覆盖需求逐项验证。

资料依据:AASTOCKS 官方网站;TickDB 港股行情说明、盘口深度、逐笔成交及 WebSocket depth / trade 文档。核对日期:2026 年 10 月 22 日。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。