Как преобразовать переменные из версии 2 в версию 4 pinescript? - PullRequest
0 голосов
/ 22 февраля 2020

У меня есть сценарий, написанный в версии # 2. Я пытаюсь преобразовать его в версию # 4. В версии # 2 у меня есть что-то вроде ниже. Что я делаю, так это объявляю две переменные persistent_bull & persistent_bear.

После некоторой работы, выполненной в скрипте, я инициализирую эту переменную значениями. Я проверяю, напечатан ли бык. Если бык был напечатан, я включаю переменную persistent_bear = 0 и persistent_bull = 0. Я делаю наоборот для медведя.

Когда дело доходит до печати знаков, я проверяю и показываю.

У меня проблемы с преобразованием этого в версию 4. Есть ли кто-нибудь, кто может преобразовать это правильно для меня, пожалуйста?

persistent_bull = nz(persistent_bull[1],0) 
persistent_bear  = nz(persistent_bear[1],0) 


bull = ....certain condition ....
bear =  ....certain condition ....

if bull  
    persistent_bull := 1 
    persistent_bear := 0

if bear 
    persistent_bull := 0
    persistent_bear := 1

plotshape( bull and (persistent_bull[1] != 1 or bear), style=shape.labelup, location=location.belowbar, color=colorBuy, text="Buy", textcolor=#000000, transp=0)
plotshape( bear and (persistent_bear[1] != 1 or bull), style=shape.labeldown, color=colorSell, text="Sell", location=location.abovebar, textcolor =#ffffff, transp=0)

Ответы [ 2 ]

2 голосов
/ 22 февраля 2020

Заменить 2 первые строки на:

var persistent_bull = 0
var persistent_bear = 0
1 голос
/ 23 февраля 2020

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

persistent_bull = 0
persistent_bear = 0

И затем измените их значения с предыдущего значения бара. Обратите внимание, что здесь оператор := используется вместо =

persistent_bull := nz(persistent_bull[1],0) 
persistent_bear  := nz(persistent_bear[1],0) 

Lu c. Предложение короче и аккуратнее, но требует некоторых дополнительных изменений в коде (например, построение фигур перед if bull / if bear заявления)

...