上个季度的 Pine 脚本设置时间戳不起作用

Pine script setting timestamp for last quarter not working

我在 pine scrip 中写了一个简单的策略,它基于 crossover/crossunder 两个不同的 SMA。 在某些时间范围内测试我的策略对我来说很重要,尤其是在最后一个季度。它不起作用。我只得到了一些结果。当 SMA 交叉时,我应该得到整个期间的结果(绿色)。 Unwanted result

当我不使用时间范围或将 dateCond 设置为真值时,我的脚本运行良好。 下面我给出源代码:

//@version=4
strategy("Moving Average Cross 1", initial_capital=1000, overlay=true)

start = timestamp(syminfo.timezone, 2021, 1, 1, 0, 0)
end = timestamp(syminfo.timezone, 2021, 4, 1, 0, 0)

fastSMA = sma(close, 9)
slowSMA = sma(close, 50) 

long = crossover(fastSMA, slowSMA)
short = crossunder(fastSMA, slowSMA)

orderSize = floor(strategy.equity / close)

plot(fastSMA, title="20", color=#00ffaa, linewidth=3)
plot(slowSMA, title="50", color=#FFC1CC, linewidth=2)

dateCond = time > start
// dateCond = true

bgcolor(dateCond ? #00ffaa : na)

if dateCond
    strategy.entry("long", strategy.long, qty=orderSize, when = long)
    strategy.entry("short", strategy.short, qty=orderSize, when = short)
strategy.close("long", when = short)
strategy.close("short", when = long)

我尝试了不同的时间范围(当我将开始日期设置为 2020 年 1 月 1 日时效果很好)。我另外给背景上色以检查情况,但给它上色也很管用。我不知道为什么上个季度它不能正常工作。我将不胜感激任何帮助。

我测试脚本主要是为了 ETH/USDT (Binance)

这里我们使用更大的资本并在进入新头寸之前关闭头寸。这样,在打开新仓位之前关闭整个仓位:

//@version=4
strategy("Moving Average Cross 1", initial_capital=100000, overlay=true)

start = timestamp(syminfo.timezone, 2021, 1, 1, 0, 0)
end = timestamp(syminfo.timezone, 2021, 4, 1, 0, 0)

fastSMA = sma(close, 9)
slowSMA = sma(close, 50) 

long = crossover(fastSMA, slowSMA)
short = crossunder(fastSMA, slowSMA)

orderSize = floor(strategy.equity / close)

plot(fastSMA, title="20", color=#00ffaa, linewidth=3)
plot(slowSMA, title="50", color=#FFC1CC, linewidth=2)

dateCond = time > start
// dateCond = true

bgcolor(dateCond ? #00ffaa : na)

strategy.close("long", when = short)
strategy.close("short", when = long)
if dateCond
    strategy.entry("long", strategy.long, qty=orderSize, when = long)
    strategy.entry("short", strategy.short, qty=orderSize, when = short)