Как получить значение ATR по конкретной цене или период времени в Pine скрипт? - PullRequest
0 голосов
/ 22 марта 2020

если мы хотим увидеть atr, мы можем просто построить график atr для любой ценной бумаги, он покажет его

// @ version = 4 study ("My Script")

plot (atr (14))

но если я хочу вычислить значение atr по конкретной цене программно, в этом случае я хочу вычислить значение atr при предыдущем минимуме разворота, то как его получить в сосне? помогите, пожалуйста, enter image description here

. Предположим, что на этом графике минимальный уровень 5152,45 atr равен 76,65, когда мы наводим указатель мыши на него, это показывает, но как получить это в сосне. Спасибо

Ответы [ 2 ]

1 голос
/ 22 марта 2020

Вам необходимо сохранить значение, когда ваш скрипт обнаружит условие, из которого вы хотите сохранить ATR. Понимание модели выполнения Pine поможет вам осмыслить решение, которое очень часто встречается при написании сценариев. Сценарий Pine выполняется на каждом баре, поэтому гораздо эффективнее сохранять значения, которые вам понадобятся, на следующих барах, когда это возможно, чем ждать момента, когда вам нужны значения, а затем оглянуться назад, чтобы найти их.

См. Как сохранить значение при возникновении события? для примера кода, делающего это.


[РЕДАКТИРОВАНИЕ 2020.03.23 00:17 - LucF]

//@version=4
study("Atr at Pivot")
pivotLegs = 3
pHi = pivothigh(pivotLegs, pivotLegs)
atr = atr(14)
var float atrAtHiPivot = na
if not na(pHi)
    // A pivot was detected. Since the pivot actually occurred `pivotLegs` bars back, 
    // fetch atr value from the same number of bars back.
    atrAtHiPivot := atr[pivotLegs]
plotchar(not na(pHi), "not na(pHi)", "▼", location.top)
plot(atrAtHiPivot, "atrAtHiPivot")
plot(atr, "atr", color.aqua)

enter image description here

0 голосов
/ 29 марта 2020
//@version=4
study("Atr at Pivot")
pivotLegs = 3
pHi = pivothigh(pivotLegs, pivotLegs)
atr = atr(14)
var float atrAtHiPivot = na

var float atrAtLoPivot = na
pLo = pivotlow(pivotLegs, pivotLegs)

if not na(pHi)
    // A pivot was detected. Since the pivot actually occurred `pivotLegs` bars back, 
    // fetch atr value from the same number of bars back.
    atrAtHiPivot := atr[pivotLegs]
//curious
if not na(pLo)
    atrAtLoPivot := atr[pivotLegs]

plotchar(not na(pHi), "not na(pHi)", "▼", location.top)
plot(atrAtHiPivot, "atrAtHiPivot")
plot(atr, "atr", color.aqua)
//curious
plotchar(not na(pLo), "not na(pLo)", "▲", location.bottom)
plot(atrAtLoPivot,"atrAtLoPivot")
plot(atr,"atr",color.red)
[![enter image description here][1]][1]


  [1]: https://i.stack.imgur.com/Jdvdq.jpg
...