3-4、Symbology


图表库使用您自己的数据,您自己定义商品体系。 您可以根据需要命名商品。

但有些细节你应该知道:

  1. 我们自己定义的商品名称必须为此格式:EXCHANGE:SYMBOL。 图表默认使用此格式

  2. 如果已经有或者考虑区别不同的商品,那么你可能需要使用ticker字段。 ticker 为商品唯一标识符,只用于图表的内部,您的用户将不会看到它。 ticker仅在 图表库内部使用的商品唯一标识符。 您的用户将永远无法看到它。 只需在所有SymbolInfo对象和商品搜索结果中输入ticker值,图表库将根据这些值请求数据。

这一节非常重要。 图表库用户遇到的72.2%的问题,都是由于错误的/格式错误的SymbolInfo数据引起的。

SymbolInfo是一个包含商品metadata的对象。 该对象是解析商品的结果。 SymbolInfo有以下字段:

name

商品名称。您的用户将看到它(作为一个字符串)。 此外,如果您不使用tickers,它将用于数据请求。

ticker

它是您的商品体系中此商品的唯一标识符。如果您指定此属性,则其值将用于所有数据请求,ticker如果未明确指定,则被视为等于symbol。(译者注:请一定指定ticker,如果没有ticker可以将symbol赋值给ticker,未指定ticker时会发生错误。)

description

商品说明。这个商品说明将被打印在图表的标题栏中。

type

仪表的可选类型。

可能的类型是:

  • stock

  • index

  • forex

  • futures

  • bitcoin

  • expression

  • spread

  • cfd

  • 或其他字符串。

session

商品交易时间。请参阅交易日细节了解更多详情。交易时段

session_holidays

此商品的假期列表。这些日期将不显示在图表上。 它是以下格式的字符串:

YYYYMMDD[,YYYYMMDD]

示例: 20181105,20181107,20181112

corrections

此商品的更正列表。更正是指具有特定交易时段的日子。它们也可以应用于假期。 它是以下格式的字符串:

SESSION:YYYYMMDD[,YYYYMMDD][;SESSION:YYYYMMDD[,YYYYMMDD]]

其中 SESSION 具有与 交易时段 相同的格式。

示例: 1900F4-2350F4,1000-1845:20181113;1000-1400:20181114.

exchange, listed_exchange

现在,这两个字段都为某个交易所的略称。将被显示在图表的图例中,以表示此商品。目前此字段不用于其他目的。

timezone

这个商品的交易所时区。我们希望以olsondb格式获取时区的名称。

支持的时区为:

  • Etc/UTC

  • Africa/Cairo

  • Africa/Johannesburg

  • Africa/Lagos

  • America/Argentina/Buenos_Aires

  • America/Bogota

  • America/Caracas

  • America/Chicago

  • America/El_Salvador

  • America/Juneau

  • America/Lima

  • America/Los_Angeles

  • America/Mexico_City

  • America/New_York

  • America/Phoenix

  • America/Santiago

  • America/Sao_Paulo

  • America/Toronto

  • America/Vancouver

  • Asia/Almaty

  • Asia/Ashkhabad

  • Asia/Bahrain

  • Asia/Bangkok

  • Asia/Chongqing

  • Asia/Dubai

  • Asia/Ho_Chi_Minh

  • Asia/Hong_Kong

  • Asia/Jakarta

  • Asia/Jerusalem

  • Asia/Kathmandu

  • Asia/Kolkata

  • Asia/Kuwait

  • Asia/Muscat

  • Asia/Qatar

  • Asia/Riyadh

  • Asia/Seoul

  • Asia/Shanghai

  • Asia/Singapore

  • Asia/Taipei

  • Asia/Tehran

  • Asia/Tokyo

  • Atlantic/Reykjavik

  • Australia/ACT

  • Australia/Adelaide

  • Australia/Brisbane

  • Australia/Sydney

  • Europe/Athens

  • Europe/Belgrade

  • Europe/Berlin

  • Europe/Copenhagen

  • Europe/Helsinki

  • Europe/Istanbul

  • Europe/London

  • Europe/Luxembourg

  • Europe/Madrid

  • Europe/Moscow

  • Europe/Paris

  • Europe/Riga

  • Europe/Rome

  • Europe/Stockholm

  • Europe/Tallinn

  • Europe/Vilnius

  • Europe/Warsaw

  • Europe/Zurich

  • Pacific/Auckland

  • Pacific/Chatham

  • Pacific/Fakaofo

  • Pacific/Honolulu

  • Pacific/Norfolk

  • US/Mountain

format

在价格刻度上显示标签的格式:

  • price - 根据 minmov, pricescale, minmove2fractional 的值,格式化价格的小数或分数

  • volume - 将十进制数字格式化为千,百万或十亿

minmov(最小波动), pricescale(价格精度), minmove2, fractional(分数)

  1. 最小的价格变化是由这些值决定的。

  2. PriceScale 参数确定了图表价格量表上的价格线之间的周期。

这三个键有不同意义时,使用通常价格和分数价格。

通常价格

MinimalPossiblePriceChange(最小可能价格变动) = minmov / pricescale

minmov数字型单位组成一个tick。例如,美国股票价格和tick有小数,并可以上下浮动+/- 0.01。

分数价格

