Debugging 尝试销售时出现Pinescript策略错误
正如你在我下面的代码快照中看到的,我有一个买入卖出信号。我正试图把它添加到我的图表中进行回溯测试,它完成了我最初的购买,但它永远不会卖出。我不知道为什么,因为我有一个类似的脚本做同样的事情,但它在回测时前后销售良好。我已经测试了我的卖出信号买入,看一条线是否会在应该的时候出现在图上,我的代码运行良好。但靠背部分有点问题。谢谢你的帮助Debugging 尝试销售时出现Pinescript策略错误,debugging,pine-script,algorithmic-trading,Debugging,Pine Script,Algorithmic Trading,正如你在我下面的代码快照中看到的,我有一个买入卖出信号。我正试图把它添加到我的图表中进行回溯测试,它完成了我最初的购买,但它永远不会卖出。我不知道为什么,因为我有一个类似的脚本做同样的事情,但它在回测时前后销售良好。我已经测试了我的卖出信号买入,看一条线是否会在应该的时候出现在图上,我的代码运行良好。但靠背部分有点问题。谢谢你的帮助 buy = (crossover(z100,c100) and z100>f100 and trend>reg or crossover(z100,f1
buy = (crossover(z100,c100) and z100>f100 and trend>reg or crossover(z100,f100) and z100>c100 and trend>reg) ? 50 : 7.5
plot(buy, title="buy", color=color.blue)
sell = (crossunder(z100,c100) and z100<f100 or crossunder(z100,f100) and z100<c100) ? 50 : 7.5
plot(sell, title="sell", color=color.red)
shares = 10000/close
// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 10, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 24, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2019, title = "From Year", minval = 2017)
ToMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 25, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => time >= start and time <= finish ? true : false // create function "within window of time"
strategy.entry("buy", shares, when = window() and buy) // buy long when "within window of time" AND crossover
strategy.close("sell", when = window() and sell)
buy=(交叉(z100,c100)和z100>f100和趋势>注册或交叉(z100,f100)和z100>c100和趋势>注册)?50 : 7.5
绘图(购买,title=“购买”,color=color.blue)
sell=(crossunder(z100,c100)和z100=开始和时间代码中出现问题的候选项(假设为v4):
1) 根据参考手册(),您需要通知策略。关闭
与您试图关闭的未平仓交易相同的ID,在本例中为“买入”,如下所示:
strategy.close("buy", when = window() and sell)
2) 如果上述方法无法解决此问题,请尝试在调用策略之前计算when
条件的表达式。输入一个策略。关闭,将结果分配给一个变量,然后在when
参数中引用此变量。代码中出现问题的候选变量(假设为v4):
1) 根据参考手册(),您需要通知策略。关闭
与您试图关闭的未平仓交易相同的ID,在本例中为“买入”,如下所示:
strategy.close("buy", when = window() and sell)
2) 如果上述方法无法解决问题,请在调用策略之前尝试计算when
条件的表达式。输入一个策略。关闭,将结果分配给一个变量,然后在when
参数中引用该变量。这是正确的!谢谢,这就解决了。然而,它现在在每一家时间酒吧都有购买。你有没有可能知道它为什么这么做?我的图表中有一个小尖峰,显示了我的代码实际希望它在哪里买卖,但无论出于什么原因,它在每个时段都在买卖。你的“买”和“卖”变量总是50或7.5。因此,它们总是被认为是正确的。如果您的Windows()也给出了一个TRUE,那么事实上,每个bart都会出现一个条目和一个结束,这是正确的!谢谢,这就解决了。然而,它现在在每一家时间酒吧都有购买。你有没有可能知道它为什么这么做?我的图表中有一个小尖峰,显示了我的代码实际希望它在哪里买卖,但无论出于什么原因,它在每个时段都在买卖。你的“买”和“卖”变量总是50或7.5。因此,它们总是被认为是正确的。如果您的窗口()也给出了一个TRUE,那么实际上每个条上都会出现一个条目和一个结束