如何基于Modified MACD的PineScript在TradingView中创建Strategy Tester?
基于Modified MACD代码创建TradingView策略测试器
要把这段显示Modified MACD交叉线的指标代码改成可回测的策略脚本,按以下步骤调整即可:
核心修改要点
- 替换入口函数:把开头的
study()换成strategy(),这是TradingView策略脚本的专属入口,还可设置初始资金、手续费等测试参数。 - 定义交易信号:基于绿线(MACD线)和红线(信号线)的交叉生成操作信号:
- 金叉:绿线上穿红线 → 开多单
- 死叉:绿线下穿红线 → 开空单(或平掉现有多单后开空)
- 添加执行指令:用
strategy.entry()和strategy.close()实现自动开平仓逻辑。
修改后的完整策略代码
//@version=2 strategy("ModMACD 交叉策略测试", shorttitle="MODMACD Strategy", overlay=false, initial_capital=10000, commission_type=strategy.commission.percent, commission_value=0.1) p = close len = input(8, minval=1, title="MACD线周期") f = (1.414*3.14159)/len a = exp(-f) c2 = 2*a*cos(f) c3 = -a*a c1 = 1-c2-c3 ssmooth = c1*(p+p[1])*0.5+c2*nz(ssmooth[1])+c3*nz(ssmooth[2]) len2 = input(13, minval=1, title="信号线周期") f2 = (1.414*3.14159)/len2 a2 = exp(-f2) c22 = 2*a2*cos(f2) c32 = -a2*a2 c12 = 1-c22-c32 ssmooth2 = c12*(p+p[1])*0.5+c22*nz(ssmooth2[1])+c32*nz(ssmooth2[2]) macd = (ssmooth - ssmooth2)*10000000 len3 = input(3, minval=1, title="信号线平滑周期") f3 = (1.414*3.14159)/len3 a3 = exp(-f3) c23 = 2*a3*cos(f3) c33 = -a3*a3 c13 = 1-c23-c33 ssmooth3 = c13*(macd+macd[1])*0.5+c23*nz(ssmooth3[1])+c33*nz(ssmooth3[2]) // 定义交易信号 long_signal = crossover(macd, ssmooth3) short_signal = crossunder(macd, ssmooth3) // 执行策略:金叉开多、平空;死叉开空、平多 if (long_signal) strategy.entry("Long", strategy.long) strategy.close("Short") if (short_signal) strategy.entry("Short", strategy.short) strategy.close("Long") // 保留原指标绘图 plot(macd, color=green, linewidth=2) plot(ssmooth3, color=red, linewidth=2)
策略测试操作流程
- 将上述代码复制到TradingView的Pine编辑器,点击「添加到图表」。
- 切换到图表顶部的「Strategy」标签页,可自定义测试参数:
- 调整初始资金、手续费比例
- 选择测试的时间范围、K线周期
- 查看绩效报告(胜率、盈亏比、最大回撤等核心数据)
- 通过「Strategy Tester」面板,还能测试不同参数组合,优化策略表现。
内容的提问来源于stack exchange,提问作者Rajesh TeXnicians
相关产品推荐
相关产品推荐

