我在Pine脚本代码中有一个尾随的停靠点。如果最后一笔交易是止损,我想在新的交易之前等待n个酒吧的策略。N可以是一个输入。最好的方法是检查最后一笔交易的id是什么。如果id与交易的id匹配,我就可以开始计算条形图了。如何引用最后一笔交易的id?谢谢
发布于 2020-03-30 09:16:38
没有任何机制可以通过id引用过去的交易。你可以使用类似这样的东西来计算自上次损失以来的条形图,并对其进行测试:
lastTradeResult = change(strategy.netprofit)
barsSinceLastLoss = barssince(lastTradeResult < 0)发布于 2020-12-31 08:57:45
我相信下面的方法可能会对你有用。对于每次脚本迭代,您可以检查当前条形图的losstrades系列变量自上一个条形图以来是否有所增加,从而让您知道上一次交易是亏损的,反之亦然。
至于获取最后一笔交易的id,您可以跟踪它们,并在进行交易时将它们存储在var中,以便在以后的迭代中访问。
//@version=4
strategy("Bars after loss", overlay=true)
var lastTradeId = "somerandomid"
var lastTradeWasLoss = false
barsWait = 5 // our N
if (strategy.losstrades[0] > strategy.losstrades[1])
// last trade was a loss
lastTradeWasLoss := true
if (strategy.wintrades[0] > strategy.wintrades[1])
// successful trade, reset
lastTradeWasLoss := false
// Check if strategy has no open position
isFlat = (strategy.position_size == 0)
// Check if strategy had no open position for more than N bars
if (isFlat and lastTradeWasLoss and barssince(ifFlat) > barsWait)
// it's been more than N bars since last position was flat
// store last trade id for later use
lastTradeId := "somethingotherrandom"
// execute trade
strategy.entry(id=lastTradeId, ...)https://stackoverflow.com/questions/60907653
复制相似问题