ususdt 发表于 2023-3-15 14:10:37

爱交易内置指标解读(MACD)

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

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

draw(bar, title="MACD", color=bar>0?(ref(bar, 1) >= bar?"#0BAC4B":"#0BAC4B99"):(ref(bar, 1) >= bar?"#ED5141":"#ED514199"), style="histogram");
draw(dif, title="DIFF", color="#D1D1D1");
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指标的代码解析注释
# 定义快线EMA长度输入框,初始值为12
short = input(title="快线长度", type="number", value=12);
# 定义慢线EMA长度输入框,初始值为26
long = input(title="慢线长度", type="number", value=26);
# 定义信号线EMA长度输入框,初始值为9
signal = input(title="信号长度", type="number", value=9);
# 定义来源输入框,初始值为收盘价
source = input(title="来源", type="source", value="close");

# 计算快线EMA值
fast_ema = ema(source, short)
# 计算慢线EMA值
slow_ema = ema(source, long)
# 计算DIF值,即快线EMA值减去慢线EMA值
dif = fast_ema - slow_ema
# 计算DEA值,即DIF的signal周期EMA值
dea = ema(dif, signal)
# 计算MACD柱值
bar = (dif - dea) * 2

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



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

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"。


页: [1]
查看完整版本: 爱交易内置指标解读(MACD)