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

如何在不使用plot offset=的前提下偏移特定日期数组的绘制位置

Pine Script:无plot offset实现历史数据偏移至指定日期绘制

感谢mr_statler的帮助,我已经通过safePlotD1 = array.size(D1) > 0 ? array.get(D1, 0) : na实现了数组数据的绘制,但需要在不使用plot offset=参数的前提下,将绘制结果从day = input.time指定的位置开始偏移到当前日期方向展示。

现有代码

indicator("Volume avg", overlay = false)

day = input.time(timestamp("14 Feb 2023 00:00"), "Date", confirm= false)

w1back = time >= day - 604800000 and  time < day - 604800000 + 86400000


var D1 =  array.new_float(0)
if w1back
    array.unshift(D1, volume)

var my_array = array.new_float(0)

safePlotD1 = array.size(D1) > 0 ? array.get(D1, 0) : na

plot(safePlotD1)

解决方案

核心思路是记录指定日期对应的K线索引,再通过当前K线与目标索引的差值匹配数组数据,实现偏移绘制:

indicator("Volume avg", overlay = false)

day = input.time(timestamp("14 Feb 2023 00:00"), "Date", confirm= false)
w1back = time >= day - 604800000 and time < day - 604800000 + 86400000

// 存储目标时间段的成交量数据
var D1 = array.new_float(0)
if w1back
    array.unshift(D1, volume)

// 记录指定day对应的K线索引
var int day_bar_index = na
if time == day
    day_bar_index := bar_index

// 计算偏移量并匹配数组数据
offset_data = na
if not na(day_bar_index) and bar_index >= day_bar_index
    idx = bar_index - day_bar_index
    if idx < array.size(D1)
        offset_data := array.get(D1, idx)

// 绘制偏移后的数据
plot(offset_data)

代码说明

  • day_bar_index记录day对应的K线位置,作为偏移计算的基准
  • 通过bar_index - day_bar_index得到当前K线与目标日期的索引差,以此从数组中取出对应位置的成交量数据
  • 仅当当前K线在目标日期之后、且索引差在数组长度范围内时,才返回有效数据,确保从指定日期开始连续绘制

内容的提问来源于stack exchange,提问作者Shuman Rotula

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 17:01:11