首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PineScript v2 to v4或v5

PineScript v2 to v4或v5
EN

Stack Overflow用户
提问于 2022-09-11 11:23:26
回答 1查看 57关注 0票数 0

我有一个文本v2,需要转换成v4或v5,但我仍然不明白,任何输入都是有用的,谢谢。这个脚本是很久以前开发的,现在访问它让我很困惑。我一直读到变量需要首先声明,我知道,但是将变量转换为v4或v5最有效的方法是什么呢?

代码语言:javascript
复制
strategy("Slow Heiken Ashi",overlay=false,precision=0)
//by Glaz.
//KAMA function
p=input(6,title='Period')
fastend=input(0.666,step=0.001)
slowend=input(0.0645,step=0.0001)
kama(close,amaLength)=>
    diff=abs(close[0]-close[1])
    signal=abs(close-close[amaLength])
    noise=sum(diff, amaLength)
    efratio=noise!=0 ? signal/noise : 1
    smooth=pow(efratio*(fastend-slowend)+slowend,2)
    kama=nz(kama[1], close)+smooth*(close-nz(kama[1], close))
    kama

//Slow Heiken Ashi
hakamaper=1
Signal=input(true)
Om=sma(open,p)
Hm=sma(high,p)
Lm=sma(low,p)
Cm=sma(close,p)
vClose=(Om+Hm+Lm+Cm)/4
vOpen= kama(vClose[1],hakamaper)
vHigh= max(Hm,max(vClose, vOpen))
vLow=  min(Lm,min(vClose, vOpen))

// Plots
vcolor= vOpen>vClose ?red:green
plotcandle(vOpen,vHigh,vLow,vClose,color=vcolor)

//signals
plotchar(Signal?(cross(vOpen,vClose) and vOpen[1]<vClose[1]?vHigh:na):na,char='▼',color=white,transp=0,location=location.absolute)
plotchar(Signal?(cross(vOpen,vClose) and vOpen[1]>vClose[1]?vLow:na):na,char='▲',color=white,transp=0,location=location.absolute)
EN

回答 1

Stack Overflow用户

发布于 2022-09-11 17:09:05

我一直在读到变量需要首先声明。

是的,你是对的。在这个脚本中,只有一个例子。

代码语言:javascript
复制
kama = 0.0
kama := nz(kama[1], close) + smooth * (close - nz(kama[1], close))

修复之后,它将为v3编译。然后使用转换器工具先升级v4,然后升级v5。

代码语言:javascript
复制
//@version=5
strategy('Slow Heiken Ashi', overlay=false, precision=0)
//by Glaz.
//KAMA function
p = input(6, title='Period')
fastend = input.float(0.666, step=0.001)
slowend = input.float(0.0645, step=0.0001)
kama(close, amaLength) =>
    diff = math.abs(close[0] - close[1])
    signal = math.abs(close - close[amaLength])
    noise = math.sum(diff, amaLength)
    efratio = noise != 0 ? signal / noise : 1
    smooth = math.pow(efratio * (fastend - slowend) + slowend, 2)
    kama = 0.0
    kama := nz(kama[1], close) + smooth * (close - nz(kama[1], close))
    kama

//Slow Heiken Ashi
hakamaper = 1
Signal = input(true)
Om = ta.sma(open, p)
Hm = ta.sma(high, p)
Lm = ta.sma(low, p)
Cm = ta.sma(close, p)
vClose = (Om + Hm + Lm + Cm) / 4
vOpen = kama(vClose[1], hakamaper)
vHigh = math.max(Hm, math.max(vClose, vOpen))
vLow = math.min(Lm, math.min(vClose, vOpen))

// Plots
vcolor = vOpen > vClose ? color.red : color.green
plotcandle(vOpen, vHigh, vLow, vClose, color=vcolor)

//signals
cross_1 = ta.cross(vOpen, vClose)
plotchar(Signal ? cross_1 and vOpen[1] < vClose[1] ? vHigh : na : na, char='▼', color=color.new(color.white, 0), location=location.absolute)
cross_2 = ta.cross(vOpen, vClose)
plotchar(Signal ? cross_2 and vOpen[1] > vClose[1] ? vLow : na : na, char='▲', color=color.new(color.white, 0), location=location.absolute)

如需进一步参考,请阅读

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73678851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档