在TradingView中使用pinescript编辑器,我注意到了一个有点奇怪的情况。当存在触发多头交易(止损)的触发器和进入同一空头上的新空头的触发器时,两者均打开,但是,该空头的头寸规模比应有的大两倍。
以下是相关代码:
// When uptrend, use upper band as a stop market buy
if (uptrend)
strategy.entry("Long", strategy.long, stop = h)
// Exit longs with a trailing stop. Assume longStopPrice is calculated per bar
if (strategy.position_size > 0)
strategy.exit("Trailing Stop", "Long", stop = longStopPrice)
// When downtrend, use lower band as a stop market sell
if (downtrend)
strategy.entry("Short", strategy.short, stop = l)
// Exit shorts with a trailing stop. Assume shortStopPrice is calculated per bar
if (strategy.position_size < 0)
strategy.exit("Trailing Stop", "Short", stop = shortStopPrice)
这是UI上的输出:
请注意,多头头寸规模为15.358918,随后几根柱形,以尾随止损尺寸-15.358918关闭。但是,在相同的条尺寸-30.70059上也开设了一个新的空头交易(不应为-30,而应为-15)。
第二次交易稍后,通过大小为+15.34的追踪止损进行平仓(但是-30被打开)。
该策略使您在回测的整个过程中净空-15个单位。理想情况下,我希望strategy.enter只输入一个单一头寸大小和止损单即可平仓,而不是输入双重头寸平仓一半。
有什么想法吗?
答案 0 :(得分:0)
如果下降趋势则添加到- 和strategy.position_size == 0