Как найти 2-й самый высокий бар?

Я использовал наивысшие бары (длина), чтобы найти самый высокий бар как первую точку нисходящей линии тренда. И мне нужны вторые по высоте бары как вторую точку нисходящей линии тренда. В начале я использую:

x1:=-1*highestbars(length)
x2:=-1*highestbars(x1-interval)  
//interval = 15 as distance between highest and 2nd highest point.

и я получил сообщение об ошибке «Невозможно вызвать« самые высокие бары »с аргументами (серия [целое число]); доступные перегрузки: самые высокие бары (серия [число], целое число) => серия [целое число]; самые высокие бары (целое число) => серия [целое число] "

затем я написал код, чтобы узнать 2-й самый высокий бар:

//@version=4
study("Triangle",overlay=false)

length=input(title="Length",type=input.integer,defval=244)
// interval=input(title="Distance between 2 high",type=input.integer,defval=50)
// long=input(title="Distance from 1 high",type=input.integer,defval=80)

x1=int(0)
y1=float(0)
x2=int(0)
y2=float(0)

x1:=-1*highestbars(length)
y1:=high[x1]

for i=x1-1 to 1
    if high[i] > y2
        x2:=i
        y2:=high[i]

//plot(x1,color=color.red)
plot(x2,color=color.yellow)

Но я не могу построить x2, не знаю почему, спасибо, помогите.

введите здесь описание изображения


person David Liao    schedule 03.04.2020    source источник


Ответы (1)


Нужен особый случай, когда самый высокий максимум находится на текущем баре:

//@version=4
study("Triangle",overlay=true)

length=input(title="Length",type=input.integer,defval=10)

x1=int(0)
y1=float(0)
x2=int(0)
y2=float(0)

x1:= - highestbars(length)
y1:=high[x1]

if x1 == 0
    // Special case for when highest is on the current bar.
    x2 := 0
else
    for i=x1-1 to 0
        if high[i] > y2
            x2:=i
            y2:=high[i]

plot(high[x1],color=color.silver, linewidth=6, transp=60)
plot(high[x2],color=color.yellow)

введите здесь описание изображения

person PineCoders-LucF    schedule 04.04.2020