如何绘制每日开盘线并添加上下方指定标准差(SDEV)水平?
Pine Script 每日开盘线添加百分比水平实现方案
你的需求是在已有的每日开盘线基础上,添加上下方指定百分比的价格水平,以下是实现代码及说明:
实现思路
- 保留原有获取每日开盘价的逻辑
- 定义需要的正负百分比水平数组
- 计算每个百分比对应的价格(开盘价 × (1 ± 百分比/100))
- 循环绘制所有水平线条,用不同颜色区分以便识别
Pine Script v5 代码
//@version=5 indicator("每日开盘线及百分比水平", "D O", overlay=true) // 获取每日开盘价 daily_open = request.security(syminfo.tickerid, "D", open, lookahead=barmerge.lookahead_on) // 定义需要的百分比水平(正数为开盘线上方,负数为下方) levels = [0.59, 1.19, 1.5, 2.38, 3.57, -0.59, -1.19, -1.5, -2.38, -3.57] // 对应线条颜色(上方用暖色调,下方用冷色调,可自行调整) level_colors = [color.orange, color.red, color.darkred, color.maroon, color.black, color.blue, color.navy, color.darkblue, color.teal, color.green] // 绘制原每日开盘线 plot(daily_open, title="每日开盘价", color=color.yellow, linewidth=2, trackprice=true) // 循环绘制所有百分比水平线条 for i = 0 to array.size(levels) - 1 current_pct = array.get(levels, i) level_price = daily_open * (1 + current_pct / 100) plot(level_price, title=str.tostring(current_pct) + "%", color=array.get(level_colors, i), linewidth=1, trackprice=true)
Pine Script v4 兼容代码
如果你仍在使用v4版本,可使用以下代码:
//@version=4 study("每日开盘线及百分比水平", "D O", overlay=true) // 获取每日开盘价 daily_open = security(syminfo.tickerid, "D", open, lookahead=barmerge.lookahead_on) // 定义需要的百分比水平 levels = [0.59, 1.19, 1.5, 2.38, 3.57, -0.59, -1.19, -1.5, -2.38, -3.57] // 对应线条颜色 level_colors = [color.orange, color.red, color.darkred, color.maroon, color.black, color.blue, color.navy, color.darkblue, color.teal, color.green] // 绘制原每日开盘线 plot(daily_open, title="每日开盘价", color=color.yellow, linewidth=2, trackprice=true) // 循环绘制所有百分比水平线条 for i = 0 to array.size(levels) - 1 current_pct = array.get(levels, i) level_price = daily_open * (1 + current_pct / 100) plot(level_price, title=tostring(current_pct) + "%", color=array.get(level_colors, i), linewidth=1, trackprice=true)
说明
overlay=true设置指标叠加在主图上,和原开盘线保持同一视图- 颜色数组可根据个人喜好自行修改,替换成你习惯的配色即可
trackprice=true会在价格轴上显示每个水平的价格标签,方便快速查看对应价位
内容的提问来源于stack exchange,提问作者Master Owl
相关产品推荐
相关产品推荐

