试图出售时出现脚本策略错误

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

正如您在下面的代码快照中看到的那样,我有一个买卖信号。我正尝试将其添加到图表中以进行回测,并且它会进行初始购买,但之后将永远不会出售。我不确定为什么,因为我有一个类似的脚本在做同样的事情,但是在进行反向测试时,它来回卖得很好。我已经测试了我的卖出信号买入,看是否应该在图表上弹出一条线,并且这样做了,所以我的代码可以正常工作。靠背部分出了点问题。任何帮助表示赞赏,谢谢。

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) 
debugging pine-script algorithmic-trading
1个回答
0
投票

候选代码中的问题(假设为v4):

1)根据参考手册(https://www.tradingview.com/pine-script-reference/v4),您需要将要关闭的未平仓交易的相同ID通知strategy.close,在这种情况下,将其称为“买入”,如下所示:

strategy.close("buy", when = window() and sell)

2)如果上述方法不能解决问题,请在为whenstrategy.entry调用之前,先对strategy.close条件的表达式求值,然后将结果分配给变量,然后在when参数中引用此变量。

© www.soinside.com 2019 - 2024. All rights reserved.