当天的第一支锤子蜡烛

First hammer candle of the day

我想成为当天第一个 15 分钟锤形蜡烛图上的 notified/mark。有人可以帮我写松树脚本吗?我只对第一根锤子蜡烛感兴趣,而不是当天的每一根锤子蜡烛。

代码如下:

//@version=3
study("Hammer Scanner", overlay=true)

//input variables
//input variables
hammerBodyHeight = input(title="Hammer Body, Max Height (Pips)",type=integer,minval=1,maxval=100,step=1,defval=300,confirm=false)

shadow = input(title="Body, Max Proportion of Tail (Fraction)", type=float,minval=0.01,maxval=1.0, step=0.01, defval=0.33, confirm=false)
tail = input(title="Shadow, Max Proportion of Body (Fraction)", type=float,minval=0.01,maxval=1.0, step=0.01, defval=0.5, confirm=false)
//scanner algorithms
hammer = (abs(close - open) / syminfo.mintick <= hammerBodyHeight) and (close > open) and ((close - open) < (open - low) * shadow) and ((high - close) <= (close - open) * tail)

//chart plotters
plotshape(hammer, style=shape.flag, location=location.abovebar, color=green, text='Hammer')

因此,您可以使用 dayofweek built-in 变量来确定今天是否是新的一天。然后使用一个变量来跟踪你找到了一把锤子并在新的一天重置这个变量。

//@version=5
indicator("Hammer Scanner", overlay=true)

//input variables
//input variables
hammerBodyHeight = input.int(title="Hammer Body, Max Height (Pips)",minval=1,maxval=100,step=1,defval=300,confirm=false)

shadow = input.float(title="Body, Max Proportion of Tail (Fraction)", minval=0.01,maxval=1.0, step=0.01, defval=0.33, confirm=false)
tail = input.float(title="Shadow, Max Proportion of Body (Fraction)", minval=0.01,maxval=1.0, step=0.01, defval=0.5, confirm=false)

bool newDay = dayofweek[1] != dayofweek
var hammerFound = false
hammerFound := newDay ? false : hammerFound // Reset hammerFound on a new day, keep its value otherwise

//scanner algorithms
hammer = not hammerFound and ((math.abs(close - open) / syminfo.mintick <= hammerBodyHeight) and (close > open) and ((close - open) < (open - low) * shadow) and ((high - close) <= (close - open) * tail))

if (hammer)
    hammerFound := true

//chart plotters
plotshape(hammer, style=shape.flag, location=location.abovebar, color=color.green, text='Hammer')