defval、type 和 nATRMultip 值出错

问题描述

我收到 nATRPeriod type=float 选项的错误参数“defval”的类型不匹配:预期的常量字符串,但得到了文字浮点数;参数“type”处的类型不匹配:预期的常量字符串,但得到 type_error;

类型为“文字浮点数”的未知参数“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],min(nz(xATRTrailingStop[1]),close + nLoss),iff(close > nz(xATRTrailingStop[1],close - nLoss,close + nLoss))) 
                       
pos = na 
pos := 
 iff(close[1] < nz(xATRTrailingStop[1],0) and close > nz(xATRTrailingStop[1],1,iff(close[1] > nz(xATRTrailingStop[1],0) and close < nz(xATRTrailingStop[1],-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,text="Buy",color=green,transp=0)


// === /PLOTTING ===
// Send alert to TV alarm sub-system
alertcondition(LONG,message="Sell")
alertcondition(SHORT,title="BuY",message="Buy")
alertcondition(SHORT,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,title="ATR")

解决方法

您在第 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],min(nz(xATRTrailingStop[1]),close + nLoss),iff(close > nz(xATRTrailingStop[1],close - nLoss,close + nLoss))) 
                       
pos = na 
pos := 
 iff(close[1] < nz(xATRTrailingStop[1],0) and close > nz(xATRTrailingStop[1],1,iff(close[1] > nz(xATRTrailingStop[1],0) and close < nz(xATRTrailingStop[1],-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,text="Buy",color=green,transp=0)


// === /PLOTTING ===
// Send alert to TV alarm sub-system
alertcondition(LONG,message="Sell")
alertcondition(SHORT,title="BuY",message="Buy")
alertcondition(SHORT,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,title="ATR")

enter image description here

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...