微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将特定范围定义为“sumx,len”的长度?

如何解决如何将特定范围定义为“sumx,len”的长度?

我想检查某个条件在回溯期的前半段是否至少满足一次,然后在该段的后半段是否至少再次满足一次。

我正在尝试使用以下代码执行此操作,如 I've learned here。但我没有弄清楚如何使 len 成为一个范围。

所以我的问题是:如何使 len 成为一个范围? (在 len 下方为 lenFirstHalflenSecondHalf)。

任何帮助将不胜感激!

lookBack = input(title="Lookback",type=input.integer,defval=24,minval=2)
condition = close > open
lenFirstHalf = (<GREATER THAN> (lookBack/2)) and (<LESS THAN OR EQUAL TO> lookback)
lenSecondHalf = (<GREATER THAN OR EQUAL TO> 1) and (<LESS THAN OR EQUAL TO (lookback/2))

// Check if the condition is met in the FirsT half of the lookback period
triggerA = (sum(condition ? 1 : 0,lenFirstHalf)) >= 1 ? true : false
// Check if the condition is met in the SECOND half of the lookback period
triggerB = (sum(condition ? 1 : 0,lenSecondHalf)) >= 1 ? true : false

显然,那些 <GREATER THAN><LESS THAN OR EQUAL TO> 不存在,但我不知道如何将这样的范围归因于变量。

解决方法

我认为这样的事情应该可行。

lookBack = input(title="Lookback",type=input.integer,defval=24,minval=2)

condition     = close > open

sumLookBack   = sum(condition ? 1 : 0,lookBack)
sumSecondHalf = sum(condition ? 1 : 0,lookBack/2)
sumFirstHalf  = sumLookBack - sumSecondHalf

// Check if the condition is met in the FIRST half of the lookback period
triggerA = sumFirstHalf >= 1 ? true : false
// Check if the condition is met in the SECOND half of the lookback period
triggerB = sumSecondHalf >= 1 ? true : false

您在 length 中使用的 sum() 用于计算从 length 个柱到最新柱的总和。
所以首先计算整个长度,然后减去“第二个”一半,你得到“第一”一半。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。