简体   繁体   English

需要帮助将此 Pinescript 转换为 V5 TradingView

[英]Need Help Converting This Pinescript into V5 TradingView

So I have an old pinescript I believe v2 or v3 that I Need help converting into V5 as my knowledge of pinescript is very limited, but I can not do that auto convert to work because the values seem to be not converting or it has changed so much.所以我有一个旧的 pinescript 我相信 v2 或 v3 我需要帮助转换成 V5 因为我对 pinescript 的了解非常有限,但我不能自动转换工作因为值似乎没有转换或者它已经改变了所以很多。 Any assistance would be greatly appreciated.任何帮助将不胜感激。 Thank you!谢谢!

    study(title="MA", shorttitle="MA", overlay=true)
    src=close
    l =input(6, title="VMA Length") 
    std=input(false, title="Show Trend Direction")
    bc=input(false, title="Color bars based on Trend")
    k = 1.0/l
    pdm = max((src - src[1]), 0)
    mdm = max((src[1] - src), 0)
    pdmS = ((1 - k)*nz(pdmS[1]) + k*pdm)
    mdmS = ((1 - k)*nz(mdmS[1]) + k*mdm)
    s = pdmS + mdmS
    pdi = pdmS/s
    mdi = mdmS/s
    pdiS = ((1 - k)*nz(pdiS[1]) + k*pdi)
    mdiS = ((1 - k)*nz(mdiS[1]) + k*mdi)
    d = abs(pdiS - mdiS)
    s1 = pdiS + mdiS
    iS = ((1 - k)*nz(iS[1]) + k*d/s1)
    hhv = highest(iS, l) 
    llv = lowest(iS, l) 
    d1 = hhv - llv
    vI = (iS - llv)/d1
    vma = (1 - k*vI)*nz(vma[1]) + k*vI*src
    vmaC=(vma > vma[1]) ? green : (vma<vma[1]) ? red : (vma==vma[1]) ? blue : black 
    plot(vma, color=std?vmaC:black, linewidth=3, title="VMA")
    barcolor(bc?vmaC:na)

` `

In pinescript v5, you must declare you variable before calling it.在 pinescript v5 中,你必须在调用它之前声明你的变量。
So:所以:

pdmS = ((1 - k)*nz(pdmS[1]) + k*pdm)

doesn't work anymore, because you try to acces pdmS[1] before declaring it.不再起作用,因为您在声明它之前尝试访问 pdmS[1]。
Use 'var' to declare a variable with a value used only one the frst loop over your code.使用“var”来声明一个变量,其值仅在代码的第一个循环中使用。

Here is your code in v5:这是您在 v5 中的代码:

//@version=5
indicator(title='MA', shorttitle='MA', overlay=true)
src = close
l = input(6, title='VMA Length')
std = input(false, title='Show Trend Direction')
bc = input(false, title='Color bars based on Trend')
k = 1.0 / l
pdm = math.max(src - src[1], 0)
mdm = math.max(src[1] - src, 0)
var pdmS = 0.0
pdmS := (1 - k) * nz(pdmS[1]) + k * pdm
var mdmS = 0.0
mdmS := (1 - k) * nz(mdmS[1]) + k * mdm
s = pdmS + mdmS
pdi = pdmS / s
mdi = mdmS / s
var pdiS = 0.0
pdiS := (1 - k) * nz(pdiS[1]) + k * pdi
var mdiS = 0.0
mdiS := (1 - k) * nz(mdiS[1]) + k * mdi
d = math.abs(pdiS - mdiS)
s1 = pdiS + mdiS
var iS = 0.0
iS := (1 - k) * nz(iS[1]) + k * d / s1
hhv = ta.highest(iS, l)
llv = ta.lowest(iS, l)
d1 = hhv - llv
vI = (iS - llv) / d1
var vma = 0.0
vma := (1 - k * vI) * nz(vma[1]) + k * vI * src
vmaC = vma > vma[1] ? color.green : vma < vma[1] ? color.red : vma == vma[1] ? color.blue : color.black
plot(vma, color=std ? vmaC : color.black, linewidth=3, title='VMA')
barcolor(bc ? vmaC : na)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM