我有若干个有效的交易系统。 一般来说,我不会在每次即时报价来临时都计算指标,而是用直线来替代。 但有时我会偶发一些想法,这些想法会改进我对价格图的看法,甚至完全改变我对交易的认知,尽管这需要一些计算。
本文介绍了一些与最流行、最容易理解的指标 — 移动平均线(МА)有关的思路。
在其最简单的版本中,指标值的计算采用众所周知的平均方程:
MA[i] = (Price[i]+Price[i+1]+...+Price[i+MAPeriod])/MAPeriod
此处,MA[i] 是顺序的下一个元素,曲线上的一个点。 Price[i] — 当前价格,MAPeriod — 参与均值计算的元素数量。
当然,我们可以自由地应用任何价格:开盘价、收盘价、最高价、最低价、加权平均值、等等。 标准指标允许选择所计算的价格和计算方法,包括比简单平均值更复杂的方法... 在提供示例的同时,我留下了选择计算方法的机会。 然而,这对于领会所研究方法背后的思路并不重要。 无论我们使用的是“简单”移动平均线(SMA)、指数移动平均线(EMA)、还是任何其它方法,所有示例都非常有效。 因此,默认情况下,所有屏幕截图选用 SMA,并采用默认指标设置。 如果未另行说明,所有指标均采用收盘价。 您可以随意地采用这些参数来改进它们。
当谈到单一曲线时,我通常会采用默认的周期值 10 根柱线。 如果在单个指标中用到多条具有不同周期的曲线,则应用的周期通常为 5 和 8。 我不会用到超过两条不同周期的曲线。
颜色如下:红色 — 快速;橙色 — 慢速... 如果我还用到了其它东西,我会在本中明确说明。
模板指标
我创建了若干个指标,为各种方式形成的曲线当作可视化信号触发器。 它们基于一个模板,与标准示例中的标准 MACD 非常相似。 我相信,在这里出示整个模板代码并无意义。
每个指标都用到一个或多个移动平均值,有时还会用到 ATR 来定义到箭头的距离,或绘制通道线。
有时,如果指标位于图表窗口中,则更容易把思路可视化;而有时则需要把指标置于单独的窗口中。 这是通过属性之一完成的。 以下属性可用于图表窗口内的指标:
#property indicator_chart_window
如果指标置于单独的窗口中,则应用以下属性:
#property indicator_separate_window
在这种情况下,我有时会用以下属性来设置窗口高度:
#property indicator_height 100
当然,属性值是可以更改的。
缓冲区名称的末尾有 “Buffer” 后缀。 例如,标准箭头缓冲区将被称为 ArrowDownBuffer 和 ArrowUpBuffer。 如果指标绘制线条,则根据线条函数来命名缓冲区。
我定义的所有全局变量都有 “ext” 前缀(如果它们不是缓冲区)。 例如,extATRData 是一个全局变量,包含 ATR 指标的源数据。
我在使用缓冲区时,不会切换到“序列”模式。
在初始化期间,我将所有空值设置为 0:
PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0); PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0); PlotIndexSetDouble(2,PLOT_EMPTY_VALUE,0);
因此,我们只需要显示箭头或线条来示意条件触发,即全部保留在主循环之中。
我试图避免指标重绘,因此在零号烛条上执行绘制,而用于计算的数据均基于已收盘的烛条。
价格穿越指标线(趋势方向)
在最简单的情况下,只有“自然”形式的均线独演。 我确信,大家都在屏幕上看到过类似的画面:

图例 1. 简单均线
在大多数情况下,交易者参考 MA 来跟踪趋势。 趋势可以定义为一组烛条均位于曲线的一侧。 例如,如果有两根以上的烛条收盘价在该曲线以下,则趋势为熊市,此刻应考虑做空交易了。 如果收盘价高于该曲线,趋势为牛市,此刻应考虑做多... 如果价格越越曲线,我们就见证到趋势的变化。
允许我们跟踪均线突破的条件可能如下所
本文介绍了一些与最流行、最容易理解的指标 — 移动平均线(МА)有关的思路。
在其最简单的版本中,指标值的计算采用众所周知的平均方程:
MA[i] = (Price[i]+Price[i+1]+...+Price[i+MAPeriod])/MAPeriod
此处,MA[i] 是顺序的下一个元素,曲线上的一个点。 Price[i] — 当前价格,MAPeriod — 参与均值计算的元素数量。
当然,我们可以自由地应用任何价格:开盘价、收盘价、最高价、最低价、加权平均值、等等。 标准指标允许选择所计算的价格和计算方法,包括比简单平均值更复杂的方法... 在提供示例的同时,我留下了选择计算方法的机会。 然而,这对于领会所研究方法背后的思路并不重要。 无论我们使用的是“简单”移动平均线(SMA)、指数移动平均线(EMA)、还是任何其它方法,所有示例都非常有效。 因此,默认情况下,所有屏幕截图选用 SMA,并采用默认指标设置。 如果未另行说明,所有指标均采用收盘价。 您可以随意地采用这些参数来改进它们。
当谈到单一曲线时,我通常会采用默认的周期值 10 根柱线。 如果在单个指标中用到多条具有不同周期的曲线,则应用的周期通常为 5 和 8。 我不会用到超过两条不同周期的曲线。
颜色如下:红色 — 快速;橙色 — 慢速... 如果我还用到了其它东西,我会在本中明确说明。
模板指标
我创建了若干个指标,为各种方式形成的曲线当作可视化信号触发器。 它们基于一个模板,与标准示例中的标准 MACD 非常相似。 我相信,在这里出示整个模板代码并无意义。
每个指标都用到一个或多个移动平均值,有时还会用到 ATR 来定义到箭头的距离,或绘制通道线。
有时,如果指标位于图表窗口中,则更容易把思路可视化;而有时则需要把指标置于单独的窗口中。 这是通过属性之一完成的。 以下属性可用于图表窗口内的指标:
#property indicator_chart_window
如果指标置于单独的窗口中,则应用以下属性:
#property indicator_separate_window
在这种情况下,我有时会用以下属性来设置窗口高度:
#property indicator_height 100
当然,属性值是可以更改的。
缓冲区名称的末尾有 “Buffer” 后缀。 例如,标准箭头缓冲区将被称为 ArrowDownBuffer 和 ArrowUpBuffer。 如果指标绘制线条,则根据线条函数来命名缓冲区。
我定义的所有全局变量都有 “ext” 前缀(如果它们不是缓冲区)。 例如,extATRData 是一个全局变量,包含 ATR 指标的源数据。
我在使用缓冲区时,不会切换到“序列”模式。
在初始化期间,我将所有空值设置为 0:
PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0); PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,0); PlotIndexSetDouble(2,PLOT_EMPTY_VALUE,0);
因此,我们只需要显示箭头或线条来示意条件触发,即全部保留在主循环之中。
我试图避免指标重绘,因此在零号烛条上执行绘制,而用于计算的数据均基于已收盘的烛条。
价格穿越指标线(趋势方向)
在最简单的情况下,只有“自然”形式的均线独演。 我确信,大家都在屏幕上看到过类似的画面:

图例 1. 简单均线
在大多数情况下,交易者参考 MA 来跟踪趋势。 趋势可以定义为一组烛条均位于曲线的一侧。 例如,如果有两根以上的烛条收盘价在该曲线以下,则趋势为熊市,此刻应考虑做空交易了。 如果收盘价高于该曲线,趋势为牛市,此刻应考虑做多... 如果价格越越曲线,我们就见证到趋势的变化。
允许我们跟踪均线突破的条件可能如下所