量化交易软件:构建三线突破图表指标
介绍
之前的文章研究了 点数图, Kagi 以及 Renko 图表。持续发表了一系列关于 20 世纪图表的文章,这次我们要谈的是三线突破图表,或者准确地说,关于通过程序代码来实现它。有关这张图表来源的信息非常少。我猜想它始于日本。在美国学到它们是在 1994 年出版的 Steve Nison 的 "Beyond Candlesticks(超越蜡烛条)" 。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
除了上面提到的图表,并未谈及三线突破图表的构建时间范围。它基于确定时间帧中最后形成的收盘价格, 它可以过滤相对以前行情的小幅价格波动。
在 Steve Nison 著作 "Beyond Candlesticks(超越蜡烛条)" 中描述了 11 种绘制这个图表的原理(p. 185). 我已经将它们合并成三条。
-
原理一: 为了构造,选择初始价格, 依据市场涨跌, 绘制阳线或阴线。它将标记出一个新的最低或最高。
-
原理二: 当新的价格下跌低于最低或超过最高, 我们绘制阴线或阳线。
-
原理三: 绘制与之前移动方向相反的线, 必须经过最低或最高。在同一时刻, 如果有多于一个的相同的线, 则最低或最高的计算基于它们中的两根 (如果有两根连续相同线) 或三根 (如果有三根或更多连续相同线)。
赫兹量化近距离看一个经典的基于历史数据的构造图表例子 (图例. 1)。

编辑切换为居中
添加图片注释,不超过 140 字(可选)
图例.1 构造一个三线突破图表示例 (EURUSD H1 27.06.2014)
图例. 1 在左侧呈现了一个蜡烛条图表,以及右侧的三线突破图表。这是 EURUSD 图表, 时间帧为 H1。图表的开始日期是 27.06.2014 起始价位 1.3613 (烛线的收盘时间 00:00), 则烛线 (01:00) 收盘于 1.3614, 形成了三线突破图表的第一根阳线。随后的空头烛线 (02:00) 形成一个阳线, 收盘于 1.3612 (收盘价低于之前的最低)。
后来多头烛条将价格推动到 1.3619 (03:00) 标记位置, 形成了一个新高,以及柱线。位于 04:00 的下跌烛线未能低于最低,并且它没有影响构造。位于 05:00 的烛线收盘于 1.3623, 标记了一个新高 (新的阳线)。
现在延续下降趋势, 赫兹量化需要经过两个最低 (1.3613), 但多头未放弃它们的位置,因此形成了一个新高 1.3626 (06:00)。后来多头试图扭转上行趋势两个小时, 但是相同的趋势持续,到达并创新高 1.3634 (09:00)。多头领先。现在绘制一根阳线, 经过三个最低价 (1.3626; 1.3623 和 1.3619)。
正如我们看到的, 在随后的三小时,空头在市场中占优, 下跌到位置 1.3612 (12:00)。它体现为一个新的阳线。但是,随后的五小时表明多头正在赢回自己的位置,并带领市场重回 1.3641,经过前高 1.3626,并在 17:00 形成新的阳线。空头在 18:00 未能超越前低,并且在随后五小时多头带领市场到达 1.3649,每小时形成一根新的阳线。
图表构造基础
在赫兹量化得到代码之前,我们要说说指标本身,并找出是什么使它与众不同。三线突破很明显,就像其它指标,是专为高效率的市场分析,以及寻找新策略提供便利。我相信你一定想知道,此处是否有什么新奇。事实上,还真有一些。该指标可以改变计算的价格类型。它覆盖了所有四个标准价格条。构造图表的经典设计是仅针对一个类型,现代型则迎合所有四种价格类型 (开盘, 最高, 最低和收盘)。它修改了经典图表构造的外观,通过添加 "阴影" 使得它们看起来像日本蜡烛条,即加入了图表的视觉观感。
现代版本的特性还可以设置当数据缺失时优先同步价格数据。
图表构造的现代类型如图例 2 所示:

