首页 > 解决方案 > 如何通过检查蜡烛 [1] 的信号将当前蜡烛上的最后一个开盘或收盘绘制为一个圆圈

问题描述

我一直在研究一种用于 pinescript 的算法,并且我被一些与假设进入该职位相关的逻辑所困扰。

首先,牛市图和熊市图真或假,这是图表上绘制多头和空头信号的地方。关于我的策略,一旦绘制出多头/空头信号,您就等待价格超过收盘价,多头/空头取决于红/绿蜡烛

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

图表/算法示例

入口点示例

标签: pine-script

解决方案


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

当您不希望绘制系列中的值时,可以使其绘制na值,如下所示:

signal_on_previous_candle ? previousClose : na

?:一个三元运算符,它是一个简短的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)

此代码可能更短,但仅用于说明目的。


推荐阅读