如何避免在回测期间“ strategy.entry”价格变为“ open”价格?

问题描述 投票:0回答:1

假设我有一个简单的MACD策略:

//@version=4
strategy("MACD Strategy", overlay=true)

fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)

MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD

if (crossover(delta, 0))
    strategy.entry("MacdLE", strategy.long, comment="MacdLE")

if (crossunder(delta, 0))
    strategy.entry("MacdSE", strategy.short, comment="MacdSE")

//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)

并且假设我正在使用一个1小时的蜡烛,并且当时间为10:03 AM时,我收到一个以100的价格购买的信号。稍后在对策略进行回测时,信号价格更改为蜡烛的开盘价,例如99,信号时间更改为蜡烛的开始时间,例如10:00 AM。那么,如何避免这些变化,并在产生信号时将价格和时间保持在原始位置?

pine-script
1个回答
0
投票
//@version=4
strategy("MACD Strategy", overlay=true, process_orders_on_close = true)

fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)

MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD

if (crossover(delta, 0))
    strategy.entry("MacdLE", strategy.long, comment="MacdLE")

if (crossunder(delta, 0))
    strategy.entry("MacdSE", strategy.short, comment="MacdSE")

plot(delta)
plot(0)
© www.soinside.com 2019 - 2024. All rights reserved.