<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 3-3、UDF # [UDF](#udf) - - - - - - **這是啥?**: Universal Data Feed 通用數據飼料,基于HTTP協議的旨在以簡單有效的方式向圖表庫提供數據。 **我該怎么使用它?**: 您應該創建小型的HTTP服務,讓它從您的數據庫中獲取數據并響應圖表庫請求。 # [表式響應概念](#%E8%A1%A8%E5%BC%8F%E5%93%8D%E5%BA%94%E6%A6%82%E5%BF%B5) Datafeed 響應通常可以被視為表。例如,關于交易所的商品列表的響應,可以被視為每個商品代表一行,并有存在一些列(minimal\_price\_movement,description,has\_intraday等)。每個列可以是一個數組(因此,它將為每個表的行提供單獨的值)。但是當所有表的行具有相同的列值時,可能會出現這種情況:列的值可以是單獨的JSON響應。 例如: 讓我們假設我們已經請求了名稱為NYSE(紐約證券交易所)的商品列表。響應(偽格式)可能像這樣 ``` { symbols: ["MSFT", "AAPL", "FB", "GOOG"], min_price_move: 0.1, description: ["Microsoft corp.", "Apple Inc", "Facebook", "Google"] } ``` 如果我們試圖將這個回應設想成一張表,那么它就像這樣 Symbol(商品代碼)min\_price\_move(最小價格變動)描述MSFT0.1Microsoft corp.AAPL0.1Apple IncFB0.1FacebookGOOG0.1Google# [API調用](#api-calls) ### [Datafeed 配置數據](#datafeed-%E9%85%8D%E7%BD%AE%E6%95%B0%E6%8D%AE) Request:`GET /config` Response: 圖表庫期望接收與JS API調用[setup()](JS-Api.html#onreadycallback)相同結構的JSON數據。 此外,還應該有2個附加屬性:: - **supports\_search**: 設置這一選項為`true`如果你的datafed 支持商品查詢和人商品解析邏輯。 - **supports\_group\_request**: 設置這一選項為`true`如果您的datafeed只提供所有商品集合的完整信息,并且無法進行商品搜索或單個商品解析。 `supports_search`和`supports_group_request`兩者之中有只有一個可以為`true`。 **Remark**: 如果你的datafeed 沒有實現這個調用(根本不響應或發送404),將使用默認配置。 這樣:: ``` { supports_search: false, supports_group_request: true, supported_resolutions: ["1", "5", "15", "30", "60", "1D", "1W", "1M"], supports_marks: false, supports_time: true } ``` ### [商品集合信息](#%E5%95%86%E5%93%81%E9%9B%86%E5%90%88%E4%BF%A1%E6%81%AF) Request:`GET /symbol_info?group=<group_name>` 1. `group_name`: string Example:`GET /symbol_info?group=NYSE` Response: 預期響應是具有以下列出的屬性的對象。 每個屬性都被視為表的一列,如上所述(請參見[表式響應](#%E8%A1%A8%E5%BC%8F%E5%93%8D%E5%BA%94%E6%A6%82%E5%BF%B5))。響應結構與[SymbolInfo](Symbology.html#symbolinfo-structure)類似(但不等于),因此有關所有字段的詳細信息,請參見其描述。 - **symbol** - **description** - **exchange-listed**/**exchange-traded** - **minmovement**/**minmov**(注意:minmov已被棄用,并將在未來的版本中被刪除) - **minmovement2**/**minmov2**(注意:minmov2已被棄用,并將在未來的版本中被刪除) - **fractional** - **pricescale** - **has-intraday** - **has-no-volume** - **type** - **ticker** - **timezone** - **session-regular**(mapped to`SymbolInfo.session`) - **supported-resolutions** - **force-session-rebuild** - **has-daily** - **intraday-multipliers** - **has-fractional-volume**(obsolete) - **volume\_precision** - **has-weekly-and-monthly** - **has-empty-bars** 示例:以下是對datafeed的響應示例`GET /symbol_info?group=NYSE`(數據為手工制造): ``` { symbol: ["AAPL", "MSFT", "SPX"], description: ["Apple Inc", "Microsoft corp", "S&P 500 index"], exchange-listed: "NYSE", exchange-traded: "NYSE", minmov: 1, minmov2: 0, pricescale: [1, 1, 100], has-dwm: true, has-intraday: true, has-no-volume: [false, false, true] type: ["stock", "stock", "index"], ticker: ["AAPL~0", "MSFT~0", "$SPX500"], timezone: “America/New_York”, session-regular: “0900-1600”, } ``` **Remark 1**: 如果您的datafeed配置supports\_group\_request:true或根本沒有響應配置請求,則將使用此調用。 **Remark 2**: 如果您的datafeed 被請求不支持的集合(如果您對請求#1(支持的集合)的響應是正確的),則會發生404錯誤)。 **Remark 3**: 使用此模式(獲取大量的商品數據)在瀏覽器中存儲一些用戶不需要的數據。 因此,如果您的商品列表有多個項目,請考慮支持商品搜索/單個商品解析。 ### [商品解析](#%E5%95%86%E5%93%81%E8%A7%A3%E6%9E%90) Request:`GET /symbols?symbol=<symbol>` 1. `symbol`: string. 商品名稱或者代碼. 例:`GET /symbols?symbol=AAL`,`GET /symbols?symbol=NYSE:MSFT` Response: JSON包含的對象與[SymbolInfo](Symbology.html#symbolinfo-structure)完全一樣 **Remark**: 如果您的datafeed配置supports\_group\_request:false 和 supports\_search:true,則將執行此調用。 ### [商品檢索](#%E5%95%86%E5%93%81%E6%A3%80%E7%B4%A2) Request:`GET /search?query=<query>&type=<type>&exchange=<exchange>&limit=<limit>` 1. `query`: string. 用戶在商品搜索編輯框中輸入的文本 2. `type`: string. 您的后臺[支持的類型](JS-Api.html#symbolstypes)之一 3. `exchange`: string. 您的后臺[支持的交易所](JS-Api.html#exchanges)之一 4. `limit`: integer. 響應最大項目數 例:`GET /search?query=AA&type=stock&exchange=NYSE&limit=15` Response: 響應將是調用[JS API](JS-Api.html#searchsymbolsbynameuserinput-exchange-symboltype-onresultreadycallback)后返回的一個數組類型的商品記錄 **Remark**: 如果您的datafeed配置supports\_group\_request:false 和 supports\_search:true,則將執行此調用。 ### [K線柱](#k%E7%BA%BF%E6%9F%B1) Request:`GET /history?symbol=<ticker_name>&from=<unix_timestamp>&to=<unix_timestamp>&resolution=<resolution>` 1. `symbol`: 商品名稱或者代碼 2. `from`: unix timestamp (UTC) or leftmost required bar 3. `to`: unix timestamp (UTC) or rightmost required bar 4. `resolution`: string 例:`GET /history?symbol=BEAM~0&resolution=D&from=1386493512&to=1395133512` Response: 響應的預期是一個對象,下面列出了一些屬性。每個屬性都被視為表的列,如上所述。 - **s**: 狀態碼。 預期值:`ok`|`error`|`no_data` - **errmsg**: 錯誤消息。只在`s = 'error'時出現` - **t**: K線時間. unix時間戳 (UTC) - **c**: 收盤價 - **o**: 開盤價 (可選) - **h**: 最高價 (可選) - **l**: 最低價(可選) - **v**: 成交量 (可選) - **nextTime**: 下一個K線柱的時間 如果在請求期間無數據 (狀態碼為`no_data`) (可選) **Remark**: bar time 對于日K線柱預期為 一個交易日 (not session start day) 以 00:00 UTC為起點。 Charting Library 會根據SymbolInfo的[Session](Symbology.html#session)時間進行匹配。 **Remark**: K線時間對于月K線柱為這個月的第一個交易日,除去時間的部分。 **Remark**: 價格應作為數字傳遞,而不是使用字符串。 例: ``` { s: "ok", t: [1386493512, 1386493572, 1386493632, 1386493692], c: [42.1, 43.4, 44.3, 42.8] } ``` ``` { s: "no_data", nextTime: 1386493512 } ``` ``` { s: "ok", t: [1386493512, 1386493572, 1386493632, 1386493692], c: [42.1, 43.4, 44.3, 42.8], o: [41.0, 42.9, 43.7, 44.5], h: [43.0, 44.1, 44.8, 44.5], l: [40.4, 42.1, 42.8, 42.3], v: [12000, 18500, 24000, 45000] } ``` ##### `nextTime`是怎么工作的 假設您以周期= 1觀看圖表,并且Library要求您以\[2015年4月3日16:00 UTC + 0,2015年4月3日19:00 UTC + 0\]為范圍,向紐約證券交易所請求股票數據。 4月3日為受難節,交易所休假。 Library假定你會作出如下響應: ``` { s: "no_data", nextTime: 1428001140000 //2015年4月2日 18:59:00 GMT+0 } ``` 因此`nextTime`是一個從Library的原始請求邊界的左側(在假想時間線上)的K線柱時間。 所有省略的價格將被視為等于收盤價。 ### [標識](#%E6%A0%87%E8%AF%86) Request:`GET /marks?symbol=<ticker_name>&from=<unix_timestamp>&to=<unix_timestamp>&resolution=<resolution>` 1. `symbol`: symbol name or ticker. 2. `from`: unix timestamp (UTC) or leftmost visible bar 3. `to`: unix timestamp (UTC) or rightmost visible bar 4. `resolution`: string Response: 響應預期是一個對象,下面列出了一些屬性。此對象與JS API中的[respective response](JS-Api.html#getmarkssymbolinfo-startdate-enddate-ondatacallback-resolution)相似,但每個屬性都被視為表的列,如上所述。 ``` { id: [array of ids], time: [array of times], color: [array of colors], text: [array of texts], label: [array of labels], labelFontColor: [array of label font colors], minSize: [array of minSizes], } ``` **Remark**: 備注:如果您的datafeed在傳輸的配置數據中發送了supports\_marks:true,則會調用此方法。 ### [時間刻度標記](#%E6%97%B6%E9%97%B4%E5%88%BB%E5%BA%A6%E6%A0%87%E8%AE%B0) Request:`GET /timescale_marks?symbol=<ticker_name>&from=<unix_timestamp>&to=<unix_timestamp>&resolution=<resolution>` 1. `symbol`: symbol name or ticker. 2. `from`: unix timestamp (UTC) or leftmost visible bar 3. `to`: unix timestamp (UTC) or rightmost visible bar 4. `resolution`: string Response: 響應預期為一個具有下列屬性的數組對象。 1. `id`: unique identifier of a mark 2. `color`: rgba color 3. `label`: 顯示在圓圈中的文字 4. `time`: unix time 5. `tooltip`: 提示文本 **Remark**: This call will be requested if your datafeed sent`supports_timescale_marks: true`in configuration data. ### [服務器時間](#%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%97%B6%E9%97%B4) Request:`GET /time` Response: 數字unix時間沒有毫秒。 例: 1445324591 ### [報價](#%E6%8A%A5%E4%BB%B7) Request:`GET /quotes?symbols=<ticker_name_1>,<ticker_name_2>,...,<ticker_name_n>` Example:`GET /quotes?symbols=NYSE%3AAA%2CNYSE%3AF%2CNasdaqNM%3AAAPL` Response: Response is an object. - **s**: status code for request. Expected values:`ok`|`error` - **errmsg**: error message for client - **d**:[symbols data](Quotes.html) array Example: ``` { "s": "ok", "d": [{ "s": "ok", "n": "NYSE:AA", "v": { "ch": "+0.16", "chp": "0.98", "short_name": "AA", "exchange": "NYSE", "description": "Alcoa Inc. Common", "lp": "16.57", "ask": "16.58", "bid": "16.57", "open_price": "16.25", "high_price": "16.60", "low_price": "16.25", "prev_close_price": "16.41", "volume": "4029041" } }, { "s": "ok", "n": "NYSE:F", "v": { "ch": "+0.15", "chp": "0.89", "short_name": "F", "exchange": "NYSE", "description": "Ford Motor Compan", "lp": "17.02", "ask": "17.03", "bid": "17.02", "open_price": "16.74", "high_price": "17.08", "low_price": "16.74", "prev_close_price": "16.87", "volume": "7713782" } }] } ``` ## [構造函數](#%E6%9E%84%E9%80%A0%E5%87%BD%E6%95%B0) `Datafeeds.UDFCompatibleDatafeed = function(datafeedURL, updateFrequency, protocolVersion)` ### [datafeedURL](#datafeedurl) 這是一個數據服務器的URL,它將得到請求和返回數據。 ### [updateFrequency](#updatefrequency%EF%BC%88%E6%9B%B4%E6%96%B0%E9%A2%91%E7%8E%87%EF%BC%89)(更新頻率) 這是一個有周期的實時數據請求,datafeed將以毫秒為單位發送到服務器。 默認值為10000(10秒)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看