You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何正确使用request.security在低周期显示1D级别的pivotlow信号?

问题分析

你用request.security直接跨周期请求ta.pivotlow(1,1)的核心问题有两个:

  • 跨周期值的重复渲染:1D周期的pivotlow结果是针对单根1D K线的,但低周期图表会把这个布尔值重复显示在所有属于该1D周期的低周期K线上,导致一堆三角形重复出现,完全偏离实际低点位置。
  • 偏移逻辑不匹配:原代码里的offset=-1是基于当前低周期K线的偏移,但1D周期的pivotlow对应的是1D K线的位置,直接套用低周期的偏移会导致显示位置完全错误。
解决方法

要在低周期显示1D周期的pivotlow,需要在1D周期中记录低点的价格和时间戳,然后在低周期中匹配对应时间点,只在对应位置显示形状。

修正后的代码:

//@version=5
indicator("1D PivotLow on Lower Timeframe", overlay=true)

// 输入目标周期
CustomTimeFrame = input.timeframe("1D", title="Target Timeframe")

// 在目标周期中计算pivotlow,同时记录低点价格和时间
[isPivotLow, pivotLowPrice] = request.security(syminfo.tickerid, CustomTimeFrame, [ta.pivotlow(1, 1), low])
pivotLowTime = request.security(syminfo.tickerid, CustomTimeFrame, time)

// 只在低周期K线时间与1D周期低点时间匹配时显示形状
plotshape(pivotLowTime == time, title="1D Pivot Low", style=shape.triangleup, 
          location=location.belowbar, color=color.new(color.red, 50), 
          offset=0, size=size.small, text="1D Low")
代码说明
  • 用request.security同时获取1D周期的pivotlow布尔值、低点价格和时间戳,确保能精准定位低点的时间位置。
  • 通过pivotLowTime == time判断当前低周期K线是否正好对应1D周期的低点K线,只在这个位置显示形状,避免重复渲染。
  • 去掉了原代码中错误的offset=-1,改为offset=0,确保形状显示在对应时间的K线下方。

内容的提问来源于stack exchange,提问作者sey eeet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 12:50:26