PineScript:在 x 条柱后输入
PineScript: enter after x amount of bars
所以我的代码似乎工作正常,但是当两次满足条件时,它会重新启动柱上的计数器,导致错失预期入场的机会。
我想要在 rsi 收盘价低于 10 后的 x 条柱线之后入场,无论 rsi 在 x 线之前做什么。问题是如果 rsi 低于 10,然后向上交叉,然后再次向下交叉,它会在进场前重新启动柱上的计数器,这会产生问题。
rsi = ta.rsi(close, rsiLen)
isOB= ta.crossover(rsi, i_OB)
isOS= ta.crossunder(rsi, i_OS)
BarsSinceOB = ta.barssince(isOB)
BarsSinceOS = ta.barssince(isOS)
BUY = BarsSinceOS == i_delay
ACT = direction < 0
strategy.entry("long", strategy.long, when = ACT and BUY)
您可以通过使用一些变量和 if 条件来实现。
例如,我将 rsi 目标设置为 50,而不是 10。如您在屏幕截图中所见,它会在 rsi 低于 50 时开始计数,并且会忽略 10 根柱内的 rsi 移动。 3 个绿色箭头是 RSI 收盘低于 50 的地方。
//@version=5
indicator("My Script")
barDelay = 10
rsiTarget = 50
my_rsi = ta.rsi(close, 14)
rsi_cond = ta.crossunder(my_rsi, rsiTarget)
var barIdxAtCond = 0
var startCounting = false
startCounting := rsi_cond ? true : startCounting
barsElapsed = false
if (not startCounting[1] and startCounting)
barIdxAtCond := bar_index
if (startCounting and ((bar_index - barIdxAtCond) > barDelay-1))
startCounting := false
barsElapsed := true
hline(rsiTarget, "H", color.red)
plot(my_rsi)
bgcolor(barsElapsed ? color.green : na)
所以我的代码似乎工作正常,但是当两次满足条件时,它会重新启动柱上的计数器,导致错失预期入场的机会。
我想要在 rsi 收盘价低于 10 后的 x 条柱线之后入场,无论 rsi 在 x 线之前做什么。问题是如果 rsi 低于 10,然后向上交叉,然后再次向下交叉,它会在进场前重新启动柱上的计数器,这会产生问题。
rsi = ta.rsi(close, rsiLen)
isOB= ta.crossover(rsi, i_OB)
isOS= ta.crossunder(rsi, i_OS)
BarsSinceOB = ta.barssince(isOB)
BarsSinceOS = ta.barssince(isOS)
BUY = BarsSinceOS == i_delay
ACT = direction < 0
strategy.entry("long", strategy.long, when = ACT and BUY)
您可以通过使用一些变量和 if 条件来实现。
例如,我将 rsi 目标设置为 50,而不是 10。如您在屏幕截图中所见,它会在 rsi 低于 50 时开始计数,并且会忽略 10 根柱内的 rsi 移动。 3 个绿色箭头是 RSI 收盘低于 50 的地方。
//@version=5
indicator("My Script")
barDelay = 10
rsiTarget = 50
my_rsi = ta.rsi(close, 14)
rsi_cond = ta.crossunder(my_rsi, rsiTarget)
var barIdxAtCond = 0
var startCounting = false
startCounting := rsi_cond ? true : startCounting
barsElapsed = false
if (not startCounting[1] and startCounting)
barIdxAtCond := bar_index
if (startCounting and ((bar_index - barIdxAtCond) > barDelay-1))
startCounting := false
barsElapsed := true
hline(rsiTarget, "H", color.red)
plot(my_rsi)
bgcolor(barsElapsed ? color.green : na)