Pine script 在脚本中将浮点值转换为Int值

Pine script 在脚本中将浮点值转换为Int值,pine-script,Pine Script,您好,我正在尝试包括这种类型的移动平均线(弹性交易量加权移动平均线) 进入我的指示器(VWGSV),其中上穹窿必须取代vwma功能 //@version=4 study(shorttitle="VWGSV", title="Greatest swing value",overlay=true) src = input(open) lenght = input(4, minval=1 ,title="lenght") multi = input (1.8,title="multiplier")

您好,我正在尝试包括这种类型的移动平均线(弹性交易量加权移动平均线)

进入我的指示器(VWGSV),其中上穹窿必须取代vwma功能


//@version=4
study(shorttitle="VWGSV", title="Greatest swing value",overlay=true)
src = input(open)
lenght = input(4, minval=1 ,title="lenght")
multi = input (1.8,title="multiplier")
hx= if src>close[1]
    close[1]
else
    src
lx= if src<close[1]
    close[1]
else
    src
hg= (high-hx)
lg= (lx-low)

bgsv = (vwma(hg,lenght))*multi+hx
sgsv= lx-(vwma(lg,lenght))*multi
plot(bgsv,offset=1, color=color.green)
plot(sgsv,offset=1, color=color.red)

我想是因为我试图积分的公式给了我一个浮点值,但我需要它是整数,我试图以某种方式将它转换成整数,但没有成功。
请帮帮我,我需要以某种方式得到如所附图片所示的结果,我不确定我是否理解您的问题,因为每个定义的整数没有小数。例如,如果您希望结果显示为2.00,可以先转换为整数,然后再转换为浮点,并用2位小数表示数字。但很明显,这个数字又是浮动的

为了使整数脱离浮点数,您是否尝试过
round()
函数


使用了圆形函数,一切都很好

//@version=4
study(shorttitle="EVWGSV", title="Greatest swing value elastic volume weighted version by BackPackRack",overlay=true)
src = input(open)
lenght = input(4, minval=1 ,title="lenght")
multi = input (1.8,title="multiplier")
volumeSum = sum(volume, lenght)
hx= src>close[1] ? close[1] : src
lx= src<close[1] ? close[1] : src
hg= (high-hx)
lg= (lx-low)
hevwma = 0.0
levwma = 0.0
hevwma := ((volumeSum - volume) * nz(hevwma[1]) + volume * hg) / volumeSum
levwma := ((volumeSum - volume) * nz(levwma[1]) + volume * lg) / volumeSum
rhevwma=round(hevwma)
rlevwma=round(levwma)
mrlevwma=rhevwma*multi
mrhevwma=rlevwma*multi
bgsv = mrhevwma+hx
sgsv= lx-mrlevwma
plot(bgsv,offset=1, color=color.green)
plot(sgsv,offset=1, color=color.red)
/@version=4
研究(shorttitle=“EVWGSV”,title=“BackbackRack的最大摆动值弹性体积加权版本”,overlay=true)
src=输入(打开)
长度=输入(4,最小值=1,title=“长度”)
多=输入(1.8,title=“乘数”)
体积um=总和(体积、长度)
hx=src>关闭[1]?关闭[1]:src

lx=srci尝试使用round函数,但没有改变最终结果,可能是语法错误,我对这种语言不熟悉。请用round()函数粘贴代码,我将在tradingview中尝试,看看结果是什么样的,这是我在图片attachedHi中发布的结果的近似值,脚本是正确的,只是我将用单行格式替换hx和lx的定义,例如:
hx=src>close[1]?关闭[1]:src
当使用
round()
包装
bgsv
sgsv
的整个定义时,结果是一个整数。除此之外,我再也帮不上忙了,因为还不清楚你想要实现什么。我建议您通过绘制每个中间变量来调试代码,这样您就可以发现哪里出了问题。
//@version=4
study(shorttitle="VWGSV", title="Greatest swing value",overlay=true)
src = input(open)
lenght = input(4, minval=1 ,title="lenght")
multi = input (1.8,title="multiplier")
volumeSum = sum(volume, lenght)
hx= if src>close[1]
   close[1]
else
   src
lx= if src<close[1]
   close[1]
else
   src
hg= (high-hx)
lg= (lx-low)
hevwma = 0.0
levwma = 0.0
hevwma := ((volumeSum - volume) * nz(hevwma[1]) + volume * hx) / volumeSum
levwma := ((volumeSum - volume) * nz(levwma[1]) + volume * lx) / volumeSum
bgsv = hevwma*multi+hx
sgsv= lx-levwma*multi
plot(series=bgsv,offset=1, color=color.green)
plot(series=sgsv,offset=1, color=color.red) 
hevwma = 0.0
levwma = 0.0
hevwma := ((volumeSum - volume) * nz(hevwma[1]) + volume * hx) / volumeSum
levwma := ((volumeSum - volume) * nz(levwma[1]) + volume * lx) / volumeSum
bgsv = round(hevwma)*multi+hx
sgsv= lx-round(levwma)*multi
//@version=4
study(shorttitle="EVWGSV", title="Greatest swing value elastic volume weighted version by BackPackRack",overlay=true)
src = input(open)
lenght = input(4, minval=1 ,title="lenght")
multi = input (1.8,title="multiplier")
volumeSum = sum(volume, lenght)
hx= src>close[1] ? close[1] : src
lx= src<close[1] ? close[1] : src
hg= (high-hx)
lg= (lx-low)
hevwma = 0.0
levwma = 0.0
hevwma := ((volumeSum - volume) * nz(hevwma[1]) + volume * hg) / volumeSum
levwma := ((volumeSum - volume) * nz(levwma[1]) + volume * lg) / volumeSum
rhevwma=round(hevwma)
rlevwma=round(levwma)
mrlevwma=rhevwma*multi
mrhevwma=rlevwma*multi
bgsv = mrhevwma+hx
sgsv= lx-mrlevwma
plot(bgsv,offset=1, color=color.green)
plot(sgsv,offset=1, color=color.red)