如何通过检查蜡烛 [1] 的信号将当前蜡烛的最后开盘价或收盘价绘制为圆形

How to plot last Open or Close on current candle as a Circle by checking candle[1] for signal

我一直在研究 pinescript 的算法,但我被一些与假设入场相关的逻辑所困扰。

首先,bullPlot 和 bearPlottrue 或 false,这就是 long 和 short 信号绘制在图表上。关于我的策略,一旦绘制了 long/short 信号,您就可以等待价格超过 long/short 的收盘价,具体取决于 red/green 蜡烛

我如何创建一个语句来检查前一根蜡烛是否有信号,如果为真,则根据最后收盘价绘制一个圆圈。这仅仅是为了帮助算法的手动交易方面。

example of the chart/algo

example of entry dot

您可以创建一个系列,在每个柱上保存您的触发结果。
然后,您可以使用 [1] 构造仅参考前一个柱上的触发值,并在当前柱上绘制 close[1]

当您不想绘制系列中的某个值时,可以让它绘制 na 值,如下所示:

signal_on_previous_candle ? previousClose : na

?: 是一个 ternary operator,它是一个缩短的 if-then-else 语句。
上面的代码也可以写成

if signal_on_previous_candle
    previousClose
else
    na

我想这就是您要找的东西

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

var bool signal_on_candle = false
signal_trigger_time = timestamp(year(timenow), month(timenow), dayofmonth(timenow), 11, 30, 0)

signal_triggered = time == signal_trigger_time

if signal_triggered
    signal_on_candle := true
else
    signal_on_candle := false

signal_on_previous_candle = signal_on_candle[1]

previousClose = close[1]

plot(signal_on_previous_candle ? previousClose : na, title="Dot",style=plot.style_circles, color=color.yellow, linewidth=5)

此代码可以更短,但仅供说明之用。