pine-script - 仅在 N 个柱后退出交易(仅有时有效?)
问题描述
我正在修改一个策略,只在一定数量的蜡烛后退出交易。
我输入了一个输入timeframe
(在脚本的输入部分)并在底部(barssince
)设置了退出规则 - 它在很多时候都在工作,但一些交易仍然会更快结束。无法弄清楚是什么原因造成的。
还需要做什么才能使其仅在指定的柱数上退出交易?
这是脚本:https ://pastebin.com/8HQyJxa0 (更新)
似乎当设置更长的到期时间时,向上交易过早关闭向下交易,反之亦然。我真的需要两个交易能够同时运行,仅在指定的柱数后关闭timeframe
更新:显然使用strategy.position_size <= 0
来指定没有股票或借来可以避免它关闭我当前的未平仓头寸 - 但不确定这如何适合当前脚本。
解决方案
使用的问题strategy.opentrades == 0
是它不考虑新的交易。因此,如果您先做多单,然后再做空,则计数不会重新开始,因为未平仓交易的数量是相同的,并且计数将保持与从多头订单开始一样。
这就是我喜欢使用 的原因strategy.position_size
,因为它基于职位的数量。因此,如果数量发生变化,要么是因为关闭了一个仓位(因此它下降到 0),要么是因为打开了一个新仓位。因为它,我不得不将 1 添加到 bar 变量,但它有效。
opened_order = strategy.position_size[0] != strategy.position_size[1] and strategy.position_size[0] != 0
bars = barssince(opened_order) + 1
strategy.close_all(when=(bars>=timeframe))
推荐阅读
- php - 阻止访问特定目录路径
- amazon-web-services - AWS Cloudwatch 指标 - 如何将仪表板指标中的数字格式化为小数点后两位以上
- python-3.7 - 有没有办法用 conda 和 python 3.7 安装 pykml?
- rest - 如何在 Kubernetes 中获取对象的元数据名称
- json - 从 mongodb 中的单独集合创建具有两个对象数组的视图
- reactjs - 用控制器包装后,测试文件中无法识别 data-testid?
- javascript - JS 面试题:是否总是保证 setTimeOut(function(){}, 5000) 会在 5 秒后执行?
- apache-flink - Apache Flink:找不到指定执行的兼容工厂。目标(=本地)
- python - 数据框乘以相应的索引值
- javascript - 如何转换 javascript var obj = {}; 到 C#?