Установите 2 серии сразу - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь установить максимумы и минимумы в 2 рядах одновременно, но, похоже, не могу правильно понять код.
Он должен отображать введенные максимальные и минимальные значения на каждом внутридневном баре для указанная дата.
Код предназначен для работы с тикером SPX.

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

// === FUNCTIONS === 
isDate(y,m,d) => year==y and month==m and dayofmonth==d

float lo = na
float hi = na

drawHiLo(y,m,d,l,h) => 
    float ret1 = na
    float ret2 = na
    if isDate(y,m,d) and timeframe.isintraday
        ret1 := l
        ret2 := h 
    else
        ret1 = lo[1]
        ret2 = hi[1]
    [ret1,ret2]

// === MAIN ===
[lo,hi] = drawHiLo(2020,04,13,2700,2770)
[lo,hi] = drawHiLo(2020,04,14,2800,2860)

plot(lo, style=plot.style_circles, color=color.lime)
plot(hi, style=plot.style_circles, color=color.lime)

Приведенный выше скрипт выдает следующую ошибку: line 22: 'lo' is already defined.

Я пробовал несколько разных подходов, но, похоже, ни один из них не работает.
Есть ли у кого-нибудь идеи о том, как это сделать sh? 1010 *

1 Ответ

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

Теперь вы можете изменять значения через входы скрипта. Добавлено несколько комментариев в коде. Не стесняйтесь спрашивать, не понятно ли, что происходит:

//@version=4
study("SPX 5", overlay=true)
// Get values through Inputs.
spHi1 = input(2770)
spLo1 = input(2700)
spHi2 = input(2860)
spLo2 = input(2800)

// === FUNCTIONS === 
isDate(y,m,d) => year==y and month==m and dayofmonth==d

drawHiLo(y,m,d,l,h) => 
    // Vars are initialized to na, so we only need to assign them a value when our conditions becomes true.
    float ret1 = na
    float ret2 = na
    if isDate(y,m,d) and timeframe.isintraday
        ret1 := l
        ret2 := h 
    [ret1, ret2]

// === MAIN ===
// Make 2 separate call to function, but need to store results in different variables for each call.
[lo1,hi1] = drawHiLo(2020,04,13,spLo1,spHi1)
[lo2,hi2] = drawHiLo(2020,04,14,spLo2,spHi2)

plot(hi1, style=plot.style_circles, color=color.lime)
plot(lo1, style=plot.style_circles, color=color.lime)
plot(hi2, style=plot.style_circles, color=color.green)
plot(lo2, style=plot.style_circles, color=color.green)

Хорошая концепция с функцией, кстати. Congrats.

...