Условие PineScript для сравнения двух значений не работает для значения, когда - PullRequest
0 голосов
/ 13 июля 2020

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

Визуальное объяснение enter image description here

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


var s = 0.0
/// Pivots
leftbars = input(title="LeftBars", defval=1)
rightbars = input(title="Rightbars", defval=1)

HighOfCandle =  high
LowOfCandle = low
CloseOfCandle = close
OpenOfCandle = open
SizeOfCandle = abs(HighOfCandle-LowOfCandle)
pl = ((LowOfCandle > LowOfCandle[1]) and  (LowOfCandle[1] < LowOfCandle[2]))
//plotchar(pl, title="Pivot Low",  location=location.abovebar, char = "", color=color.green, transp=75, text="[P]", offset=-rightbars, size=size.auto)

ll = valuewhen(pl, low[1], 1) > valuewhen(pl, low[1], 0) 
plotchar(ll and pl, title="LL",  location=location.belowbar, char = "", color=color.green, transp=75, text="[LL]", offset=-rightbars, size=size.auto)

llhigherprevious = valuewhen(ll, low[1], 1) < valuewhen(ll, low[1], 0)
plotchar( llhigherprevious and pl and ll , text="LLhigher" ,color=color.orange,location=location.abovebar,transp=0,offset=-1,char="")

Now for some reason the condition doesn't seem to work all the time and I am unsure what I am doing wrong Example

введите описание изображения здесь

Спасибо

Ответы [ 2 ]

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

Нет ошибки, Андре, и нет необходимости открывать заявку в службу поддержки.

Во-первых, когда вы сравниваете значение предыдущего минимума в этой строке:

llhigherprevious = valuewhen(ll, low[1], 1) < valuewhen(ll, low[1], 0)

, вы должны отметить график этой переменной ll и [LL] на графике не совпадает. plot ([LL]) используйте 2 условия типа bool: ll и pl

plotchar(ll and pl, title="LL",  location=location.belowbar, char = "", color=color.green, transp=75, text="[LL]")

Если вы построите график переменной ll, которую вы используете для поиска llhigherprevious, вы увидите следующее: ll variable plot

So when the new point of pl and ll is found it is comparing ll's low with the previous ll's low, not with [LL]'s low.

Solution: add a LL bool variable and use it's value in llhigherprevious:

ll = valuewhen(pl, low[1], 1) > valuewhen(pl, low[1], 0) 

LL = ll and pl
plotchar(LL, title="LL",  location=location.belowbar, char = "", color=color.green, transp=75, text="[LL]")//, offset=-rightbars, size=size.auto)

llhigherprevious = valuewhen(LL, low[1], 1) < valuewhen(LL, low[1], 0)
plotchar( llhigherprevious and pl and ll , text="LLhigher" ,color=color.orange,location=location.abovebar,transp=0, char="" )//,offset=-1)

введите описание изображения здесь

0 голосов
/ 14 июля 2020

Ого, супер странно ... сделайте повтор, и вы увидите, что происходит. По какой-то причине Pine удаляет промежуточный LL. Думаю ... какая-то ошибка Pine Script. Я сообщу об этом в службу поддержки.

enter image description here

введите описание изображения здесь

...