Pine Script需求:回溯期内条件A K线下穿条件B K线时绘制信号
当然可以实现,以下是具体的Pine Script代码实现,包含详细逻辑注释:
//@version=5 indicator("A下穿B信号", overlay=true) // 可自定义的回溯周期参数,默认5根K线 lookbackPeriod = input.int(5, title="回溯周期", minval=1) // 条件A:当前K线下影线跌破前一根K线低点,但收盘价收回至前低上方 conditionA = low < low[1] and close > low[1] // 条件B:前一根K线向下跳空(收盘价低于前两根K线低点),且当前K线收阳 conditionB = close[1] < low[2] and open < close // 跟踪最近回溯周期内出现的条件B K线的低点 var float lastBLow = na if conditionB lastBLow := low // 若超过回溯周期未再出现条件B,重置记录值 if bar_index - ta.barssince(conditionB) > lookbackPeriod lastBLow := na // 信号触发条件:满足条件A,且当前K线低点下穿最近周期内的条件B K线低点 signal = conditionA and not na(lastBLow) and low < lastBLow // 在满足信号的K线下方绘制红色向下箭头 plotshape(signal, title="触发信号", location=location.belowbar, color=color.red, style=shape.triangledown, size=size.small)
逻辑说明
- 回溯周期通过参数
lookbackPeriod可自由调整,适配不同的时间框架需求 - 若需要修改“下穿”的判断标准(比如改为跌破条件B K线的收盘价或整个K线区间),只需调整
signal中的比较条件即可,例如将low < lastBLow替换为low < close[ta.barssince(conditionB)] - 代码通过
ta.barssince跟踪条件B的出现位置,确保只在指定周期内的B线触发信号
内容的提问来源于stack exchange,提问作者donsterrrrr
相关产品推荐
相关产品推荐

