求TradingView PineScript新手易懂示例:识别5%以上跳空缺口
如何在Pine Script中识别并标记5%以上的跳空缺口?
嘿,我完全懂你从Java/C++转到Pine Script的那种别扭感——强类型、面向对象的思维突然切换到Pine这种声明式、面向图表的脚本,确实需要点适应时间。别担心,我给你写一个清晰易懂的脚本,完全实现你要的功能,还会逐行解释,帮你快速上手。
先明确你的需求逻辑:
若当日开盘价与前一日收盘价差值>5%,则根据跳空方向绘制绿色或红色圆圈。
完整实现代码
//@version=5 indicator("5%跳空缺口识别", overlay=true) // 计算跳空幅度百分比 gapPercent = (open - close[1]) / close[1] * 100 // 定义向上/向下跳空的条件 bullishGap = gapPercent > 5 // 开盘较前收盘涨超5% bearishGap = gapPercent < -5 // 开盘较前收盘跌超5% // 在对应位置绘制标记圆圈 plotshape(bullishGap, title="向上跳空", location=location.belowbar, color=color.green, style=shape.circle, size=size.small) plotshape(bearishGap, title="向下跳空", location=location.abovebar, color=color.red, style=shape.circle, size=size.small)
逐行解释(帮你理解Pine的核心逻辑)
//@version=5:指定使用Pine Script第5版,这是当前最常用的稳定版本,语法更简洁友好。indicator("5%跳空缺口识别", overlay=true):声明这是一个指标脚本,overlay=true让指标直接叠加在K线图上,不用单独开子窗口,看盘更直观。gapPercent = (open - close[1]) / close[1] * 100:open是当前K线的开盘价,close[1]是前一根K线的收盘价(Pine用方括号[n]引用n周期前的历史数据,这和Java/C++的数组索引逻辑有点像,但这里是针对每根K线的回溯)。- 计算逻辑就是“(当日开盘-前收盘)/前收盘 ×100”,得到跳空的百分比幅度。
bullishGap = gapPercent > 5:判断当前K线是否是向上跳空(幅度超过5%)。bearishGap = gapPercent < -5:判断当前K线是否是向下跳空(幅度超过5%,也就是跌超5%)。plotshape():Pine的绘图函数,用来绘制各种形状:location.belowbar表示把绿色圆圈画在向上跳空K线的下方,location.abovebar把红色圆圈画在向下跳空K线的上方,方向对应更清晰。size.small控制圆圈大小,你也可以改成size.medium或size.large调整视觉效果。
新手适配小贴士
- Pine是逐K线执行的:每一根K线都会从头执行一遍脚本逻辑,这和Java/C++的线性执行思维差异较大,多写几个小脚本就能快速适应。
- 灵活调整参数:如果想要识别3%的跳空,直接把
5和-5改成3和-3就行,非常方便。 - 实时调试:在TradingView里右键点击图表上的指标,选择“编辑”就能修改代码,点击“添加到图表”就能实时预览效果,调试成本很低。
内容的提问来源于stack exchange,提问作者Nick Syiek




