介绍
赫兹量化点数图指标 和 Kagi 制图指标 描述了 点数图 和 "Kagi" 指标制图的原理。让我们来学习一种创建 图表的编程方式。
这个名字 "Renko" 是来自日本的一个词 "红砖",一种砖块。Renko 图表由一系列价格波动确定的砖块构建。当价格上涨, 一块向上的砖块放置在图表中, 当下跌则加一块向下的砖块。"Renko" 在日语中是 "步调缓慢" 的意思。此 Renko 图表大概是在 19 世纪出现在日本的某处。在美国和欧洲首次听到它,是在 1994,由 Steeve Nison 发表在他的书中 Beyond Candlesticks: New Japanese Charting Techniques - 超越蜡烛条: 新日本制图技术揭密。
此 Renko 图表如以上提及的那样,忽略了时间线,并只关注价格走势。不像点数图图表, 此 Renko 在新柱线中放置一块 "砖块" (在新的垂直平面), 其余的, 它们有通用创建方法: "砖块" 尺寸 ("点", "轮廓") 已经固定, 价格分析以及内在轮廓都用同样方式制作。
所以, Renko 图表是一组垂直柱线 ("砖块")。白色 (空心) 砖块用在趋势向上的时候, 而黑色 (实心) 砖块用在趋势下降时。构建由价格行为调整。取周期当前价格,与前一块砖的最高和最低比较 (白色或黑色)。如果股票收盘价高于它的开盘价, 绘制一块空心 (白色) 砖,其呈现出的实体底部是开盘价,实体顶部是收盘价。如果股票收盘价低于它的开盘价, 绘制一块实心 (黑色) 砖,其呈现出的实体顶部是开盘价,实体底部是收盘价。
图表的首块砖,依据价格行为绘制, 其柱线的开盘价取自前一块砖的最大最小值。
一个标准 Renko 图表的例子, 图例. 1:
编辑切换为居中
添加图片注释,不超过 140 字(可选)
图例. 1. 一个标准 Renko 图表的例
1. 制图例子
一个 Renko 图表是在收盘价的基础上绘制。首先, 选择时间帧和箱体尺寸。
在本例中使用 EURUSD (H4 时间帧), 以及一个 30 点的箱体尺寸。此 Renko 制图的结果从 03.01.2014 至 31.01.2014 (一个月左右) 显示在图例. 2 中, 在左边, 是给定时间帧的图表 (此处您可以看到砖块的水平延伸线), 在右边, 是 Renko 图表的结果:
添加图片注释,不超过 140 字(可选)
图例.2. 此为 Renko 绘图结果 EURUSD (H4, 箱体是 30 点)
让我们贴近观察图表原理。在图例. 2 中红色水平线根据价格的变化(30 点)显示每块砖的尺寸, 蓝色则指示感兴趣的实际日期。
如您图中所见,在 03.01.2014 结束时,一个蜡烛条的收盘价低于 1.3591,之前定义的价格范围 (红色水平线) 处于 1.3589 (标记价格), 因此在图表中创建一块向下的砖块。
之后价格横盘 (它并未收盘低于 1.3561 或高于 1.3651), 它开盘直到 20:00 10.01.2014 (蜡烛条创建在 16:00) 并收盘于 (高于 1.3651 标记价格) at 1.3663 (标记价格)。之后价格在 20:00 14.01.2014 (蜡烛条开盘于 16:00) 再次变为横盘, 此时它已经超越价格范围, 创建一块新砖并收盘于 1.3684。
然后您可以看到一个下探,价格四次突破图表的下降范围。在 12:00 23.01.2014 (蜡烛条开盘于 08:00) 此处一个向上突破两个价格范围, 反过来, 两块砖收盘于 1.3639。第一块砖清楚可见, 第二块砖则拉成一条长的垂直线 (由于和第一块砖并行开盘)。进一步构造则继续同样的原则。
2. Renko 绘图原理
当开发此指标时,所有函数均被尽可能的独立实现。其中一个主要的目的是最大限度地提高指标的潜能,更容易地进行市场分析。
计算并非在当前时间帧中进行, 即,时间帧是设置中被选择的, 并且不论指标在哪个时间帧启动, 它都显示设置的数据。它可以通过复制获取周期的数据至分离的缓存区数组来实现,之后进行计算,并填充指标输出缓冲器。
标准 Renko 图表构建于收盘价, 然而, 开盘价, 最高价, 最低价数值也用于改进分析。
由于在 Renko 图表中砖块的大小近似,比较有用的是了解更多动态的强烈价格行为驱动的市场点 (在少数砖块中)。出于这个目的,在砖块中有一个 (禁止的) 指示呈现一个小的垂直影线 (像 日本蜡烛条) , 表示选择时间帧柱线的最后一块砖的级别是升高或降低。
可以在主图之上构建 ZigZag,用来扩展图形分析。
图例. 3 展示指标的完整功能:
添加图片注释,不超过 140 字(可选)
图例 3. 此指标用于 EURUSD 图表 (日线, 步长是 25 点)
3. 指标代码和算法
指标代码相当庞大,它由 900 行构造。如前所述,函数的最大化分离,可能对理解算法变得复杂。一些来自以前文章的函数将作为基础。若在某些方面有误解,你可以参考 Kagi 制图建设指标 或者你可以给我发电子邮件。
每个函数的代码都将在文章中解释。所有函数均将顺便描述。
3.1. 指标输入参数
此 Renko 指标是不同颜色向上或向下砖块的范围。这个构造类型需要五个缓存区组合到一个 "彩色蜡烛条" 图形构造。剩下的四个缓冲区收集计算指标所需的数据。
取输入参数 (25), 分成组。
-
step - 砖块尺寸或步长;
-
type_step - 步长类型, 按点数或百分比 (后者的计算依据当前价);
-
magic_numb - 需要魔幻数字来分隔图形对象,并用于从图表中删除它们;
-
levels_number - 级别 (0- 无级别) 用来在指标窗口中分隔砖块;
-
levels_color - 指标窗口中的级别颜色
-
time_frame - 用来设置图表构建周期 (分析周期);
-
time_redraw - 图表更新时间;
-
first_date_start - 开始时间;
-
type_price - 价格构造类型: 收盘价 - 标准方法基于收盘价; 开盘价 - 开盘价格; 最高价 - 最大价格 以及 最低价 - 最小价格;
-
shadow_print - 如果您设置选项 true, 阴影表示致使砖块开盘的最大或最小价格;
-
filter_number - 用于图表反转的砖块值 (一个额外选项负责反转图表所需的砖块数量);
-
zig_zag - 用于在主图表上绘制 ZigZags (在主图表上额外绘制,以便于分析或者图表更新);
-
zig_zag_shadow - 用于根据最大和最小价格绘制 ZigZags (使用最接近的最大和最小价格来构建 zigzags 的端点);
-
zig_zag_width - ZigZag 的线宽;
-
zig_zag_color_up - ZigZag 上行线颜色;
-
zig_zag_color_down - ZigZag 下行线颜色;
-
square_draw - 用来在主图表上画砖块 (在此模式中您可以看到已开砖块的价格走势);
-
square_color_up - 上行砖块颜色;
-
square_color_down - 下行砖块颜色;
-
square_fill - 砖块着色;
-
square_width - 主图表中砖线宽度;
-
frame_draw - 用于绘制砖的边界 (此额外选项很少使用);
-
frame_width - 砖线宽度;
-
frame_color_up - 上行砖块边界颜色;
-
frame_color_down - 下行砖块边界颜色.
然后,代码声明缓冲区:五个主要的缓冲区用于图形绘制,其余四个用于保存设计和计算的数据。Price[] - 保存复制价格的缓存区,用来构建, Date[] - 保存复制数据的缓存区,用来在主图表上绘图, Price_high[] 和 Price_low[] - 保存最大最小数值的缓存区,用来在主图表上绘制 ZigZags。
在计算缓存区数组和辅助函数之后,声明变量: unc_draw_renko, func_draw_zig_zag, func_draw_renko_main_chart。它们将会在稍后解释。