在Tradeview中编译以下代码时,出现以下错误。基本上,我正在尝试使用EMA / SMA字符串来计算MACD。
第20行:输入“ ema”不匹配,期望“行尾没有连续行”
有人可以让我知道我在这里想念什么吗?有没有更好的方法来编写此代码?
此外,如果if-else语句中可以有多行,还是我应该只有一个内衬?
study("MACD BB - PRD")
//MACD Inputs
//---------------------------------------------------------------
fastLength = input(defval=12, title="MACD.FastPeriod", minval=1, maxval=50, step=1)
slowLength = input(defval=26, title="MACD.SlowPeriod", minval=1, maxval=200, step=1)
signalLength= input(defval=9, title="MACD.SignalLength", minval=1, maxval=100, step=1)
macdMode = input(defval="EMA", title="MACD.AverageMode", options=["EMA","SMA"])
//Bollinger Bands Inputs
//---------------------------------------------------------------
bbPeriod = input(defval=9, title="MACD.SignalLength", minval=1, maxval=100, step=1)
bbMultipler = input(defval=1, title="MACD.SignalLength", minval=1, maxval=10, step=0.1)
bbMode = input(defval="EMA", title="BollingerBands.AverageMode", options=["EMA","SMA"])
//---------------------------------------------------------------
// MACD calculation
macd = if (macdMode == "EMA")
ema(close, fastLength) - ema(close, slowLength) // line20
else
sma(close, fastLength) - sma(close, slowLength)
答案 0 :(得分:1)
您的问题是缩进。您必须将if语句主体内部的代码移动4个空格或1个制表符。
// MACD calculation
macd = if (macdMode == "EMA")
ema(close, fastLength) - ema(close, slowLength) // line20
else
sma(close, fastLength) - sma(close, slowLength)
if-else语句中可以有多行吗? 只有一个班轮?
是的
TradingView的Pine Script Tutorial可能会为您提供帮助。