• Symbology(商品体系)
    • 商品信息结构
      • name
      • ticker
      • description
      • type
      • session
      • exchange, listed_exchange
      • timezone
      • minmov(最小波动), pricescale(价格精度), minmove2, fractional(分数)
      • 通常价格
      • 分数价格
      • minmove2<0>
      • has_intraday
      • supported_resolutions
      • intraday_multipliers <[]>
      • has_seconds
      • seconds_multipliers <[]>
      • has_daily
      • has_weekly_and_monthly
      • has_empty_bars
      • force_session_rebuild
      • has_no_volume
      • has_fractional_volume | 已过时(1.1 - 1.5), 用法与volume_precision相反
      • volume_precision <0>
      • data_status
      • expired
      • expiration_date
      • sector
      • industry
      • currency_code

    Symbology(商品体系)


    图表需要您自己提供数据,所以商品体系100%您来决定。仅需以图表库定义格式返回商品信息并使用任意的商品名称。实际上,商品名称可以为任意字符串。

    但有些细节你应该知道:

    1. 我们自己定义的商品名称必须为此格式:EXCHANGE:SYMBOL。 图表默认使用此格式
    2. 已有其他商品体系或只一个?这里有ticker特殊术语提供给您。
      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

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

    exchange, listed_exchange

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

    timezone

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

    1. UTC
    2. America/New_York
    3. America/Los_Angeles
    4. America/Chicago
    5. America/Phoenix
    6. America/Toronto
    7. America/Vancouver
    8. America/Argentina/Buenos_Aires
    9. America/El_Salvador
    10. America/Sao_Paulo
    11. America/Bogota
    12. Europe/Moscow
    13. Europe/Athens
    14. Europe/Berlin
    15. Europe/London
    16. Europe/Madrid
    17. Europe/Paris
    18. Europe/Warsaw
    19. Australia/Sydney
    20. Australia/Brisbane
    21. Australia/Adelaide
    22. Australia/ACT
    23. Asia/Almaty
    24. Asia/Ashkhabad
    25. Asia/Tokyo
    26. Asia/Taipei
    27. Asia/Singapore
    28. Asia/Shanghai
    29. Asia/Seoul
    30. Asia/Tehran
    31. Asia/Dubai
    32. Asia/Kolkata
    33. Asia/Hong_Kong
    34. Asia/Bangkok
    35. Pacific/Auckland
    36. Pacific/Chatham
    37. Pacific/Fakaofo
    38. Pacific/Honolulu
    39. America/Mexico_City
    40. Africa/Johannesburg
    41. Asia/Kathmandu
    42. US/Mountain
    minmov(最小波动), pricescale(价格精度), minmove2, fractional(分数)
    1. 最小的价格变化是由这些值决定的。
    2. PriceScale 参数确定了图表价格量表上的价格线之间的间隔。

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

    通常价格
    1. MinimalPossiblePriceChange(最小可能价格变动) = minmov / pricescale

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

    分数价格

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

    minmove2<0>

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

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

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

    supported_resolutions

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

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

    1. resolutionAvailable =
    2. resolution.isIntraday ?
    3. symbol.has_intraday && symbol.supports_resoluiton(resolution) :
    4. symbol.supports_resoluiton(resolution);

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

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

    intraday_multipliers <[]>

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

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

    has_seconds

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

    seconds_multipliers <[]>

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

    has_daily

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

    has_weekly_and_monthly

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

    has_empty_bars

    布尔值显示在交易过程中,当datafeed没有数据返回时,library是否会生成空的K柱。

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

    force_session_rebuild

    布尔值显示library是否会随着当前交易而过滤K柱。如果为false,则当library从其他分辨率构建数据或将has_empty_bars设置为true时,K柱将被过滤。 如果为true,Library将会删除那些不是交易K柱的数据。

    has_no_volume

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

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

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

    volume_precision <0>

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

    data_status

    数据状态码。状态显示在图表的右上角。 支持的值:

    • streaming(实时)
    • endofday(已收盘)
    • pulsed(脉冲)
    • delayed_streaming(延迟流动中)
    expired

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

    expiration_date

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

    sector

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

    industry

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

    currency_code

    货币代码,将在商品信息中显示。