Pine Script中如何通过if语句动态切换趋势线并设置绘图颜色
修正后的可运行代码
// 可自行调整趋势确认周期参数 trendConfirmationLength = input.int(3, minval=1, title="趋势确认周期") trend_1 = ta.sma(close, 15) trend_2 = ta.sma(close, 30) // 趋势线选择逻辑:K线总数>=252个交易日(1年)用trend_1,否则用trend_2 trend = len(close) >= 252 ? trend_1 : trend_2 bearish = true for i = 0 to trendConfirmationLength - 1 bearish := bearish and (close[i] < trend[i]) bullish = not bearish // 配置趋势线颜色 c = bullish ? color.green : color.red // 绘制趋势线 plot(trend, title='Trend', color = c)
核心改动说明
- 调整了变量声明顺序:先完成趋势线的选择逻辑,再执行多空判断,解决原代码中先引用
trend变量后定义的编译错误 - 优化了趋势线选择逻辑:用三元运算符覆盖了K线长度大于等于252、小于252的所有情况,避免原代码边界条件(K线刚好252根)下
trend返回空值的问题 - 补充了缺失的
trendConfirmationLength变量声明,同时设为可调整的输入参数,适配不同的验证需求 - 补充了Pine Script v5的
ta命名空间引用,兼容最新版本语法
内容的提问来源于stack exchange,提问作者Jonathan S
相关产品推荐
相关产品推荐

