图表信息

介绍

脚本可以通过 Pine Script™内置变量的子集获取有关当前正在运行的图表和符号的信息 。我们在此介绍的变量允许脚本访问与以下内容相关的信息:

  • 图表的价格和数量
  • 图表符号
  • 图表的时间范围
  • 交易代码所在的交易时段(或时间段)

价格和数量

OHLCV 值的内置变量为:

  • open:该条的开盘价。
  • high:该条柱的最高价,或者实时条柱经过时间内达到的最高价。
  • low:该条柱的最低价,或者实时条柱运行时间内达到的最低价。
  • close:该条柱的收盘价,或实时条柱的当前价格。
  • 交易量:柱状图期间的交易量,或实时柱状图经过时间内的交易量。交易量信息的单位因工具而异。股票以股为单位,外汇以手为单位,期货以合约为单位,加密货币以基础货币为单位,等等。

其他值可通过以下方式获得:

在历史柱上,上述变量的值在柱上不会发生变化,因为它们上只有 OHLCV 信息。在历史柱上运行时,脚本在柱 收盘时执行,此时所有柱的信息都是已知的,并且在脚本在柱上执行期间无法更改。

实时条形图则完全是另一回事。当指标(或使用 的策略calc_on_every_tick = true)实时运行时,上述变量(除 open外)的值将在实时条形图上脚本的连续迭代之间发生变化,因为它们表示实时条形图进展过程中某一时间点的当前值。这可能导致一种 重绘形式。有关更多详细信息,请参阅 Pine Script™执行模型页面

[] 历史 引用运算符可用于引用内置变量的过去值,例如,引用 相对于脚本正在执行的特定条形图的前一个条形图的收盘close[1]价 。

符号信息

命名空间中的内置变量为syminfo脚本提供了脚本所运行图表符号的信息。每次脚本用户更改图表符号时,此信息都会发生变化。然后,脚本使用内置变量的新值在所有图表条上重新执行:

  • syminfo.basecurrency:基础货币,例如“BTCUSD”中的“BTC”,或“EURUSD”中的“EUR”。
  • syminfo.currency:报价货币,例如“BTCUSD”中的“USD”,或“USDCAD”中的“CAD”。
  • syminfo.description:符号的详细描述。
  • syminfo.mintick :符号的刻度值,或价格可以移动的最小增量。不要与点数混淆。在“ES1!”(“S&P 500 E-Mini”)上,刻度大小为 0.25,因为这是价格移动的最小增量。
  • syminfo.pointvalue:点值是决定合约价值的标的资产的倍数。在“ES1!”(“S&P 500 E-Mini”)上,点值为 50,因此合约价值为工具价格的 50 倍。
  • syminfo.prefix:前缀是交易所或经纪人的标识符:“AAPL”为“NASDAQ”或“BATS”,“ES1!”为“CME_MINI_DL”。
  • syminfo.root:它是结构化代码(如期货代码)的代码前缀。“ES1!”为“ES”,“ZW1!”为“ZW”。
  • syminfo.session:它反映该符号在图表上的会话设置。如果“图表设置/符号/会话”字段设置为“扩展”,则仅当符号和用户的提要允许扩展会话时,它才会返回“扩展”。它很少显示,主要用作ticker.new()session中参数 的参数
  • syminfo.ticker:这是符号的名称,不包含交易所部分(syminfo.prefix):“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”。

该脚本将在图表上显示这些内置变量的值:

//@version=5
indicator("`syminfo.*` built-ins", "", true)
printTable(txtLeft, txtRight) => 
    var table t = table.new(position.middle_right, 2, 1)
    table.cell(t, 0, 0, txtLeft, bgcolor = color.yellow, text_halign = text.align_right)
    table.cell(t, 1, 0, txtRight, bgcolor = color.yellow, text_halign = text.align_left)

nl = "\n"
left =
  "syminfo.basecurrency: "  + nl +
  "syminfo.currency: "      + nl +
  "syminfo.description: "   + nl +
  "syminfo.mintick: "       + nl +
  "syminfo.pointvalue: "    + nl +
  "syminfo.prefix: "        + nl +
  "syminfo.root: "          + nl +
  "syminfo.session: "       + nl +
  "syminfo.ticker: "        + nl +
  "syminfo.tickerid: "      + nl +
  "syminfo.timezone: "      + nl +
  "syminfo.type: "

right =
  syminfo.basecurrency              + nl +
  syminfo.currency                  + nl +
  syminfo.description               + nl +
  str.tostring(syminfo.mintick)     + nl +
  str.tostring(syminfo.pointvalue)  + nl +
  syminfo.prefix                    + nl +
  syminfo.root                      + nl +
  syminfo.session                   + nl +
  syminfo.ticker                    + nl +
  syminfo.tickerid                  + nl +
  syminfo.timezone                  + nl +
  syminfo.type

printTable(left, right)

图表时间范围

脚本可以使用以下内置函数获取图表上使用的时间范围类型的信息,这些内置函数均返回“简单布尔”结果:

另外两个内置函数返回更具体的时间范围信息:

  • timeframe.multiplier 返回一个“简单 int”,其中包含时间范围单位的乘数。将返回一小时的图表时间范围,60因为日内时间范围以分钟表示。30 秒时间范围将返回30(秒),每日图表将返回1(天),季度图表将返回3(月),年度图表将返回12(月)。此变量的值不能用作timeframe内置函数中参数的参数,因为它们需要时间范围规范格式的字符串。
  • timeframe.period 以 Pine Script™ 的时间范围规范格式返回一个字符串。

请参阅时间框架页面以了解更多信息。

会话信息

会话信息有多种形式:

  • syminfo.session 内置变量返回 session.regular 或 session.extended 的值 反映 该符号在图表上的会话设置。如果“图表设置/符号/会话”字段设置为“扩展”,则仅当符号和用户的提要允许扩展会话时,它才会返回“扩展”。当需要会话类型时使用它,例如作为ticker.new()session中参数 的参数
  • 会话状态内置功能提供有关某个条形图所属交易会话的信息。
Original text
Rate this translation
Your feedback will be used to help improve Google Translate