如何为TradingView枢轴脚本添加双左看变体(lbL=5与lbL=10)
TradingView脚本双左看逻辑实现方案
这个需求完全可行,只需要在原有脚本基础上复制一套逻辑,将左看参数替换为lbL=10,同时区分对应的变量与绘图标识,就能同时实现左看5根和10根K线的 pivot 检测与信号判断。
以下是修改后的完整脚本:
//@version=5 indicator("双左看Pivot信号", overlay=false) // 基础参数定义 lbR = 5 lbL_5 = 5 // 左看5根K线 lbL_10 = 10 // 左看10根K线 rangeUpper = 60 rangeLower = 5 // 工具函数:判断是否在指定K线范围内 _inRange(cond) => bars = ta.barssince(cond == true) rangeLower <= bars and bars <= rangeUpper // -------------------------- 左看5根K线的逻辑(原有逻辑) -------------------------- plFound_5 = not na(ta.pivotlow(osc, lbL_5, lbR)) phFound_5 = not na(ta.pivothigh(osc, lbL_5, lbR)) // 常规看涨信号(左看5) oscHL_5 = osc[lbR] > ta.valuewhen(plFound_5, osc[lbR], 1) and _inRange(plFound_5[1]) priceLL_5 = close[lbR] < ta.valuewhen(plFound_5, close[lbR], 1) bullCond_5 = priceLL_5 and oscHL_5 and plFound_5 plot(plFound_5 ? osc[lbR] : na, offset=-lbR, title='常规看涨(左看5)', linewidth=2, color=bullCond_5 ? color.new(color.green, 0) : na, style=plot.style_circles) // 常规看跌信号(左看5) oscLH_5 = osc[lbR] < ta.valuewhen(phFound_5, osc[lbR], 1) and _inRange(phFound_5[1]) priceHH_5 = close[lbR] > ta.valuewhen(phFound_5, close[lbR], 1) bearCond_5 = priceHH_5 and oscLH_5 and phFound_5 plot(phFound_5 ? osc[lbR] : na, offset=-lbR, title='常规看跌(左看5)', linewidth=2, color=bearCond_5 ? color.new(color.red, 0) : na, style=plot.style_circles) // -------------------------- 左看10根K线的新增逻辑 -------------------------- plFound_10 = not na(ta.pivotlow(osc, lbL_10, lbR)) phFound_10 = not na(ta.pivothigh(osc, lbL_10, lbR)) // 常规看涨信号(左看10) oscHL_10 = osc[lbR] > ta.valuewhen(plFound_10, osc[lbR], 1) and _inRange(plFound_10[1]) priceLL_10 = close[lbR] < ta.valuewhen(plFound_10, close[lbR], 1) bullCond_10 = priceLL_10 and oscHL_10 and plFound_10 plot(plFound_10 ? osc[lbR] : na, offset=-lbR, title='常规看涨(左看10)', linewidth=2, color=bullCond_10 ? color.new(color.lime, 0) : na, style=plot.style_circles) // 常规看跌信号(左看10) oscLH_10 = osc[lbR] < ta.valuewhen(phFound_10, osc[lbR], 1) and _inRange(phFound_10[1]) priceHH_10 = close[lbR] > ta.valuewhen(phFound_10, close[lbR], 1) bearCond_10 = priceHH_10 and oscLH_10 and phFound_10 plot(phFound_10 ? osc[lbR] : na, offset=-lbR, title='常规看跌(左看10)', linewidth=2, color=bearCond_10 ? color.new(color.orange, 0) : na, style=plot.style_circles)
修改说明:
- 把原有
lbL拆分为lbL_5和lbL_10,分别对应左看5根和10根K线的参数 - 为左看10的逻辑新增独立变量(比如
plFound_10、bullCond_10),避免和原有逻辑变量冲突 - 新增的信号用不同颜色区分(比如左看10的看涨用 lime 绿,看跌用 orange 橙),方便在图表上识别
- 保留原有工具函数
_inRange,两套逻辑共用即可,无需重复定义
内容的提问来源于stack exchange,提问作者Exlusivité Web
相关产品推荐
相关产品推荐

