富途牛牛默认的自带指标库比较多,

  1. 摆动指标
  2. 趋势指标
  3. 超买超卖指标
  4. 成交量指标
  5. 量价指标
  6. 能量指标
  7. 其他指标
  8. 反趋势指标
  9. 压力支撑指标

这里研究下富途牛牛的趋势指标MACD的代码

MACD 指数平滑移动平均线

指标解读

默认的指标代码如下

1
2
3
4
DIF:EMA(CLOSE,SHORT)-EMA(CLOSE,LONG),COLORFF8D1E;
DEA:EMA(DIF,M),COLOR0CAEE6;
MACD:(DIF-DEA)*2,COLORSTICK,COLORE970DC;
ZERO:0,COLORRED;

EMA是指数平滑移动平均线 Exponential Moving Average,

指数移动平均值是以指数式递减加权的移动平均

对序列 {xn} 定义其截至第n项的周期为N的指数移动平均$$EMA_N(x_n)$$为

公式1

$$EMA_N(x_n)=\frac{2}{N+1}\sum\limits_{i=1}^\infty(\frac{N-1}{N+1})^kx_{n-k}$$

我们补充定义 x0 = x-1 = x-2 = 。。。 = x1, 可以得到 $$EMA_N(x1) = x1$$ 每天价格的权重系数以指数等比形式缩小。时间越靠近当今时刻,它的权重越大。说明 EMA 函数对近期的价格加强了权重比,更能及时反映近期价格波动情况。参考 百度百科 EMA (指数移动平均值)

由公式1可以推导出来如下的递推计算式: $$EMA_N(x_n)=\frac{2x_n+(N-1)EMA_N(x_{n-1})}{N+1}$$

另外可以推导 $$EMA_M[EMA_N(x_n)] = EMA_N[EMA_M(x_n)]$$

回到MACD指标

1
DIF:EMA(CLOSE,SHORT)-EMA(CLOSE,LONG),COLORFF8D1E;

其中参数SHORT, LONG, 分别为12,26

EMA(CLOSE,12)是短期快速指数移动平均线

EMA(CLOSE,26)是远期慢速指数移动平均线

二者的差是DIF, 快线,也是MACD线,图示一般是白色线

1
DEA:EMA(DIF,M),COLOR0CAEE6

使用参数9,对DIF计算EMA得到DEA慢线,

也叫做signal线,图示一般是黄色线

1
MACD:(DIF-DEA)*2,COLORSTICK,COLORE970DC;

计算快线和慢线的差值,乘以2得到MACD,

也就是柱状图的高度

调整配色、线宽参考

指标应用

MACD的意义和多移动平均线基本相同, 即由均线的离散、聚合特征表示多空状态和可能的价格发展变化趋势

  1. DIFF、DEA均为正,DIFF向上突破DEA,买入信号
  2. DIFF、DEA均为负,DIFF向下跌破DEA,卖出信号
  3. DEA线与K线发生背离,行情反转信号
  4. 分析MACD柱状线,由红变绿(正变负),卖出信号;由绿变红,买入信号
  5. MACD在0界限以上为多头市场,反之为空头市场
  6. 日线、周线、月线、分钟线配合运用效果会更好

另外,MACD适合趋势分析,适合中长线的投资者。 对短线震荡波动行情不适用, 对于短时剧烈的波动,也反应不出来。

对MACD指标用法更多可以参考 百度百科MACD指标

推荐 ALexander Elder 亚历山大·埃尔德著〈以交易为生〉第四章, 计算机化的技术分析, 对移动均线、MACD、一些其他趋势指标、震荡指标、随机指标、相对强弱指标都有不错的论述.

重要一点再提示下,

MACD是趋势指标,适用于中长期投资

短期震荡波动不合适.

默认指标改进

这里尝试根据

  1. DIFF、DEA均为正,DIFF向上突破DEA,买入信号
  2. DIFF、DEA均为负,DIFF向下跌破DEA,卖出信号
  3. DEA线与K线发生背离,行情反转信号。
  4. 分析MACD柱状线,由红变绿(正变负),卖出信号;由绿变红,买入信号。
  5. MACD在0界限以上为多头市场,反之为空头市场。

来在MACD图中,显示“买入”,“卖出”文字提示

打开指标管理, 可以查询MACD快速定位MACD指标,

打开指标代码区, 添加如下代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
P:= DIF>0  AND  DEA>0  AND CROSS(DIF, DEA)
DRAWTEXT( P,  DIF*0.9,  '买'),  COLORWHITE, LINETHICK5;

Q:= DIF<0  AND  DEA<0  AND CROSS(DEA, DIF)
DRAWTEXT( Q,  DIF*0.9,  '卖'),  COLORGREEN, LINETHICK3;

R:= CROSS(MACD,0)
DRAWTEXT( R,  DIF*0.9,  '买'),  COLORWHITE, LINETHICK5;


S:= CROSS(0, MACD)
DRAWTEXT( S,  DIF*0.9,  '卖'),  COLORGREEN, LINETHICK3;

解读

1. DIFF、DEA均为正,DIFF向上突破DEA,买入信号

1
2
P:= DIF>0  AND  DEA>0  AND CROSS(DIF, DEA)
    DIFF为正    DEA为正      DIFF向上突破DEA

满足上面这个条件的, 在合适的位置显示文字’买入',

这里用的白色, 稍微粗一点的字体

1
DRAWTEXT( P,  DIF*0.9,  '买'),  COLORWHITE, LINETHICK5;

2. DIFF、DEA均为负,DIFF向下跌破DEA,卖出信号

1
2
Q:= DIF<0  AND  DEA<0  AND CROSS(DEA, DIF)
    DIFF为负    DEA为负     DIFF向下突破DEA(注意CROSS函数里面两个参数的顺序,和上面反过来了)

满足这个条件的,在合适的位置显示文字’卖出’, 这里用的绿色, 稍微细一点的字体。

1
DRAWTEXT( Q,  DIF*0.9,  '卖'),  COLORGREEN, LINETHICK3;

效果示例如下:

4. 分析MACD柱状线,由红变绿(正变负),卖出信号;由绿变红,买入信号。

1
2
3
4
5
6
R:= CROSS(MACD,0) {MACD 由负变正}
DRAWTEXT( R,  DIF*0.9,  '买'),  COLORWHITE, LINETHICK5;


S:= CROSS(0, MACD) {MACD 由正变负}
DRAWTEXT( S,  DIF*0.9,  '卖'),  COLORGREEN, LINETHICK3;

参考