请求将旧版Pine均线脚本转换为V4/V5适配TradingView
Pine v5 转换后完整代码
//@version=5 indicator(title="3 Moving Averages", shorttitle="50,100,200 MAs", overlay=true) exponential = input(true, title="50,100,200 Exponential MA") src = close ma50 = exponential ? ta.ema(src, 50) : ta.sma(src, 50) ma100 = exponential ? ta.ema(src, 100) : ta.sma(src, 100) ma200 = exponential ? ta.ema(src, 200) : ta.sma(src, 200) plot(ma50, color=color.fuchsia, style=plot.style_line, title="MA50", linewidth=1) plot(ma100, color=color.green, style=plot.style_line, title="MA100", linewidth=1) plot(ma200, color=color.orange, style=plot.style_line, title="MA200", linewidth=1)
关键修改说明
- 强制添加版本声明:
//@version=5,这是Pine v5脚本的必填项,用于指定脚本版本 - 替换入口函数:将旧版的
study()改为indicator(),v4起TradingView废弃了study,统一使用indicator作为指标脚本入口 - 技术函数命名空间:v5中所有技术分析类函数(如
ema、sma)都需添加ta.前缀调用,明确归属技术分析模块 - 规范枚举参数:
- 颜色参数使用
color.xxx格式(如color.fuchsia),替代旧版直接写颜色名的写法 - 绘图样式使用
plot.style_line枚举值,替代旧版的line字符串参数
- 颜色参数使用
- 可选优化:修正了绘图标题的冗余前缀(将
MMA50改为MA50),更贴合指标实际含义
Pine v4 版本转换参考
如果需要兼容v4,修改点更少,代码如下:
//@version=4 indicator(title="3 Moving Averages", shorttitle="50,100,200 MAs", overlay=true) exponential = input(true, title="50,100,200 Exponential MA") src = close ma50 = exponential ? ema(src, 50) : sma(src, 50) ma100 = exponential ? ema(src, 100) : sma(src, 100) ma200 = exponential ? ema(src, 200) : sma(src, 200) plot(ma50, color=fuchsia, style=plot.style_line, title="MA50", linewidth=1) plot(ma100, color=green, style=plot.style_line, title="MA100", linewidth=1) plot(ma200, color=orange, style=plot.style_line, title="MA200", linewidth=1)
v4与v5的核心差异是无需给技术函数加ta.前缀,颜色可直接使用旧版写法。
内容的提问来源于stack exchange,提问作者Coding_curry
相关产品推荐
相关产品推荐

