如何设置技术评级指标的连续两根K线强买入预警
技术评级预警代码验证与优化建议
需求说明
要在1小时图表设置预警,触发条件很明确:当前K线和上一根K线的技术评级都得是强买入——要是上一根是卖出、当前转成强买入,这种情况不能触发预警。
你的测试代码
_lastbar = calcRatingStatusalert(ratingTotal_mtf1hA)[1] == "0" _condblb1hsb = _lastbar and calcRatingStatusalert(ratingTotal_mtf1hA) == "0" alertcondition(_condblb1hsb, "lb sb, 1h sb", "lb sb, 1h sb")
代码准确性分析
从逻辑上看,你的代码是能实现需求的:
calcRatingStatusalert(ratingTotal_mtf1hA)[1] == "0"是判断上一根K线的评级为强买入(假设"0"对应的是强买入)- 再结合当前K线的评级也等于"0",两个条件同时满足才触发预警,完全符合你要的规则。
不过代码有个小问题:你重复调用了calcRatingStatusalert函数两次,在Pine Script里,重复调用同一个函数可能会浪费计算资源,要是这个函数本身有复杂逻辑,还可能出现不必要的错误。
优化后的代码
可以先把当前K线的评级结果存成变量,再用这个变量和上一根的结果做判断,代码更高效:
// 先获取当前K线的评级结果 _currentRating = calcRatingStatusalert(ratingTotal_mtf1hA) // 判断当前和上一根K线都是强买入("0") _condblb1hsb = _currentRating == "0" and _currentRating[1] == "0" alertcondition(_condblb1hsb, "连续1小时强买入预警", "连续1小时强买入预警")
这样写不仅逻辑和你原来的完全一致,还减少了一次函数调用,代码可读性也更高。
内容的提问来源于stack exchange,提问作者shahzaib
相关产品推荐
相关产品推荐

