我一直在研究pinescript的算法,并且陷入一些与假设输入职位有关的逻辑。
首先 bullPlot和bearPlot 是 true或false ,这是在图表上绘制 long和short 信号的位置。关于我的策略,一旦绘制了多头/空头信号,您就可以等待价格超过多头/空头的收盘价,具体取决于红色/绿色蜡烛
我该如何创建一个语句来检查前一根蜡烛上是否有信号,如果为true,则根据上一个收盘价绘制一个圆。这仅仅是为了帮助算法的手动交易。
答案 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)
此代码可能会更短,但这只是出于说明目的。