返回文章列表
May 16, 2025
5 分钟阅读

交易K线揭秘:从原始成交到市场分析的基石

K线
交易
聚合
可视化
研究

K线图在交易中无处不在——从专业终端到加密货币机器人。但什么是"K线"?我们如何从原始、混乱的成交流中构建它?本文将详细解析流程,突出棘手的边界情况,并分享一个交互式可视化工具,让你实时观察K线的形成。

试试可视化工具:candle-trade-visualizer.vercel.app


摘要

  • K线 是对固定时间区间(如1分钟)价格和成交量的简明总结。
  • 聚合 是将成交流转化为K线的过程。
  • 边界情况(重复、缺口、乱序成交)对准确性至关重要。
  • 可视化工具:动手操作,实时观察K线形成!

什么是K线?

K线(或蜡烛图)是对特定周期(如1分钟、1小时、1天)市场活动的总结。每根K线包含:

  • 开盘价 — 区间内第一笔成交的价格
  • 最高价 — 最高成交价
  • 最低价 — 最低成交价
  • 收盘价 — 区间内最后一笔成交的价格
  • 成交量 — 总成交量
  • 成交笔数 — 成交次数

看似简单,实则细节决定成败。


从成交到K线:聚合流程

1. 原始成交流

每毫秒,交易所都会产生成交:

{
  "timestamp": 1714000000000,
  "price": 50000.0,
  "amount": 0.1,
  "side": "Buy"
}

每秒可能有成千上万笔成交,每笔仅记录买卖信息。

2. 按时间分组

构建K线时,需按时间分组。例如,12:00:00到12:00:59的所有成交归为同一根1分钟K线。

算法:

  • 对每笔成交,确定其所属区间(截断时间戳)。
  • 若该区间已有K线,更新其最高/最低/收盘/成交量。
  • 否则,创建新K线。

3. 边界情况:为何并不简单

  • 乱序成交:成交可能因网络延迟等原因乱序到达。
  • 重复:同一成交可能出现多次。
  • 边界成交:成交恰好落在区间边界怎么办?
  • 缺口:某些区间无成交怎么办?

健壮的聚合逻辑必须处理所有这些情况。在行业中,这对准确分析和算法交易至关重要。


示例:K线聚合代码

以Rust为例(任何语言逻辑类似):

for trade in trades {
    let ts = truncate_to_tf(trade.timestamp, timeframe);
    if let Some(candle) = current_candle {
        if candle.timestamp == ts {
            // 更新 high/low/close/volume
        } else {
            // 保存当前K线,开始新K线
        }
    } else {
        // 第一根K线
    }
}

注意: 为保证聚合正确,成交流应按时间排序。否则需先排序,或用能处理乱序的算法。


为什么重要?

  • 图表:所有主流平台(TradingView、Binance等)都基于K线绘制图表。
  • 算法交易:策略基于K线而非原始成交。
  • 分析:指标、信号、统计均基于OHLCV数据。
  • AGI与自动化:机器分析需严格、无歧义的数据。

亲自体验:交互式K线可视化

我们开发了交互式可视化工具:
👉 candle-trade-visualizer.vercel.app

  • 手动或随机添加成交。
  • 观察其如何聚合为K线。
  • 尝试不同周期和边界情况。

结论

K线是所有市场分析的基础。每根简单K线背后,是对错误和边界情况高度鲁棒的聚合过程。构建系统时务必处理所有细节,否则图表和策略可能误导你。

试试可视化工具,深入理解细节,让你的K线更真实!


链接:


如果你觉得本文有用,欢迎分享给同事,让市场数据对所有人更透明!

引文

@software{soloviov2025tradingcandlesdemystified,
  author = {Soloviov, Eugen},
  title = {交易K线揭秘:从原始成交到市场分析的基石},
  year = {2025},
  url = {https://marketmaker.cc/zh/blog/post/trading-candles-demystified},
  version = {0.1.0},
  description = {交易K线如何由原始成交构建?本文解释聚合过程、边界情况,并提供交互式可视化工具,实时观察K线的形成。}
}

MarketMaker.cc Team

量化研究与策略

在 Telegram 中讨论