Tradeview:pinescript错误:期望“行尾没有行连续”

时间:2019-03-22 06:10:56

标签: pine-script

在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)

1 个答案:

答案 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可能会为您提供帮助。