PineScript 回顾评估

PineScript lookback Eval

这是我的第一个 post 所以就这样吧。我最近学习了 pine 脚本语言,发现它的大部分内容都很直观。 但是,过去一周我一直坚持一个概念,看不到其他代码如何设法实现我想要做的事情。话虽如此,这个概念本身非常简单,我不明白为什么它行不通。 本质上,我希望设置一个实时警报,以根据当前条件指示历史柱上发生的事情。 有问题的概念是,当我看到锤子时,检查前一根柱线是否为红色。 然后什么也不做。 如果锤子之后的下一根柱线收为绿色,那么这是一个合法的锤子信号。 然后回去画锤子蜡烛。

我使用的是基本的 hammer 脚本

Ham = input(title="Hammer", type=input.bool, defval=true)


bodySize = abs (open - close)
HlowerShadow = abs (low - open)
HupperShadow = abs (high - close)

Hammer =  (HlowerShadow > bodySize * 2) and (low <= (lowest(low,10))) and (HlowerShadow > HupperShadow * 2) and (close <= open[1]) 

plotcandle (open,high,low,close, color=lookbackAlert ? #76FF7A :  Hammer ? #1E90FF : na, bordercolor=na, wickcolor=na)

在锤子之前检查柱没有问题 (prevbar = close[1] < open[1])

但是有没有办法根据当前数据仅 'repaint' 历史蜡烛? 非常感谢任何帮助或想法

这将绘制两个标记,一个在确认的锤子上,一个在检测到您的情况时。在实时中,它只会在实时柱的收盘时打印那些标记,以避免重新绘制。

请注意我们如何使用 history-referencing operator 来定义 confirmedHammer 条件以引用变量的过去值:

//@version=4
study("", "", true)
Ham = input(title="Hammer", type=input.bool, defval=true)


bodySize = abs (open - close)
HlowerShadow = abs (low - open)
HupperShadow = abs (high - close)

Hammer =  (HlowerShadow > bodySize * 2) and (low <= (lowest(low,10))) and (HlowerShadow > HupperShadow * 2) and (close <= open[1]) 
barUp = close > open
barDn = close < open

confirmedHammer = barstate.isconfirmed and barDn[2] and Hammer[1] and barUp
// Plot confirmed location of hammer in the past.
plotchar(confirmedHammer, "confirmedHammer", "▲", location.belowbar, size = size.tiny, offset = -1)
// Plot when the confirmed hammer is detected.
plotchar(confirmedHammer, "confirmedHammer", "•", location.belowbar, size = size.tiny)