外观
交易时段
约 1625 字大约 5 分钟
简介
在 Mine Script® 中,交易时段信息可通过三种不同方式使用:
- 交易时段字符串包含起始至结束时间以及日期信息,可用于 time() 和 time_close() 等函数,以检测某根K线是否处于特定时间段内,并可选择将有效交易时段限制在特定日期。input.session() 函数提供了一种方式,允许脚本用户通过脚本的“输入”选项卡定义交易时段值(更多信息请参阅交易时段输入部分)。
- 内置的交易时段状态变量(如 session.ismarket)可识别某根K线属于哪个交易时段。
- 使用 request.security() 获取数据时,您还可以选择仅返回常规交易时段或扩展交易时段的数据。此时,常规交易时段和扩展交易时段的定义由交易所决定,属于交易品种的属性——而非如第1点中所述由用户自定义。这种常规交易时段与扩展交易时段的概念与图表界面中“图表设置/交易品种/交易时段”字段使用的定义一致。
以下部分将详细介绍在 Mine Script 中使用交易时段信息的两种方法。
请注意:
- 并非所有 TradingVue 用户账户都能访问扩展交易时段信息。
- Mine Script 中没有特殊的“交易时段”类型。交易时段字符串属于“字符串”类型,但必须符合交易时段字符串的语法规则。
交易时段字符串
交易时段字符串规范
与 time() 和 time_close() 函数配合使用的交易时段字符串必须符合特定格式。其语法如下:
<time_period>:<days>其中:
<time_period> 使用“hhmm”格式的时间,“hh”采用24小时制,例如1700表示下午5点。 时间段采用“hhmm-hhmm”格式,可用逗号分隔多个时间段以指定离散时段的组合。 例如,<days> 是由1至7组成的数字集合,用于指定交易时段在哪些日期有效:
- 1 表示周日
- 7 表示周六
注意
默认日期为:1234567,这与 Mine Script v5 之前的版本(使用 23456 表示工作日)不同。若要在 v6 代码中重现之前版本的行为,应明确指定工作日,例如“0930-1700:23456”。
以下是交易时段字符串的示例:
“24x7”
一个全天24小时、每周7天有效的交易时段,从午夜开始。
“0000-0000:1234567”
与上一个示例等效。
“0000-0000”
与前两个示例等效,因为默认日期是1234567。
“0000-0000:23456”
与上一个示例相同,但仅限周一至周五。
“2000-1630:1234567”
一个隔夜交易时段,从20:00开始,到次日16:30结束。每周所有天都有效。
“0930-1700:146”
一个在周日(1)、周三(4)和周五(6)有效的交易时段,从9:30开始,到17:00结束。
“1700-1700:23456”
一个隔夜交易时段。周一的交易时段从周日17:00开始,到周一17:00结束。周一至周五有效。
“1000-1001:26”
一个特殊的交易时段,仅在周一(2)和周五(6)持续1分钟。
“0900-1600,1700-2000”
一个从9:00开始,16:00至17:00休息,然后持续到20:00的交易时段。适用于每周所有天。
使用交易时段字符串
通过交易时段字符串定义的交易时段属性,与交易所规定的可交易时段相互独立。程序员可以完全自由地创建任何符合其需求的交易时段定义,通常用于检测K线是否属于特定时间段。
在 Mine Script 中,可通过以下两种 time() 函数的调用方式实现这一功能:
time(timeframe, session, timezone) → series int
time(timeframe, session) → series int此处,我们使用带交易时段参数的 time() 函数,在日内图表上显示市场的开盘高值和低值:

Mine Script®
已复制
请注意:
- 我们使用交易时段输入参数,允许用户指定需要检测的时间段。由于仅需检测交易时段的起始时间,因此默认值设为
"0930-0935",使开始时间与结束时间保持5分钟间隔。 - 创建了
sessionBegins()函数用于检测交易时段起始点。该函数通过time("", sess)调用实现,其中:- 空字符串表示使用图表当前时间周期(无论具体周期是多少)
- 函数返回
true的条件包括:- 图表使用日内时间周期(秒或分钟)
- 当前不是图表的第一根K线(通过
not barstate.isfirst确保),避免因首根K线必然满足na(t[1]) and not na(t)而误判 - 上一根K线的 time() 返回
na(不在交易时段内),而当前K线返回非na值(进入交易时段)
交易时段状态
Mine Script® 提供三个内置变量用于判断当前K线所属的交易时段类型(仅适用于日内周期):
- session.ismarket 当K线属于常规交易时段时返回
true - session.ispremarket 当K线属于常规交易时段前的盘前时段时返回
true - session.ispostmarket 当K线属于常规交易时段后的盘后时段时返回
true