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

如何获取最后一根K线的毫秒级常量时间并实现24小时前标记

问题1:获取最后一根K线的毫秒级常量时间(全K线显示)

要让所有K线都显示最后一根K线的毫秒时间,核心是用var变量存储该值——var只会在脚本初始化时赋值一次,后续仅在最后一根K线更新时修改,确保历史K线同步显示最新的最后K线时间。

示例代码:

//@version=5
indicator("最后K线常量毫秒时间", overlay=false)

// 初始化变量,仅在脚本启动时执行一次
var float lastBarMsTime = time
// 仅在最后一根K线更新时,同步最新时间
if barstate.islast
    lastBarMsTime := time

// 绘制常量时间值
plot(lastBarMsTime, title="最后K线毫秒时间", color=color.blue, linewidth=2)

所有K线都会显示同一个最后K线的毫秒时间,不会出现随历史K线时间上升的趋势。

问题2:在最后一根K线24小时前标记"TRUE"条件

通过计算最后K线时间的24小时前毫秒值,匹配对应K线后绘制标记,以下是两种适配不同场景的实现方式:

方式1:精准匹配K线时间

适合周期固定且目标时间恰好是K线起始时间的场景:

//@version=5
indicator("24小时前标记", overlay=true)

// 存储最后一根K线的毫秒时间
var float lastBarMsTime = time
if barstate.islast
    lastBarMsTime := time

// 计算24小时前的毫秒时间(24*60*60*1000 = 86400000毫秒)
targetMsTime = lastBarMsTime - 86400000

// 判断当前K线是否为目标时间
isTargetBar = time == targetMsTime

// 在目标K线下方绘制标记
plotshape(isTargetBar, title="24小时前标记", location=location.belowbar, 
          color=color.green, style=shape.labelup, text="TRUE", textcolor=color.white)

方式2:匹配最近的K线

如果目标时间落在K线周期内,用ta.valuewhen定位最近的K线:

//@version=5
indicator("24小时前标记(适配周期)", overlay=true)

var float lastBarMsTime = time
if barstate.islast
    lastBarMsTime := time

targetMsTime = lastBarMsTime - 86400000
// 找到时间小于等于目标时间的最近K线索引
targetBarIdx = ta.valuewhen(time <= targetMsTime, bar_index, 0)
isTargetBar = bar_index == targetBarIdx

plotshape(isTargetBar, title="24小时前标记", location=location.belowbar, 
          color=color.orange, style=shape.labelup, text="TRUE", textcolor=color.white)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 18:12:37