Невозможно объявить переменные в условии if (PineScript) - PullRequest
0 голосов
/ 13 января 2020

Я пытаюсь улучшить свой индикатор, потому что время загрузки слишком велико, когда я переключаю таймфрейм. Теперь я пытаюсь изменить код, и я нахожусь перед проблемой.

Посмотрите на код ниже.

Я хочу объявить значения переменных внутри условия if. Но когда я использую приведенный ниже код, он не принимает объявленные переменные внутри условия if, если его "true". Он всегда использует переменные, которые я объявил в начале кода.

Любые подсказки, как я могу это исправить?

 stochCalc = sma(stoch(close, high, low, 14), 6)
    v1 = "1"
    v2 = "1"
    v3 = "1"

        if timeframe.multiplier == 240
            v1 = "15"
            v2 = "30"
            v3 = "60"
        else
            if timeframe.multiplier == 720
                v1 = "60"
                v2 = "120"
                v3 = "240"
            else
                if timeframe.multiplier == 1440
                    v1 = "240"
                    v2 = "720"
                    v3 = "1440"
                else
                    v1 = "1"
                    v2 = "2"
                    v3 = "3"

        k1 = security(syminfo.tickerid, v1, stochCalc)
        k2 = security(syminfo.tickerid, v2, stochCalc)
        k3 = security(syminfo.tickerid, v3, stochCalc)

        plot(k1, color=color.yellow, transp=0, linewidth=2)
        plot(k2, color=color.yellow, transp=0, linewidth=2)
        plot(k3, color=color.yellow, transp=0, linewidth=2)

1 Ответ

0 голосов
/ 13 января 2020

Вы должны использовать оператор :=, если хотите переназначить значения переменным.

if timeframe.multiplier == 240
  v1 := "15"
  v2 := "30"
  v3 := "60"

и т. Д.

...