Как абсолютно новый новичок, я экспериментирую с сосновым редактором Tradingview. Я написал простой скрипт, который показывает разницу между ema и dema. Кроме того, я хочу получить наивысшее и наименьшее значение в выбранный период времени.

Предположим, что максимальная закрытая стоимость акции составляет 120,3 доллара, а самая низкая закрытая стоимость - 49,41 доллара за 6-месячный период времени. Я хочу построить эти две горизонтальные линии, которые представляют исторический максимум и исторический минимум для определенного периода времени.

//@version=4
study(title="Test")

biggest(series) =>
    max = 0.0
    max := nz(max[1], series)
    if series > max
        max := series
    max

smallest(series) =>
    min = 0.0
    min := nz(min[1], series)
    if series < min
        min := series
    min

fast = 14, slow = 50

length = input(fast, minval=1)
src = input(close, title="Source")
e1 = ema(src, length)
e2 = ema(e1, length)
dema = 2 * e1 - e2

band4 = hline(0, "Upper Band", color=#ff0000)

fastEMA = ema(close, fast)
slowEMA = ema(close, slow)
test = (dema - slowEMA)//(high1-low1)
plot(test,color=color.white)
1
Ramses 13 Янв 2021 в 17:59

2 ответа

Лучший ответ
//@version=4
study(title="Help (Test)")

biggest(series) =>
    max = 0.0
    max := nz(max[1], series)
    if series > max
        max := series
    max

smallest(series) =>
    min = 0.0
    min := nz(min[1], series)
    if series < min
        min := series
    min

fast = 14, slow = 50

length = input(fast, minval=1)
src = input(close, title="Source")
e1 = ema(src, length)
e2 = ema(e1, length)
dema = 2 * e1 - e2

band4 = hline(0, "Upper Band", color=#ff0000)

fastEMA = ema(close, fast)
slowEMA = ema(close, slow)
test = (dema - slowEMA)//(high1-low1)
plot(test,color=color.black)

//[ADDON]
period = input("6M", "Period hi/lo detect", input.resolution) //  Six Months

var hi = 0.0
var lo = 10e10
var br = 0
var lnhi = line.new(na, na, na , na)
var lnlo = line.new(na, na, na , na)

if change(time(period))
    hi := test
    lo := test
    br := bar_index
    lnhi := line.new(br, hi , br, hi, color=color.red, width=2)
    lnlo := line.new(br, lo , br, lo, color=color.green, width=2)
    float(na)
else
    hi := max(test, hi)
    lo := min(test, lo)

line.set_xy1(lnhi, br, hi)
line.set_xy2(lnhi, bar_index, hi)
line.set_xy1(lnlo, br, lo)
line.set_xy2(lnlo, bar_index, lo)

Ваш график test с АБСОЛЮТНЫМ ВЫСОКИМ и САМЫМ НИЗКИМ значением за шесть месяцев. введите описание изображения здесь

1
AnyDozer 16 Янв 2021 в 15:59

Вы можете использовать функции highest() и lowest().

Итак, используя ваш пример, вы можете добавить самые высокие и самые низкие полосы следующим образом:

//@version=4
study(title="Test")

hiloperiod = 200 // track highest/lowest of the last 200 periods
fast = 14, slow = 50

length = input(fast, minval=1)
src = input(close, title="Source")
e1 = ema(src, length)
e2 = ema(e1, length)
dema = 2 * e1 - e2

band4 = hline(0, "Upper Band", color=#ff0000)

fastEMA = ema(close, fast)
slowEMA = ema(close, slow)
test = (dema - slowEMA)//(high1-low1)
plot(test,color=color.white)

// Plot the highest and lowest values for the last hilo period.
hi=highest(hiloperiod)
lo=lowest(hiloperiod)
plot(hi, color=color.green, linewidth=2)
plot(lo, color=color.green, linewidth=2)

Например, используя его для цены биткойна, можно получить этот график. Обратите внимание, как движутся зеленые линии, представляя самые высокие и самые низкие цены для этого периода.

bitcoin price with high and low tracking

1
Shiraaz.M 13 Янв 2021 в 19:31