TradingView Pine Script中价格箱体及基于价格水平的百分比水平线绘制可行性咨询
价格箱体与自定义百分比水平绘制(Pine Script实现方案)
当然可以实现!TradingView的Pine Script完全支持这类价格箱体和自定义百分比水平的绘制需求,我给你准备了一个完整的可运行示例,还附带了灵活调整的选项。
核心实现思路
- 先定义箱体的顶部/底部价格(支持手动输入或自动识别)
- 根据指定的百分比,从箱体的任意一端计算目标价格
- 用Pine Script的
hline()函数绘制所有水平参考线,还可以添加价格标签增强可读性
完整代码示例
//@version=5 indicator("价格箱体与百分比水平", overlay=true, shorttitle="Box & Levels") // ------------ 可自定义参数 ------------ // 选项1:手动输入箱体价格(适合已知固定箱体的场景) box_top = input.float(100, title="箱体顶部价格", tooltip="手动设置箱体的顶部价格") box_bottom = input.float(70, title="箱体底部价格", tooltip="手动设置箱体的底部价格") drop_pct = input.float(10, title="从顶部向下的跌幅百分比 (%)", minval=0.1, maxval=100) // 选项2:自动识别最近N根K线的高低点作为箱体(取消注释即可启用) // lookback_period = input.int(50, title="箱体识别周期", minval=10) // box_top = ta.highest(high, lookback_period) // box_bottom = ta.lowest(low, lookback_period) // ------------ 计算目标价格 ------------ // 从顶部向下计算指定跌幅的价格 target_price = box_top * (1 - drop_pct / 100) // 如果需要从底部向上计算涨幅,用下面这行替换上面的代码 // target_price = box_bottom * (1 + rise_pct / 100) // ------------ 绘制水平参考线 ------------ // 箱体顶部(绿色实线) hline(box_top, "箱体顶部", color=color.green, linestyle=hline.style_solid, linewidth=2) // 箱体底部(红色实线) hline(box_bottom, "箱体底部", color=color.red, linestyle=hline.style_solid, linewidth=2) // 百分比目标水平(蓝色虚线) hline(target_price, str.tostring(drop_pct) + "% 跌幅水平", color=color.blue, linestyle=hline.style_dashed, linewidth=2) // ------------ 可选:添加价格标签 ------------ // 在最新K线位置显示目标价格的数值 var label target_label = label.new(bar_index, target_price, str.tostring(target_price, "#.##"), color=color.blue, textcolor=color.white, style=label.style_label_up, size=size.small) label.set_xy(target_label, bar_index, target_price)
代码说明
- 参数灵活性:默认用手动输入箱体价格,你可以切换到自动识别模式(取消注释对应代码),通过调整
lookback_period来控制箱体的识别范围。 - 计算逻辑:
target_price的公式很直观,从顶部下跌N%就是顶部价格 × (1 - N/100),如果要从底部计算涨幅,改成底部价格 × (1 + N/100)即可。 - 可视化优化:用不同颜色和线型区分箱体边界和目标水平,添加的标签会跟随最新K线位置显示价格,不用手动查看数值。
你可以直接把这段代码复制到TradingView的Pine编辑器里,调整参数就能看到效果啦!
内容的提问来源于stack exchange,提问作者Sathish Rosario
相关产品推荐
相关产品推荐

