Я пытаюсь написать скрипт на сосне, который запускает серию действий, когда цена пробивает максимальные / минимальные цены первой 15-минутной свечи. Как мне go узнать об этом?
Я наткнулся на приведенный ниже код онлайн:
study(title="OR", shorttitle="OpeningRange", overlay=true)
up15on = input(true, title="15 Minute Opening Range High")
down15on = input(true, title="15 Minute Opening Range Low")
is_newbar(res) => change(time(res)) != 0
adopt(r, s) => security(syminfo.tickerid, r, s)
high_range = valuewhen(is_newbar('D'),high,0)
low_range = valuewhen(is_newbar('D'),low,0)
high_rangeL = valuewhen(is_newbar('D'),high,0)
low_rangeL = valuewhen(is_newbar('D'),low,0)
up15 = plot(up15on ? adopt('15', high_rangeL): na, color = #53cbe9, style=plot.style_line, linewidth=1)
down15 = plot(down15on ? adopt('15', low_rangeL): na, color = #e97d53, style=plot.style_line, linewidth=1)
trans15 = up15on ? 97 : 100
fill(up15, down15, color = color.white, transp=trans15)
Приведенный выше код отображает максимум / минимум в виде линии на графике, но я не знаю не хочу, чтобы значения были нанесены на график. Я хочу эти значения в качестве переменной. Я пытаюсь выяснить, что делает эта часть: up15on ? adopt('15', high_rangeL): na, color = #53cbe9, style=plot.style_line, linewidth=1
Я не понимаю, почему существует условие для проверки up15on с использованием accept ('15 ', high_rangeL). Буду признателен, если кто-нибудь сможет это объяснить.
Модифицированный код:
study(title="OR", shorttitle="OpeningRange", overlay=true)
up15on = input(true, title="15 Minute Opening Range High")
down15on = input(true, title="15 Minute Opening Range Low")
is_newbar(res) => change(time(res)) != 0
adopt(r, s) => security(syminfo.tickerid, r, s)
high_range = valuewhen(is_newbar('D'),high,0)
low_range = valuewhen(is_newbar('D'),low,0)
candle_color = close>adopt('15', high_range) ? color.purple :
close<adopt('15', low_range) ? color.yellow :
na
barcolor( candle_color )