Как найти 2-й самый высокий бар? - PullRequest
0 голосов
/ 04 апреля 2020

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

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

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

затем я написал код для определения 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, не знаю почему, спасибо за помощь.

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

1 Ответ

0 голосов
/ 04 апреля 2020

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

//@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)

enter image description here

...