分数显示价格,1 - xx'yy(例如,133'21)或 2 - xx'yy'zz (例如,133'21'5)。

minmove2<0>

这是一个神奇的数字来格式化复杂情况下的价格。这里有一些例子:

典型的股票以0.01价格增量:minmov = 1,pricecale = 100,minmove2 = 0
ZBM2014(国债),1/32:minmov = 1,pricecale = 32,minmove2 = 0
ZCM2014(玉米),2/8:minmov = 2,pricecale = 8,minmove2 = 0
ZFM2014(5年期国债),1/32的1/4:minmov = 1,pricecale = 128,minmove2 = 4

has_intraday

布尔值显示商品是否具有日内(分钟)历史数据。 如果它为false,则当图表中的该商品处于活动状态时,日内周期的所有按钮将被禁用。 如果设置为true,则由datafeed直接提供的所有周期必须在intraday_multipliers数组中设定。

supported_resolutions

在这个商品的周期选择器中启用一个周期数组。 数组的每个项目都是字符串。

被datafeed支持(见datafeed配置数据)但不受当前商品支持的周期,将在周期选择器部件中禁用。 如果更改商品,新商品不支持选定的周期,则周期将切换到支持的周期列表中的第一项。 周期可用性逻辑(伪代码):

resolutionAvailable  =
    resolution.isIntraday ?
       symbol.has_intraday && symbol.supports_resoluiton(resolution) :
    symbol.supports_resoluiton(resolution);

如果在商品信息中没有supported_resolutionsin,则所有DWM(daily, weekly, monthly)周期都可用。 如果has_intraday为true,则日内周期可用。

支持的周期也会影响可用的时间范围。 如果使用不支持的周期,则时间范围将不可用。

intraday_multipliers <[]>

Default: []

这是一个包含日内周期(分钟单位)的数组,datafeed将会自行构建它。

举例来说:如果datafeed报告说它支持 ["1", "5", "15"],但事实上股票X只有1分钟的数据,股票X将设定 intraday_multipliers = [1],那么Charting Library将自行构建5分钟和15分钟的周期。

has_seconds

Default: false

布尔值显示商品是否具有以秒为单位的历史数据。如果它为false,那么在图表中此商品处于活动状态时,所有秒的周期的按钮将被禁用。如果它为true,则由datafeed直接提供的所有周期必须在seconds_multipliers数组中设定。

seconds_multipliers <[]>

Default: []

这是一个包含秒周期(以秒为单位,无小数) ,datafeed将会自行构建它。 举例来说:如果datafeed报告说它支持 ["1S", "5S", "15S"],但事实上股票X只有1秒钟的数据,股票X将设定 seconds_multipliers = [1],那么Charting Library将自行构建5S和15S的周期。

has_daily

Default: false

布尔值显示商品是否具有以日为单位的历史数据。如果它为false,则Charting Library将自行构建日单位的周期。如果没有,则会向datafeed请求这些数据。

has_weekly_and_monthly

Default: false

布尔值显示商品是否具有以W和M为单位的历史数据。如果它为false,则Charting Library将通过日单位的周期自行构建。如果没有,则会向datafeed请求这些数据。

has_empty_bars

Default: false

布尔值显示在特定时间段内数据馈送中没有数据时,图表库是否应在会话中生成空栏(一字线)

即,如果您的交易时段为0900-1600,而您的实际数据在11:00和12:00之间没有交易,而您的has_empty_bars为true,那么Library会在此段时间贴上空K柱。

如果启用了功能集 disable_resolution_rebuild ,则不可使用此标志 has_emtpy_bars = true

force_session_rebuild

Default: false

布尔值,显示图书馆是否应使用当前交易时段过滤柱线。

如果为 false, 仅当图表库从其他分辨率构建数据时,才会过滤K线。或者将has_empty_bars 设置 true

如果为 true, 图表库将从您的数据中删除不属于交易时段的K线。

has_no_volume

Default: false

布尔表示商品是否拥有成交量数据。

has_fractional_volume | 已过时(1.1 - 1.5), 用法与volume_precision相反

Default: false

如果has_fractional_volume = true,成交量指标值将不会舍入为整数值。

volume_precision <0>

Default: 0

整数显示此商品的成交量数字的小数位。0表示只显示整数。1表示保留小数位的1个数字字符,等等。

data_status

数据状态码。状态显示在图表的右上角。

支持的值:

  • streaming(实时)

  • endofday(已收盘)

  • pulsed(脉冲)

  • delayed_streaming(延迟流动中)

expired

Default: false

是否到期,布尔值显示此商品是否为到期的期货合约。

expiration_date

到期日(Unix时间戳)。 如果expired = true,则必须设置此值。 图表库将从该时间点而不是实际时刻请求该商品的数据。

sector

板块,将在股票信息中显示。

industry

行业,将在股票信息中显示。

original_currency_code

交易所用的货币。

currency_code

交易所使用的货币或其他货币(如果启用了货币转换)。 它显示在“交易品种信息”对话框和价格轴上。

original_unit_id

交易期货的单位的唯一标识符。

unit_id

如果启用了单位转换,则为交易期货的单位的唯一标识符或某些其他标识符。它显示在价格轴上。

unit_conversion_types

允许的单位转换组名称。 另见units

最后更新于