Pine Script 冷却一定数量的柱
Pine Script Cool-down for a certain number of bars
我在 Pine Script 中将以下代码与“barssince”结合使用,以在冷却 4 根柱后获得买入信号。
cooldown = ta.barssince(buySignal[1]) > 3 ? buySignal : na
plotshape(cooldown, location=location.belowbar, color=color.lime, style=shape.triangleup, text="YEY")
下面table我试着解释“我想要什么”,这是另一种计算蜡烛的方法。蜡烛 #1 和蜡烛 #6 标记正确。蜡烛 #11 应该是,但考虑到“barssince”的逻辑,它是自最后一个信号以来的第 4 根蜡烛,但它是自冷却函数中最后一个“是”以来的第 5 根蜡烛。我希望你明白我的意思。函数应该是什么样子的?
Candle #
1
2
3
4
5
6
7
8
9
10
11
buySignal
yes
no
no
no
no
yes
yes
no
no
no
yes
buySignal with cooldown
yes
no
no
no
no
yes
no
no
no
no
no
candles since buySignal with cooldown
0
1
2
3
4
5
1
1
2
3
4
what I want
yes
no
no
no
no
yes
no
no
no
no
yes
谢谢!
您可以使用变量来标记您的信号和冷却计数器是否变为 true
。然后只需增加计数器并再次检查您的条件,然后重置您的变量。
在这里,我有一个简单的买入条件 (close > 40000
)。然后它将标记每五个蜡烛 close > 40000
.
//@version=5
indicator("My Script", overlay=true)
var bool isBought = false
var cnt = 0
buySignal = close > 40000
if not isBought and buySignal
isBought := true
cnt := 0
cnt := cnt + 1
bool coolDown = cnt > 4 and buySignal
if coolDown
isBought := false
plotshape(series=coolDown, style=shape.triangleup, size=size.small, location=location.belowbar)
hline(price=40000, linestyle=hline.style_solid, linewidth=2)
我在 Pine Script 中将以下代码与“barssince”结合使用,以在冷却 4 根柱后获得买入信号。
cooldown = ta.barssince(buySignal[1]) > 3 ? buySignal : na
plotshape(cooldown, location=location.belowbar, color=color.lime, style=shape.triangleup, text="YEY")
下面table我试着解释“我想要什么”,这是另一种计算蜡烛的方法。蜡烛 #1 和蜡烛 #6 标记正确。蜡烛 #11 应该是,但考虑到“barssince”的逻辑,它是自最后一个信号以来的第 4 根蜡烛,但它是自冷却函数中最后一个“是”以来的第 5 根蜡烛。我希望你明白我的意思。函数应该是什么样子的?
Candle # | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
---|---|---|---|---|---|---|---|---|---|---|---|
buySignal | yes | no | no | no | no | yes | yes | no | no | no | yes |
buySignal with cooldown | yes | no | no | no | no | yes | no | no | no | no | no |
candles since buySignal with cooldown | 0 | 1 | 2 | 3 | 4 | 5 | 1 | 1 | 2 | 3 | 4 |
what I want | yes | no | no | no | no | yes | no | no | no | no | yes |
谢谢!
您可以使用变量来标记您的信号和冷却计数器是否变为 true
。然后只需增加计数器并再次检查您的条件,然后重置您的变量。
在这里,我有一个简单的买入条件 (close > 40000
)。然后它将标记每五个蜡烛 close > 40000
.
//@version=5
indicator("My Script", overlay=true)
var bool isBought = false
var cnt = 0
buySignal = close > 40000
if not isBought and buySignal
isBought := true
cnt := 0
cnt := cnt + 1
bool coolDown = cnt > 4 and buySignal
if coolDown
isBought := false
plotshape(series=coolDown, style=shape.triangleup, size=size.small, location=location.belowbar)
hline(price=40000, linestyle=hline.style_solid, linewidth=2)