Pine Editor 教程 #3:一键高亮交易时段——从源码到实战

·

在前两篇教程里,我们一起画过“圆点”标记关键价位,也锁定过特定日期做可视化研究。今天,Pine Script高阶爱好者肉眼可见的痛点来了:怎么把一整段交易时段(Sessions)用醒目的色块标出来,并随时开关?这份指南不仅教你十行代码搞定,还给你把时段分割、策略融合性能优化玩透。

核心关键词:Pine Script、Pine Editor、交易时段、TradingView代码、Indicator源码、Session高亮、策略回测、开盘价收盘价、时区切换、肉眼可见。


1. 交易时段到底是什么?

外汇、商品、指数里,资金活跃时间有高有低。把伦敦盘、纽约盘、亚太盘分别着色后:

👉 点我立刻对比在不同交易时段出场,盈亏差距有多离谱!


2. 十行代码:把时段画成彩色条

打开Pine Editor,只要把下段代码粘到图里,再勾上「显示时段」,效果立刻铺满整屏。

  1. 将时段做成 input.bool,随时开关。
  2. inSession() 判定是否落在目标时段。
  3. bgcolor() 设置半透明度,既不影响蜡烛,又足够醒目。

核心代码示例(已去除冗余,新手可直接复制):

//@version=5
indicator("Session Highlight Example", overlay=true)

//====输入模块====
i_showLondon = input.bool(true, "显示伦敦盘")
i_showNY     = input.bool(true, "显示纽约盘")
alpha        = input.int(90, "着色透明度", minval=0, maxval=100)

//====时段判定====
london = time(timeframe.period, "0700-1600")
ny     = time(timeframe.period, "1300-2200")

//====绘图====
bgcolor(i_showLondon and london  ? color.new(color.blue, alpha)  : na)
bgcolor(i_showNY     and ny      ? color.new(color.orange, alpha): na)

要点快记:


3. 深度玩法:把时段缝进量化策略

3.1 信号过滤:只在活跃时段开仓

示例逻辑:

3.2 分时止损:按收盘价动态止盈

相比固定止损,策略可设置在 时段结束 前 15 分钟平仓,有效避让长影线突袭。

if barstate.isconfirmed and not london  // 伦敦盘结束
    strategy.close("Long", abs(strategy.position_size), alert="时段关闭,自动平仓")

4. 性能优化:可别把电脑风扇吵起来


5. 实战案例:两块区域里突发的“假突破”

2024-06-03 非农当晚,纽盘提前 1 小时波动激增;伦敦盘已收。

👉 看看这段历史K线回放,如何让误判率瞬间减半?


常见问题 FAQ

Q1:London、NY 时段用的是哪个时区?
A:Pine Script 默认用图表券商时间。想锁定 GMT+0,把 time(timeframe.period, "0700-1600", "GMT") 的第三个参数写好即可。

Q2:如何同时高亮两个交易时段但又让第二波颜色盖住第一波?
A:反向先后顺序。谁想在上层,就把谁的 bgcolor() 写在更后面

Q3:能否自定义 A 股早盘 09:30~11:30,午盘 13:00~15:00?
A:两段串字符 "0930-1130,1300-1500" 丢进 time() 即可识别。

Q4:想把波段改成长方形阴影而不是全屏背景?
A:把 bgcolor() 换成 fill(),并结合 hline() 指定上下边界,色块更立体。

Q5:strategy.exit 可否跟时段绑定?
A:可以。把 time(...) 判定的布尔变量传入 when= 参数就行,回测时止损止盈同样会识别。

Q6:如何添加周末/假日的例外判定?
A:先用 dayofweek() 排除周六、日,再叠加 not holiday,假期列表用 CSV 拉进脚本。


6. 小结 & 下一步预告

到这里,你已经:

下期《Pine 教程 #4》:我们将把“时段”+“成交量分布”结合,打造时段加权量能指标——让主力在盘中再也烧不了你的眼睛。敬请期待!