Как построить индикатор вихря с другого таймфрейма в Pine Script? - PullRequest
0 голосов
/ 14 июля 2020

Я хочу построить индикатор вихря, используя значения с другого таймфрейма. Пока что он отображает значения, но они не соответствуют фактическим значениям за этот период времени. На данный момент я хочу построить значения индикатора Vortex на недельном таймфрейме, глядя на дневной таймфрейм (или даже внутридневной).

Это стандартный код для индикатора Vortex,

period_ = input(14, title="Period", minval=2)

VMP = sum( abs( high - low[1]), period_ )
VMM = sum( abs( low - high[1]), period_ )
STR = sum( atr(1), period_ )
VIP = VMP / STR
VIM = VMM / STR

plot(VIP, title="VI +", color=#3BB3E4)
plot(VIM, title="VI -", color=#FF006E)

Это то, что я пробовал, отображает неверные значения.

period_ = input(14, title="Period", minval=2)
[weekly_high, weekly_low, weekly_close] = security(syminfo.tickerid, "W", [high, low, close], barmerge.gaps_off, barmerge.lookahead_off)

pine_atr(length) =>
    trueRange = na(weekly_high[2])? weekly_high[1]-weekly_low[1] : max(max(weekly_high[1] - weekly_low[1], abs(weekly_high[1] - weekly_close[2])), abs(weekly_low[1] - weekly_close[2]))
    rma(trueRange, length)

weekly_VMP = sum( abs( weekly_high[1] - weekly_low[2]), period_ )
weekly_VMM = sum( abs( weekly_low[1] - weekly_high[2]), period_ )
weekly_STR = sum( pine_atr(1), period_ )
weekly_VIP = weekly_VMP / weekly_STR
weekly_VIM = weekly_VMM / weekly_STR

plot(weekly_VIP, title="VI +", color=#3BB3E4)
plot(weekly_VIM, title="VI -", color=#FF006E)

Любая помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 14 июля 2020

Вы можете напрямую передать функции безопасности значения Vortex:

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

period_ = input(14, title="Period", minval=2)

VMP = sum( abs( high - low[1]), period_ )
VMM = sum( abs( low - high[1]), period_ )
STR = sum( atr(1), period_ )
VIP = VMP / STR
VIM = VMM / STR

plot(VIP, title="VI +", color=#3BB3E4)
plot(VIM, title="VI -", color=#FF006E)

[weekly_VIP, weekly_VIM] = security(syminfo.tickerid, "W", [VIP, VIM], barmerge.gaps_off, barmerge.lookahead_off) // Repaint
//[weekly_VIP, weekly_VIM] = security(syminfo.tickerid, "W", [VIP[1], VIM[1]], barmerge.gaps_off, barmerge.lookahead_off) // Won't repaint

plot(weekly_VIP, title="VI +", color=#3BB3E4)
plot(weekly_VIM, title="VI -", color=#FF006E)

Обратите внимание, что таким образом вы получите последние еженедельные значения Vortex, но индикатор будет перерисовываться. Чтобы избежать этого, вы должны использовать значение вихря предыдущей недельной свечи (закомментированная строка)

...