我想在 TradingView 中执行回溯测试,在进入触发发生后的第二天开盘时进入交易,但在退出触发的同一天收盘时退出。 以下是仅使用 rsi 作为指标的示例策略:
//@version=5
strategy(title = "Indicator Backtest", overlay = true, process_orders_on_close = true)
fromYear = year > 2011
toYear = year < 2023
VI = rsi(10)
BUY = VI < 30
SELL = VI > 70
if (BUY and fromYear and toYear)
strategy.entry("Long", strategy.long)
if ((SELL or ta.barssince(BUY) >= 21))
strategy.close("Long")
我知道 TradingView 中有两种设置进场/出场程序的方法(使用日线图):
strategy(title = "指标回测", overlay = true, process_orders_on_close = true) --> 这将在触发买入信号当天收盘时打开交易,并在触发卖出信号当天收盘时退出交易。
strategy(title = "指标回测", overlay = true, process_orders_on_close = false) --> 这将在买入信号触发后的第二天开盘时开仓,并在卖出信号触发后第二天开盘时退出。
我也尝试使用策略 1) 但使用 'if (BUY[1] 和 fromYear 和 toYear)' 而不是 'if (BUY 以及 fromYear 和 toYear)'。 这确实会在第二天开始交易,但是,不是在开盘时而是在收盘时...
有什么想法吗?
immediately
参数可以帮助您:
//@version=5
strategy(title = "Indicator Backtest", overlay = true)
fromYear = year > 2011
toYear = year < 2023
VI = ta.rsi(close, 10)
BUY = VI < 30
SELL = VI > 70
if (BUY and fromYear and toYear)
strategy.entry("Long", strategy.long)
if ((SELL or ta.barssince(BUY) >= 21))
strategy.close("Long", immediately = true)
这绝对是美妙的! 它就像一个魅力,没有人工智能可以解决这个问题 - 无论是 ChatGPT 还是 Perplexity AI。 ;)
谢谢你,安德烈