繁体   English   中英

请帮助我不知道如何从收缩区开始到收缩 pinescript 指示器结束调整框的大小

[英]please help I dont know how to size box from the start of an contraction zone to the end of the contraction pinescript indicator

我一直在尝试制作一个可以找到收缩区域的指示器,但我很困惑我能够用白色标签突出显示收缩区域,但我想要一个从开始到收缩结束时大小的盒子第一个白色标签到最后一个标签我现在完全迷失了,因为我最接近的是为每个标签制作一个盒子,但它不能满足我的需要

它看起来如何,(白框不是其中的一部分)[1]: https ://i.stack.imgur.com/5IQC0.png 我希望它看起来如何 [2]: https://i.stack。 imgur.com/Rm1Us.png

//@version=5
indicator(title="ATR Contraction", shorttitle="ATR CONTRACTION FINDER", overlay=true, precision=3, max_lines_count = 500, max_boxes_count = 500)
lenAtr = input(title = "atr length", defval = 1)
atr = ta.atr(lenAtr)
//atr values
avg5 = input.int(title="WMA", defval=5)
avg13 = input.int(title="WMA",  defval=13)
avg22 = input.int(title="WMA",  defval=22)

WMA5 = ta.wma (atr, avg5)
WMA13 = ta.wma (atr, avg13)
WMA22 = ta.wma (atr,avg22)

ifAtr = atr < WMA5 and WMA5 < WMA13 and WMA13 < WMA22

//STD
length = input.int(20, minval=1)
src = input(close, title="Source")
stdev = ta.stdev( src , length)
STDWMA13 = ta.wma (stdev, avg13)
STDWMA22 = ta.wma (stdev,avg22)
ifStd = stdev < STDWMA13 and STDWMA13 < STDWMA22

// volume
VWMA5 = ta.wma ( volume ,5)
VWMA10 = ta.wma ( volume ,10)
VWMA20 = ta.wma ( volume ,20)
ifVMA = VWMA5 < VWMA10 and VWMA10 < VWMA20

lessVolatility = ifAtr and ifStd and ifVMA

string tfInput = input.timeframe("D", "Timeframe")
var hi = float(na)
var lo = float(na)
var line hiLine = na
var line loLine = na
var box hiLoBox = na
// Detect changes in timeframe.
if lessVolatility? 1:na
    // New bar in higher timeframe; reset values and create new lines and box.
    hi := high
    lo := low
    hiLoBox := box.new(bar_index -1 , hi, bar_index+5, lo, border_color = na, bgcolor = color.silver)
    box.set_bgcolor(hiLoBox, color.new(color.blue, 50))
    int(na)



plotshape(lessVolatility? 1:na,style=shape.labeldown, location=location.abovebar, color=color.white, size=size.tiny)

每当您第一次获得信号时,您可以将变量设置为 true 并继续将其设置为 true 直到信号继续。 并且基于该变量,您可以在第一次设置时创建一个新框,如果之前已经为真,则继续将其扩展为一个条形。 例子

//@version=5
indicator(title="ATR Contraction", shorttitle="ATR CONTRACTION FINDER", overlay=true, precision=3, max_lines_count = 500, max_boxes_count = 500)
lenAtr = input(title = "atr length", defval = 1)
atr = ta.atr(lenAtr)
//atr values
avg5 = input.int(title="WMA", defval=5)
avg13 = input.int(title="WMA",  defval=13)
avg22 = input.int(title="WMA",  defval=22)

WMA5 = ta.wma (atr, avg5)
WMA13 = ta.wma (atr, avg13)
WMA22 = ta.wma (atr,avg22)

ifAtr = atr < WMA5 and WMA5 < WMA13 and WMA13 < WMA22

//STD
length = input.int(20, minval=1)
src = input(close, title="Source")
stdev = ta.stdev( src , length)
STDWMA13 = ta.wma (stdev, avg13)
STDWMA22 = ta.wma (stdev,avg22)
ifStd = stdev < STDWMA13 and STDWMA13 < STDWMA22

// volume
VWMA5 = ta.wma ( volume ,5)
VWMA10 = ta.wma ( volume ,10)
VWMA20 = ta.wma ( volume ,20)
ifVMA = VWMA5 < VWMA10 and VWMA10 < VWMA20

lessVolatility = ifAtr and ifStd and ifVMA

string tfInput = input.timeframe("D", "Timeframe")
var hi = float(na)
var lo = float(na)
var line hiLine = na
var line loLine = na
var box hiLoBox = na
// Detect changes in timeframe.
var continuebox=false

if lessVolatility? 1:na
    // New bar in higher timeframe; reset values and create new lines and box.
    hi := high
    lo := low
    if continuebox
        box.set_right(hiLoBox,bar_index)
    else
        hiLoBox := box.new(bar_index -1 , hi, bar_index, lo, border_color = na, bgcolor = color.silver)
        box.set_bgcolor(hiLoBox, color.new(color.blue, 50))
    int(na)
    continuebox:=true
else
    continuebox:=false



plotshape(lessVolatility? 1:na,style=shape.labeldown, location=location.abovebar, color=color.white, size=size.tiny)

暂无
暂无

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

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