czsc入门5: Tick RawBar(原始k线) NewBar (新K线)

如果说 BI (笔)和 FX (分型)是高楼大厦,那 Tick 、 RawBar 和 NewBar 就是地基和砖块。

我们按数据的 颗粒度从细到粗 ,也就是数据处理的流水线顺序来讲解。

1. Tick:最原始的交易原子(已过时)

定位 :这是最微观的数据单位,代表交易所撮合的每一笔成交(或快照)。

  • 通俗理解 :就像超市收银台打印的小票,上面记录了"几点几分,卖了什么,多少钱,多少个"。

  • 代码现状 : 请注意! 在 czsc 的这个文件中, Tick 类已经被标记为 @deprecated (已弃用) 。

    • 代码明确写着: reason="请使用 RawBar" 。
    • 这意味着在目前的 czsc 体系中,尽量不要直接用这个类来写策略,只需知道它是最基础的数据概念即可。
  • 代码引用 : objects.py:L24

2. RawBar:原始 K 线(标准砖块)

定位 :这是我们最常见的 K 线(蜡烛图) 。它把一段时间内的 Tick 数据打包汇总了。

  • 通俗理解 :不管这一分钟内发生了多少笔交易,我只关心 4 个价格:

    • O (Open) :开盘价(一开始卖多少钱)
    • H (High) :最高价(最高卖到多少)
    • L (Low) :最低价(最低跌到多少)
    • C (Close) :收盘价(最后定格在多少)
  • 核心属性 :

    • symbol : 股票代码。
    • dt : 时间。
    • freq : 周期(比如 1分钟、5分钟、日线)。
    • open / close / high / low : 四大金刚价格。
    • vol (成交量) / amount (成交额)。
  • 有趣的计算属性 : RawBar 提供了几个方便的属性来描述这根 K 线的"长相":

    • solid (实体) :身体部分。 abs(open - close) ,涨跌的幅度。
    • upper (上影线) :头上的辫子。最高价和实体顶部的距离,代表上方的压力。
    • lower (下影线) :脚下的腿。最低价和实体底部的距离,代表下方的支撑。
  • 代码引用 : objects.py:L32

3. NewBar:去包含 K 线(精炼砖块)

定位 :这是 缠论特有 的 K 线。它是 RawBar 经过"去除包含关系"处理后生成的。

  • 为什么要发明 NewBar ?

    • 在缠论中,如果两根 K 线一根长、一根短,且短的完全被长的包在里面(或者反过来),这叫"包含关系"。
    • 缠论认为这种包含关系是"犹豫不决"的表现,为了分析趋势,需要把它们 合并成一根新的 K 线 ,简化走势。
    • NewBar 就是合并处理后的结果。 所有的后续分析(分型、笔、线段)都是基于 NewBar 进行的,而不是原始的 RawBar 。
  • 核心属性 :

    • 它长得和 RawBar 几乎一样(也有 OHLC 价格),但它的价格是经过合并计算的。
    • elements : 基因记忆 。
      • 这是一个列表,里面装了 构成这根 NewBar 的原始 RawBar 。
      • 比如:有时候 1 根 NewBar 对应 1 根 RawBar (没有包含关系)。
      • 有时候 1 根 NewBar 对应 3 根 RawBar (发生了连续包含合并)。
      • 这个设计保证了数据不丢失,你随时可以查到这根"合成 K 线"背后真实的原始走势。
  • 代码引用 : objects.py:L64

总结:数据的一生

在 czsc 库中,数据流转的过程是这样的:

  1. Tick (原子):市场上发生的每一笔交易。
    ⬇️ (聚合)
  2. RawBar (原始素材):我们看到的普通 K 线图。
    ⬇️ (缠论包含处理)
  3. NewBar (核心建材):去除了噪声的 K 线,用于画图分析。
    ⬇️ (寻找顶底)
  4. FX (分型):3 根 NewBar 构成的山顶或山谷。
    ⬇️ (连接顶底)
  5. BI (笔):一段完整的上涨或下跌趋势。
    一句话总结 : RawBar 是给人看的普通 K 线, NewBar 是给缠论算法看的精简 K 线,而 Tick 在这里只是个过客。
相关推荐
老鼠只爱大米3 分钟前
LeetCode经典算法面试题 #46:全排列(回溯、交换、剪枝等五种实现方案详细解析)
算法·leetcode·剪枝·回溯·全排列·stj算法
Dovis(誓平步青云)16 分钟前
《滑动窗口算法:从 “暴力遍历” 到 “线性高效” 的思维跃迁》
运维·服务器·数据库·算法
_OP_CHEN43 分钟前
【算法基础篇】(五十七)线性代数之矩阵乘法从入门到实战:手撕模板 + 真题详解
线性代数·算法·矩阵·蓝桥杯·c/c++·矩阵乘法·acm/icpc
天天爱吃肉82181 小时前
【跨界封神|周杰伦×王传福(陶晶莹主持):音乐创作与新能源NVH测试,底层逻辑竟完全同源!(新人必看入行指南)】
python·嵌入式硬件·算法·汽车
im_AMBER1 小时前
Leetcode 114 链表中的下一个更大节点 | 删除排序链表中的重复元素 II
算法·leetcode
xhbaitxl1 小时前
算法学习day38-动态规划
学习·算法·动态规划
多恩Stone1 小时前
【3D AICG 系列-6】OmniPart 训练流程梳理
人工智能·pytorch·算法·3d·aigc
历程里程碑1 小时前
普通数组----轮转数组
java·数据结构·c++·算法·spring·leetcode·eclipse
pp起床1 小时前
贪心算法 | part02
算法·leetcode·贪心算法
sin_hielo1 小时前
leetcode 1653
数据结构·算法·leetcode