首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pine-script如何知道上次交易是否止损,等待n栏打开新的交易,如何引用上次交易的id

pine-script如何知道上次交易是否止损,等待n栏打开新的交易,如何引用上次交易的id
EN

Stack Overflow用户
提问于 2020-03-29 06:14:54
回答 2查看 949关注 0票数 1

我在Pine脚本代码中有一个尾随的停靠点。如果最后一笔交易是止损,我想在新的交易之前等待n个酒吧的策略。N可以是一个输入。最好的方法是检查最后一笔交易的id是什么。如果id与交易的id匹配,我就可以开始计算条形图了。如何引用最后一笔交易的id?谢谢

EN

回答 2

Stack Overflow用户

发布于 2020-03-30 09:16:38

没有任何机制可以通过id引用过去的交易。你可以使用类似这样的东西来计算自上次损失以来的条形图,并对其进行测试:

代码语言:javascript
复制
lastTradeResult = change(strategy.netprofit)
barsSinceLastLoss = barssince(lastTradeResult < 0)
票数 2
EN

Stack Overflow用户

发布于 2020-12-31 08:57:45

我相信下面的方法可能会对你有用。对于每次脚本迭代,您可以检查当前条形图的losstrades系列变量自上一个条形图以来是否有所增加,从而让您知道上一次交易是亏损的,反之亦然。

至于获取最后一笔交易的id,您可以跟踪它们,并在进行交易时将它们存储在var中,以便在以后的迭代中访问。

代码语言:javascript
复制
//@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, ...)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60907653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档