Как построить условно на основе предыдущего сюжета Pine Script - PullRequest
0 голосов
/ 16 июня 2020

Я делаю простые поисковые системы Swing High и Swing Low, и все работает безупречно, за исключением того, что во многих случаях Swing High наступает после другого Swing High. Максимум колебания определяется, если две свечи до этого были ниже, чем эта, и две свечи после него также ниже.

Я хочу достичь максимума колебания, только если предыдущий график не был максимальным.

Здесь будет код

//@version=4
study("Swing Point Finder")

hhCondition = high[4] < high[2] and high[3] < high[2] and high[1] < high[2] and high < high[2]
llCondition = low[4] > low[2] and low[3] > low[2] and low[1] > low[2] and low > low[2]


plot(hhCondition ? 1 : 0, "Swing High found", color.green, offset = -2)
plot(llCondition ? 1 : 0, "Swing Low found", color.red, offset = -2)

Ответы [ 2 ]

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

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

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

isPivot == hhCondition or llCondition

Затем на новом повороте сравните его с предыдущим. что-то вроде этого, например:

plotThisHigh = hhCondition
if (hhCondition)
    sameDirection = valuewhen(isPivot, hhCondition, 0)
    plotThisHigh := sameDirection ? false : true

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

Я написал более подробную информацию в этом сообщении в блоге, если вам нужно ... надеюсь, это поможет https://marketscripters.com/how-to-work-with-pivots-in-pine-script/

0 голосов
/ 16 июня 2020

Может быть, вы могли бы попробовать что-то вроде этого:

plot(hhCondition and not hhCondition[1] ? 1 : 0, "Swing High found", color.green, offset = -2)
...