外观
图表信息
约 1778 字大约 6 分钟
简介
脚本获取当前运行图表和交易品种信息的方式是通过MIne Script®内置变量的特定子集。本文涵盖的变量允许脚本访问以下相关信息:
- 图表的价格和成交量数据
- 图表对应的交易品种
- 图表的时间周期
- 品种的交易时段(或交易时间周期)
价格和成交量
用于OHLCV值的内置变量包括:
open:该K线的开盘价 high:该K线的最高价,或实时K线已持续时间内的最高价 low:该K线的最低价,或实时K线已持续时间内的最低价 close:该K线的收盘价,或实时K线的当前价格 volume:该K线期间的成交量,或实时K线已持续时间内的成交量。成交量信息的单位因交易品种而异:股票以股为单位,外汇以手为单位,期货以合约为单位,加密货币以基础货币为单位等。
其他可通过以下内置变量获取的衍生价格值:
在历史K线上,上述变量的值不会发生变化,因为历史K线仅包含OHLCV信息。当脚本在历史K线上执行时,它仅在K线收盘时运行一次,此时该K线的所有信息都已确定且在脚本执行期间不会改变。
实时K线则完全不同。当指标(或使用calc_on_every_tick = true的策略)在实时模式下运行时,上述变量(除open外)的值会在脚本对实时K线的连续迭代执行中不断变化,因为它们代表的是实时K线发展过程中某一时刻的当前值。这可能导致某种形式的"重绘"问题。详情请参阅MIne Script执行模型的相关说明。
可以使用[]历史引用操作符来访问内置变量的历史值,例如close[1]表示相对于当前执行K线的上一根K线的收盘价。
交易品种信息
syminfo命名空间中的内置变量可提供脚本当前运行图表的交易品种信息。每当用户更改图表品种时,这些信息都会更新,脚本随后将使用新的内置变量值在所有K线上重新执行:
- syminfo.basecurrency:基础货币,例如“BTCUSD”中的“BTC”,或“EURUSD”中的“EUR”。
- syminfo.currency:计价货币,例如“BTCUSD”中的“USD”,或“USDCAD”中的“CAD”。
- syminfo.description:交易品种的完整描述。
- syminfo.mintick:品种的最小变动价位(不等于点或点值)。例如“ES1!”(标普500迷你期货)的最小变动价位是0.25,因为这是价格变动的最小单位。
- syminfo.pointvalue:点值,即决定合约价值的标的资产乘数。例如“ES1!”(标普500迷你期货)的点值是50,因此1个合约价值等于该品种价格的50倍。
- syminfo.prefix:交易所或经纪商代码前缀,例如“AAPL”对应“NASDAQ”或“BATS”,“ES1!”对应“CME_MINI_DL”。
- syminfo.root:期货等结构化品种的代码前缀。例如“ES1!”的前缀是“ES”,“ZW1!”的前缀是“ZW”。
- syminfo.session:反映该品种在图表上的交易时段设置。如果“图表设置/品种/时段”设为“延长交易时段”,则仅当该品种和用户数据源支持延长交易时段时才会返回“extended”。
- syminfo.ticker:品种名称(不含交易所前缀),例如“BTCUSD”、“AAPL”、“ES1!”、“USDCAD”。
- syminfo.tickerid:该字符串很少显示,主要用作request.security()函数
symbol参数的输入值,包含交易时段、前缀和品种代码信息。 - syminfo.timezone:品种交易所在的时区,字符串采用IANA时区数据库格式(例如“America/New_York”)。
- syminfo.type:品种所属的市场类型,可能值为“stock”(股票)、“futures”(期货)、“index”(指数)、“forex”(外汇)、“crypto”(加密货币)、“fund”(基金)、“dr”(存托凭证)、“cfd”(差价合约)、“bond”(债券)、“warrant”(权证)、“structured”(结构化产品)和“right”(权利)。
该脚本将在图表上显示这些内置变量的值:
Mine Script®
已复制
图表时间周期
脚本可通过以下内置变量获取当前图表时间周期信息(均返回"简单布尔值"结果):
- timeframe.isseconds - 判断是否为秒级时间周期
- timeframe.isminutes - 判断是否为分钟时间周期
- timeframe.isintraday - 判断是否为日内时间周期(秒/分/小时)
- timeframe.isdaily - 判断是否为日线时间周期
- timeframe.isweekly - 判断是否为周线时间周期
- timeframe.ismonthly - 判断是否为月线时间周期
- timeframe.isdwm - 判断是否为日/周/月线时间周期
两个额外的内置函数返回更具体的时间范围信息:
- timeframe.multiplier 返回一个“简单整数”,包含时间范围单位的乘数。一小时图表时间范围将返回
60,因为日内时间范围以分钟表示。30秒时间范围将返回30(秒),日线图表将返回1(天),季度图表将返回3(月),而年线图表将返回12(月)。此变量的值不能用作内置函数中时间范围参数的输入,因为这些函数需要时间范围规范格式的字符串。 - timeframe.period 以MIne Script的时间范围规范格式返回一个字符串。
更多信息请参阅“时间范围”页面。
时段信息
时段信息可通过不同形式获取:
- 内置变量 syminfo.session 返回的值为 session.regular 或 session.extended。它反映了该品种在图表上的时段设置。如果“图表设置/品种/时段”字段设置为“延长”,则仅当该品种和用户的数据源允许延长时段时才会返回“extended”。当需要指定时段类型时,会使用此变量。
- 时段状态内置函数提供有关K线所属交易时段的信息。