0

我在使用 nATRPeriod type=float 选项时遇到错误 参数 'defval' 的类型不匹配:预期的 const 字符串,但得到了文字浮点数;参数“类型”的类型不匹配:预期的 const 字符串,但得到 type_error;

'literal float' 类型的未知参数 'minval';未声明的标识符 'nATRMultip';NA 类型的值不能分配给没有 type 关键字定义的变量。请帮忙!

//@version=3
study(title="IntraScalp", shorttitle="IntraScalp", overlay = true)

//Modified by @TradeEasy
////////////////////////////////////////////////////////////////////////////////INPUTS

nATRPeriod      = input(21, "Period")
nATRMultip      = input(6.3, "Multiplier",type=float, minval=0.5, maxval=1000, step=0.1)

/////////////////////////////////////////////////////////////////////////////////ATR

xATR = atr(nATRPeriod)
nLoss = nATRMultip * xATR
xATRTrailingStop = na
xATRTrailingStop := 
 iff(close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), close - nLoss),
  iff(close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), close + nLoss), 
   iff(close > nz(xATRTrailingStop[1], 0), close - nLoss, close + nLoss))) 
                       
pos = na 
pos := 
 iff(close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0), 1, 
  iff(close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0)))
 
color = pos == -1 ? red: pos == 1 ? lime : blue 
//patr=plot(xATRTrailingStop, color=color, linewidth=2, title="ATR Trailing Stop", transp=0)

// Determine if we are currently LONG
isLong = false
isLong := nz(isLong[1], false)

// Determine if we are currently SHORT
isShort = false
isShort := nz(isShort[1], false)

//Trading
// Buy only if the buy signal is triggered and we are not already long
LONG = not isLong and pos == 1


// Sell only if the sell signal is triggered and we are not already short   
SHORT = not isShort and pos == -1


if (LONG)
    isLong := true
    isShort := false

if (SHORT)
    isLong := false
    isShort := true

barcolor(isLong ? lime : isShort ? red : na)


// Show Break Alerts
plotshape(SHORT, title="Sell", style=shape.labeldown, location=location.abovebar, size=size.normal, text="Sell", transp=0, textcolor = white, color=red, transp=0)
plotshape(LONG, title="Buy", style=shape.labelup, location=location.belowbar, size=size.normal, text="Buy", textcolor = white, color=green, transp=0)


// === /PLOTTING ===
// Send alert to TV alarm sub-system
alertcondition(LONG,title="Sell",message="Sell")
alertcondition(SHORT,title="BuY",message="Buy")
alertcondition(SHORT,title="BuY",message="Buy")
alertcondition(SHORT,title="BuY",message="Buy")

////////////////////////////////////////////////////////////////////////////////VWMA

len2 = input(100, minval=1, title="Smooth")
src = input(close, title="Source")
out = vwma(src, len2)

avg1=avg(out, xATRTrailingStop)
plot(avg1, color=aqua, transp=0, title="ATR")
4

1 回答 1

0

您在第 60 行有一个错误。与您的问题中描述的内容没有任何共同之处。

//@version=3
study(title="Help (IntraScalp)", shorttitle="IntraScalp", overlay = true)

//Modified by @TradeEasy
////////////////////////////////////////////////////////////////////////////////INPUTS

nATRPeriod      = input(21, "Period")
nATRMultip      = input(6.3, "Multiplier",type=float, minval=0.5, maxval=1000, step=0.1)

/////////////////////////////////////////////////////////////////////////////////ATR

xATR = atr(nATRPeriod)
nLoss = nATRMultip * xATR
xATRTrailingStop = na
xATRTrailingStop := 
 iff(close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), close - nLoss),
  iff(close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), close + nLoss), 
   iff(close > nz(xATRTrailingStop[1], 0), close - nLoss, close + nLoss))) 
                       
pos = na 
pos := 
 iff(close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0), 1, 
  iff(close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0)))
 
color = pos == -1 ? red: pos == 1 ? lime : blue 
//patr=plot(xATRTrailingStop, color=color, linewidth=2, title="ATR Trailing Stop", transp=0)

// Determine if we are currently LONG
isLong = false
isLong := nz(isLong[1], false)

// Determine if we are currently SHORT
isShort = false
isShort := nz(isShort[1], false)

//Trading
// Buy only if the buy signal is triggered and we are not already long
LONG = not isLong and pos == 1


// Sell only if the sell signal is triggered and we are not already short   
SHORT = not isShort and pos == -1


if (LONG)
    isLong := true
    isShort := false

if (SHORT)
    isLong := false
    isShort := true

barcolor(isLong ? lime : isShort ? red : na)


// Show Break Alerts
plotshape(SHORT, title="Sell", style=shape.labeldown, location=location.abovebar, size=size.normal, text="Sell", transp=0, textcolor = white, color=red)
plotshape(LONG, title="Buy", style=shape.labelup, location=location.belowbar, size=size.normal, text="Buy", textcolor = white, color=green, transp=0)


// === /PLOTTING ===
// Send alert to TV alarm sub-system
alertcondition(LONG,title="Sell",message="Sell")
alertcondition(SHORT,title="BuY",message="Buy")
alertcondition(SHORT,title="BuY",message="Buy")
alertcondition(SHORT,title="BuY",message="Buy")

////////////////////////////////////////////////////////////////////////////////VWMA

len2 = input(100, minval=1, title="Smooth")
src = input(close, title="Source")
out = vwma(src, len2)

avg1=avg(out, xATRTrailingStop)
plot(avg1, color=aqua, transp=0, title="ATR")

在此处输入图像描述

于 2021-02-04T16:04:06.527 回答