0 评论

0 收藏

分享

[笔记] 爱交易内置指标解读(MACD)

  1. short = input(title="快线长度", type="number", value=12);
  2. long = input(title="慢线长度", type="number", value=26);
  3. signal = input(title="信号长度", type="number", value=9);
  4. source = input(title="来源", type="source", value="close");

  5. dif = ema(source, short) - ema(source, long);
  6. dea = ema(dif, signal);
  7. bar = (dif - dea) * 2;

  8. draw(bar, title="MACD", color=bar>0?(ref(bar, 1) >= bar?"#0BAC4B":"#0BAC4B99"):(ref(bar, 1) >= bar?"#ED5141":"#ED514199"), style="histogram");
  9. draw(dif, title="DIFF", color="#D1D1D1");
  10. draw(dea, title="DEA", color="#F9EE30");
复制代码
这段代码是使用TScript编写的一个MACD指标,用于在爱交易平台上绘制MACD指标图表,用于爱交易平台上的技术分析。


该指标通过计算快线EMA(short)和慢线EMA(long)之间的差异(dif),以及根据dif的移动平均线EMA(signal)计算出MACD柱状图(bar)。
其中,MACD柱状图的颜色和上一根柱状图的比较结果有关,DIFF是快线EMA和慢线EMA之间的差异,DEA是DIFF的移动平均线。

该指标的作用是显示市场的趋势和势头,可以用于判断价格走势的方向和力度。
当MACD柱状图上穿零轴时,说明市场呈现出强劲的上升势头;
当MACD柱状图下穿零轴时,说明市场呈现出强劲的下降势头。
此外,当DIFF线和DEA线上穿或下穿时,也可以作为买入或卖出信号的参考。



下方是T语言MACD指标的代码解析注释
  1. # 定义快线EMA长度输入框,初始值为12
  2. short = input(title="快线长度", type="number", value=12);
  3. # 定义慢线EMA长度输入框,初始值为26
  4. long = input(title="慢线长度", type="number", value=26);
  5. # 定义信号线EMA长度输入框,初始值为9
  6. signal = input(title="信号长度", type="number", value=9);
  7. # 定义来源输入框,初始值为收盘价
  8. source = input(title="来源", type="source", value="close");

  9. # 计算快线EMA值
  10. fast_ema = ema(source, short)
  11. # 计算慢线EMA值
  12. slow_ema = ema(source, long)
  13. # 计算DIF值,即快线EMA值减去慢线EMA值
  14. dif = fast_ema - slow_ema
  15. # 计算DEA值,即DIF的signal周期EMA值
  16. dea = ema(dif, signal)
  17. # 计算MACD柱值
  18. bar = (dif - dea) * 2

  19. # 绘制MACD柱
  20. draw(bar, title="MACD", color=bar>0?(ref(bar, 1) >= bar?"#0BAC4B":"#0BAC4B99"):(ref(bar, 1) >= bar?"#ED5141":"#ED514199"), style="histogram")
  21. # 绘制DIF曲线
  22. draw(dif, title="DIFF", color="#D1D1D1")
  23. # 绘制DEA曲线
  24. draw(dea, title="DEA", color="#F9EE30")
复制代码
注释中的内容主要解释了每一行代码的作用和意义,包括输入框定义、EMA计算、MACD柱计算和绘制等操作。



这部分代码用于设置MACD指标柱状图的颜色,具体使用了三目运算符(ternary operator)的形式。三目运算符通常用于简洁地表达if-else语句的形式,其形式为:

  1. condition ? expression if true : expression if false
复制代码
在这个MACD指标柱状图颜色的代码中
condition部分是 bar > 0,即当前柱状图值大于0;
expression if true部分是 (ref(bar, 1) >= bar ? "#0BAC4B" : "#0BAC4B99"),即如果前一天的柱状图值大于等于当前柱状图值,那么颜色为"#0BAC4B",否则颜色为"#0BAC4B99"
expression if false部分是 (ref(bar, 1) >= bar ? "#ED5141" : "#ED514199"),即如果前一天的柱状图值大于等于当前柱状图值,那么颜色为"#ED5141",否则颜色为"#ED514199"

因此,整个代码的含义是,如果当前柱状图值大于0且前一天柱状图值大于等于当前柱状图值,则颜色为"#0BAC4B",否则为"#0BAC4B99";如果当前柱状图值小于等于0且前一天柱状图值大于等于当前柱状图值,则颜色为"#ED5141",否则为"#ED514199"。


回复

举报 使用道具

全部回复
暂无回帖,快来参与回复吧
ususdt
管理员
主题 74
回复 19
粉丝 23