TradingView代码报错:无法将元组赋值给变量'macd'求助
问题解决:Pine Script中MACD赋值报错
错误原因
ta.macd()函数在Pine Script中返回的是三元组(包含MACD主线、信号线、柱状线三个值),你尝试把这个多值的元组直接赋值给单个变量macd,就会触发Invalid assignment. Cannot assign a tuple to a variable 'macd'错误。
解决方法
有两种方式可以处理这个问题:
1. 解构赋值(推荐,获取所有MACD组件)
将元组中的三个值分别赋值给不同变量,后续可以单独使用每个组件:
macd_line, signal_line, macd_histogram = ta.macd(close, macd_fast, macd_slow, macd_signal)
2. 索引取值(只获取单个组件)
如果你只需要MACD的某一个部分,可以通过索引直接提取(索引0对应MACD主线,1对应信号线,2对应柱状线):
// 示例:只获取MACD主线 macd = ta.macd(close, macd_fast, macd_slow, macd_signal)[0]
修正后的完整代码示例
// Inputs rsi_length = input.int(14, "RSI Length", minval=1) rsi_overbought = input.int(70, "RSI Overbought Level", minval=1, maxval=100) rsi_oversold = input.int(30, "RSI Oversold Level", minval=1, maxval=100) macd_fast = input.int(12, "MACD Fast Length", minval=1) macd_slow = input.int(26, "MACD Slow Length", minval=1) macd_signal = input.int(9, "MACD Signal Length", minval=1) // Indicators rsi = ta.rsi(close, rsi_length) // 解构赋值获取全部MACD组件 macd_line, signal_line, macd_histogram = ta.macd(close, macd_fast, macd_slow, macd_signal)
内容的提问来源于stack exchange,提问作者psy neex
相关产品推荐
相关产品推荐

