求Pine Script代码:计算前日3:40pm收盘价与当日9:05am开盘价价差
Pine Script 代码:计算指定时段价格变动
以下代码可实现计算前一日下午3:40收盘价与当日上午9:05开盘价的价格变动(含差值与涨跌幅),并在图表上标记关键价格点与变动数值:
//@version=5 indicator("指定时段价格变动计算", overlay=true) // 定义目标时间(24小时制,可根据时区调整时分) prev_day_target = timestamp("", year, month, dayofmonth - 1, 15, 40) // 前一日15:40 curr_day_target = timestamp("", year, month, dayofmonth, 9, 5) // 当日9:05 // 精准捕获目标时间点的价格 prev_close = request.security(syminfo.tickerid, "1", close[bar_index - ta.barssince(time == prev_day_target)]) curr_open = request.security(syminfo.tickerid, "1", open[bar_index - ta.barssince(time == curr_day_target)]) // 计算价格变动数据 price_diff = curr_open - prev_close price_pct = (price_diff / prev_close) * 100 // 控制数据显示时机(仅当日9:05后生效) var float display_prev_close = na var float display_curr_open = na var float display_diff = na var float display_pct = na if time >= curr_day_target display_prev_close := prev_close display_curr_open := curr_open display_diff := price_diff display_pct := price_pct // 绘制关键价格水平线 hline(display_prev_close, "前一日15:40收盘价", color=color.new(color.blue, 0), linestyle=hline.style_dashed) hline(display_curr_open, "当日9:05开盘价", color=color.new(color.red, 0), linestyle=hline.style_dashed) // 在最新K线显示变动详情 var label info_label = na if barstate.islast and not na(display_diff) info_label := label.new(bar_index, high + ta.atr(10), str.format("价格变动:\n差值: %.2f\n涨跌幅: %.2f%%", display_diff, display_pct), color=color.new(color.orange, 80), textcolor=color.white, style=label.style_label_down)
代码说明
- 借助
request.security调用1分钟周期数据,确保精准抓取指定时刻的报价 - 用虚线标记两个关键价格,直观展示价格位置差异
- 价格变动数据仅在当日9:05后显示,避免无效数据干扰
- 可根据交易品种所在时区,调整代码中的时分参数适配本地时间
内容的提问来源于stack exchange,提问作者Akash
相关产品推荐
相关产品推荐

