如何通过检查Candle [1]的信号来绘制当前蜡烛上最后一个打开或闭合的圆

时间:2020-05-28 16:08:31

标签: pine-script

我一直在研究pinescript的算法,并且陷入一些与假设输入职位有关的逻辑。

首先 bullPlot和bearPlot true或false ,这是在图表上绘制 long和short 信号的位置。关于我的策略,一旦绘制了多头/空头信号,您就可以等待价格超过多头/空头的收盘价,具体取决于红色/绿色蜡烛

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

example of the chart/algo

example of entry dot

1 个答案:

答案 0 :(得分:0)

您可以创建一个系列,在每个小节上保存触发结果。
然后,您可以使用[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)

此代码可能会更短,但这只是出于说明目的。