微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

修复 Tradingview 指标 - 与当前价格进行比较

如何解决修复 Tradingview 指标 - 与当前价格进行比较

我正在尝试在下方的 Tradingview 指标中识别出 2 个时刻(条件 1 和 2)时收到警报。

条件 1 - 显示红点和绿点之后的时间段,尤其是当点在当前蜡烛或 [1] 之前被识别时。我尝试了以下命令但没有成功:HHcondition = plotH[1] LLcondition = plotL[1]

条件 2- 当前蜡烛图(当前价格)高于或低于之前的点,分别为绿色或红色。它应该将“接近”值与最近的点进行比较。绿色代表高,红色代表低。我尝试使用以下命令没有成功:HH= close > plotH LL= plotL>关闭

我在两种情况下都使用相同的警报。

这里是指标:

//@version=4
study("(Pivot Points High Low)",shorttitle="Pivots HL",overlay=true)
lenH = input(title="Length High",type=input.integer,defval=6,minval=1)
lenL = input(title="Length Low",minval=1)

fun(src,len,isHigh) =>
    p = nz(src[len])
    isFound = true
    for i = 0 to len - 1
        if isHigh and src[i] > p
            isFound := false
        if not isHigh and src[i] < p
            isFound := false
    for i = len + 1 to 2 * len
        if isHigh and src[i] >= p
            isFound := false
        if not isHigh and src[i] <= p
            isFound := false
    if isFound
        p

plotH = fun(high,lenH,true)
plotL = fun(low,lenL,false)

// Get highest body and lowest body for the current candle
highestBody = open > close ? open : close
lowestBody = open > close ? close : open

// Conditions
HHCondition1= plotH[1]
LLCondition1 = plotL[1]
HHCondition2= close > plotH
LLCondition2= plotL>close

BuyCondition=LLCondition1 or LLCondition2
SellCondition=HHCondition1 or HHCondition1

//plotshape(BuyCondition,title="buy",style=shape.triangleup,location=location.belowbar,color=color.orange,transp=0,size=size.small)
//plotshape(SellCondition,title="sell",style=shape.triangledown,location=location.abovebar,color=color.green,size=size.small)

plot(plotH,color=color.lime,linewidth=3,style=plot.style_circles,offset=-lenH)
plot(plotL,color=color.red,offset=-lenL)

alertcondition(BuyCondition,message="buy") 
alertcondition(SellCondition,message="sell") 

解决方法

您需要在找到最高价或最低价时返回价格值。然后您可以使用 var 声明的变量存储价格值,该变量仅在 isFound 发生时进行修改。您需要在条件 2 中使用它来比较接近它的电流。

fun(src,len,isHigh) =>
    p = nz(src[len])
    isFound = true
    for i = 0 to len - 1
        if isHigh and src[i] > p
            isFound := false
        if not isHigh and src[i] < p
            isFound := false
    for i = len + 1 to 2 * len
        if isHigh and src[i] >= p
            isFound := false
        if not isHigh and src[i] <= p
            isFound := false
    if isFound
        [p,isFound]

[plotH,foundH] = fun(high,lenH,true)
[plotL,foundL] = fun(low,lenL,false)

var float pivH = na
var float pivL = na

if foundH
    pivH := plotH
if foundL
    pivL := plotL
    
plot(pivH,color = color.green)
plot(pivL,color = color.red)

HHCondition1 = foundH
HHCondition2 = close > pivH

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。