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

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

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

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

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

start = timestamp(syminfo.timezone,2021,1,0)
end = timestamp(syminfo.timezone,4,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,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,0)
end = timestamp(syminfo.timezone,4,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,when = short)

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?