Pine Script添加常规时段25%/75%线编译错误求助
问题原因与解决方案
错误根源
你混淆了变量类型:plot()函数的返回值是绘图对象,并非价格数值。你把这个绘图对象赋值给变量m后,又试图将其当作浮点数进行加法运算,直接触发了类型不匹配的编译错误。
修正思路
先单独计算出所有需要的价格水平(中线、25%位、75%位)的数值,将这些数值存入变量,再用plot()函数分别绘制这些数值即可。
修正后的代码
//@version=5 indicator("test 25 75 Regular Session High Low Mid", overlay=true) D_High = request.security(syminfo.tickerid, 'D', high, lookahead = barmerge.lookahead_on) D_Low = request.security(syminfo.tickerid, 'D', low, lookahead = barmerge.lookahead_on) // 先计算所有价格水平的数值 mid_line = (D_High + D_Low) / 2 // 中线(50%) qtr1_line = (D_Low + mid_line) / 2 // 25%线 qtr3_line = (D_High + mid_line) / 2 // 75%线 // 分别绘制各条线 plot(timeframe.isintraday ? D_High : na, title="Reg Sess High", style=plot.style_circles, color=#ff0000, linewidth=1) plot(mid_line, title="Reg Sess Mid", style=plot.style_circles, color=#ffeb3b, linewidth=1) plot(timeframe.isintraday ? D_Low : na, title="Reg Sess Low", style=plot.style_circles, color=#ff0000, linewidth=1) plot(qtr3_line, title="Reg Sess 75%", style=plot.style_circles, color=#2196F3, linewidth=1) plot(qtr1_line, title="Reg Sess 25%", style=plot.style_circles, color=#2196F3, linewidth=1)
关键修改说明
- 拆分数值计算与绘图操作:先通过变量存储所有合法的浮点数值,确保后续运算类型匹配
- 给25%/75%线设置了区分于中线的蓝色(#2196F3),你可根据需求调整颜色
- 25%/75%线也可用更直观的方式计算,结果与原逻辑完全一致:
qtr1_line = D_Low + (D_High - D_Low) * 0.25 qtr3_line = D_Low + (D_High - D_Low) * 0.75
内容的提问来源于stack exchange,提问作者Carlos Romero
相关产品推荐
相关产品推荐