编辑切换为居中
添加图片注释,不超过 140 字(可选)
图例.2 修改后的基于四种价格类型图表
由于现代构造结合了四种不同价格类型的三线突破图表,它可以很自然地找到价格之间的差异。为了避免它,及时同步数据是必需的。价格同步带来两个变化: 完整 (图例. 2 右侧) 和局部 (图例. 2 左侧)。完整同步代表一个过滤的局部, 其中所有数据绘制在图表上,而且缺失数据被设置中的指定优选价格替代。在完整同步模式中,缺失数据被简单地省略,并且仅绘制数据完整的烛条。
另一项创新是周期分离,可便利的切分信号。正如您所知,周期分隔符可以在图表设置中启用。在指标中可以根据指定设置改变时间帧。不像赫兹量化中的图表, 通过垂直虚线分隔周期, 在此指标中通过一条变色垂直线表示(蜡烛, 图例. 3):

编辑切换为居中
添加图片注释,不超过 140 字(可选)
图例.3 指标中的周期分隔符
另外附加实现了技术指标 iMA, 其依据主图表的价格建立, 但是它可以及时与指标数据同步。因此,数据由均线过滤 (图例. 4):

编辑切换为居中
添加图片注释,不超过 140 字(可选)
图例.4 内部均线
该指标还有一个特点,可以设置绘图的最小移动点数,以及所需反转的线数。它也是滤波器的作用。
指标代码
指标的算法相当简单,它有三个阶段:复制数据,基于该复制数据进行计算,以及填充指标缓冲器(构造图表基于所接收的数据)。代码依据它们的内部以及输入数据联系被划分功能。让我们近距离观查这些代码。
1. 指标输入参数
该指标的序言中包含了图形结构的声明。在指标中它们有两个: 图表 "ABCTB" (DRAW_COLOR_CANDLES) 和附加均线 "LINE_TLB" (DRAW_LINE)。因此,有六个缓冲器。以下 enum(枚举) 类型用于提高界面设置以及设置本身:
-
magic_numb - 魔幻号类型为 long。它是一个唯一数字来表示指标。如果有必要时,可以转换类型为 string 并带修正参数;
-
time_frame - 计算时间范围, 类型 ENUM_TIMEFRAMES, 它是主要参数 (指标时间帧);
-
time_redraw - 图表更新周期, 类型 ENUM_TIMEFRAMES。它是图表进行重计算时采用的时间帧。为了快速重绘图表,在键盘上按下 "R" 键 - 指标的集成控制;
-
first_date_start - 起始日期, 类型 datetime。主要参数,是复制数据和绘图的起始点;
-
chart_price - 进行计算的价格类型 (0-收盘价, 1-开盘价, 2-最高价, 3-最低价)。对于经典构造图表,必须选择一个价格类型。正如已经提到的那样,当修改构造启用时,该参数将被忽略;
-
step_min_f - 新列的最小步长 (>0, 类型 int) 或绘制线所需的跳跃距离;
-
line_to_back_f - 显示反转的线数 (>0, 类型 int)。经典类型建议为三线用于显示反转;
-
chart_type - 图表构造类型 (0-经典, 1-修改), 类型 select。它是构造类型的开关;
-
chart_color_period - 当开始新周期时的变化颜色 (boolean 类型)。用于在新周期开始时改变线颜色;
-
chart_synchronization - 仅在完整同步基础上构造图表 (boolean 类型, 若为 true, 则在构造图表之前执行完整同步,删除所有缺失数值);
-
chart_priority_close - 收盘价优先 (类型 select, 有四种变化。它表示局部同步时以收盘价优先,并忽略完整的;
-
chart_priority_open - 开盘价优先。此处同样应用;
-
chart_priority_high - 最高价优先。此处同样应用;
-
chart_priority_low - 最低价优先。此处同样应用;
-
ma_draw - 绘制均线 (boolean 类型, 若为 true, 则绘制 均线);
-
ma_price - 构造均线的价格类型, 可以是 ENUM_APPLIED_PRICE 之一;
-
ma_method - 构造类型, 可以是 ENUM_MA_METHOD 之一;
-
ma_period - 均线 周期;
然后我们声明缓存区数组, 用于计算的变量和结构。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
