pine-script - PineScript / 交易视图:如何在策略中检查未结订单
问题描述
pma = sma(maSource, periods)
entryLong = close * 1.10
longCondition = close >= pma
if longCondition
strategy.entry(id = "Long Entry", long = true, stop = entryLong)
有几个条可以连续满足这个longCondition,但我不希望后面的条覆盖前面的条。理想情况下,我想添加一个检查以查看是否 strategy.openentries == 0 ,但在 Tradingview 中当然不存在这样的变量。
想做这样的事情:
pma = sma(maSource, periods)
entryLong = close * 1.10
longCondition = close >= pma
if longCondition and strategy.openorders == 0
strategy.entry(id = "Long Entry", long = true, stop = entryLong)
if barssince(longCondition) = 3
strategy.cancel(id = "Long Entry")
感谢您的任何建议!
解决方案
您可以检查上一个柱上的条件是否为真并忽略当前柱。因此,连续出现的事件将被忽略。
pma = sma(close, 10)
entryLong = close * 1.10
longCondition = close >= pma
long = longCondition and not nz(longCondition[1])
// debug
bgcolor(longCondition ? color.green : na)
bgcolor(long ? color.blue : na)
您还可以使用内置的 strategy.position_size 函数。
strategy.position_size > 0 // long is opened.
strategy.position_size < 0 // short is opened.
strategy.position_size == 0 // no opened positions
推荐阅读
- python - 统一 2 幅图像的亮度
- python - 如何在python中使用相同的键在不同行中划分具有多个值的列
- python - 如何在熊猫数据框中迭代时间跨度
- python - 如何修复 pyinputplus 中不支持的操作数类型?
- google-chrome - 带有标签的通知不显示在 Chrome 上
- python - win 10上python中的相对路径
- amazon-web-services - 如何在 AWS CodeBuild 中使用 git lfs?
- c - 使用 fputs() 写入后,Smali 文件已损坏
- r - 使用 purrr 中的 map 函数在 R 中的一个 UMAP 函数上测试 2 个参数
- java - 如何根据某些条件过滤掉枚举列表?