TradingView---JS Api
2021-11-30 10:44:26
more 
1297

这是啥? 一套JS方法特定的公共接口。

我该怎么使用它? 您应该创建一个JS对象它将以某种方式接收数据并响应Charting Library请求。

数据缓存历史和股票信息在图表库中实现。当你创建一个实现描述接口的对象时只需通过datafeed 参数将其传递给图表库Widget的构造函数

Methods

1.     onReady

2.     searchSymbolsByName

3.     resolveSymbol

4.     getBars

5.     subscribeBars

6.     unsubscribeBars

7.     calculateHistoryDepth

8.     getMarks

9.     getTimescaleMarks

10.       getServerTime

交易终端专属:

1.     getQuotes

2.     subscribeQuotes

3.     unsubscribeQuotes

4. subscribeDepth

5. unsubscribeDepth

 

onReady(callback)

1.callback: function(configurationData) i.configurationData: object (见下文)

此方法旨在提供填充配置数据的对象。这些数据会影响图表的行为所以它被称为服务端定制

ChartingLibrary 要求您使用回调函数来传递datafeed的configurationData参数。

configurationData是一个对象现在支持以下属性:

exchanges

一个交易所数组。 Exchange是一个对象{value, name, desc}

  value将被作为exchange参数传递给 searchSymbolsByName (见下文)。

  exchanges= [] 会导致商品查询列表中看不到交易所过滤器。使用value= "" 来创建通配符筛选器所有的交易所。

symbols_types

一个商品类型过滤器数组。该商品类型过滤器是个对象{name, value}value 将被作为symbolType 参数传递给searchSymbolsByName。

  symbolsTypes = [] 会导致商品查询列表中看不到商品类型过滤器。 使用value = ""来创建通配符筛选器所有的商品类型。

supported_resolutions

一个表示服务器支持的分辨率数组分辨率可以是数字或字符串。如果分辨率是一个数字 它被视为分钟数。 字符串可以是“*D”“*W”“_M”_的意思是任何数字。格式化详细参照:文章

'resolutions'=undefined或 [] 时分辨率拥有默认内容 (见http://tradingview.com/e/)。例:[1, 15, 240, "D", "6M"] 您将在分辨率中得到 "1 分钟, 15 分钟, 4 小时, 1 天, 6 个月" 。

supports_marks

布尔值来标识您的 datafeed 是否支持在K线上显示标记。

supports_timescale_marks

布尔值来标识您的 datafeed 是否支持时间刻度标记。

supports_time

将此设置为true 假如您的datafeed提供服务器时间unix时间。 它用于调整时间刻度上的价格比例。

searchSymbolsByName(userInput,exchange, symbolType, onResultReadyCallback)

1.        userInput : string用户在商品搜索中输入的文字。

2.        exchange :string请求的交易所由用户选择。空值表示没有指定。

3.       symbolType : string请求的商品类型指数、股票、外汇等等由用户选择。空值表示没有指定。

4.       onResultReadyCallback : function(result)

i.       result : 数组 (见下文)

方法介绍提供一个匹配用户搜索的商品列表。result 为预期的商品 像下面这样:

[
{
&#34;symbol&#34;: <商品缩写名>,
&#34;full_name&#34;: <商品全称 -- 例: BTCE:BTCUSD>, &#34;description&#34;: <商品描述>,
&#34;exchange&#34;: < 交 易 所 名 >, &#34;ticker&#34;: <商品代码, 可选>,
&#34;type&#34;: &#34;stock&#34; | &#34;futures&#34; | &#34;bitcoin&#34; | &#34;forex&#34; | &#34;index&#34;
}, {
//	.....
}
]

如果没有找到商品则应该使用空数组来调用回调。查看更多关于ticker 值的细节在这里

resolveSymbol(symbolName,onSymbolResolvedCallback, onResolveErrorCallback)

1.       symbolName : string类型商品名称 或ticker if provided.

2.       onSymbolResolvedCallback : function(SymbolInfo)

3.       onResolveErrorCallback : function(reason)

方法介绍通过商品名称解析商品信息(SymbolInfo)。

getBars(symbolInfo,resolution, from, to, onHistoryCallback, onErrorCallback, firstDataRequest)

1.        symbolInfo :SymbolInfo 商品信息对象

2.        resolution : string 分辨率

3.       from : unix 时间戳, 最左边必须的K线时间

4.        to : unix时间戳, 最右边必须的K线时间

5.onHistoryCallback: function(array of bars, meta &#61; { noData &#61; false })

  1. bar: Bar对象数组{time, close, open, high, low, volume}
  2. meta: object {noData &#61; true | false, nextTime - unix time}

6.       onErrorCallback : function(reason错误原因)

7.        firstDataRequest : 布尔值以标识是否第一次调用此商品/分辨率的历史记录。当设置为true 时 你可以忽略to 参数这取决于浏览器的Date.now() ) 并返回K线数组直到当前K线包括它。

方法介绍通过日期范围获取历史K线数据。图表库希望通过onHistoryCallback 仅一次调用接收所有的请求历史。而不被多次调用。

发生不断自动刷新图表问题时请检查fromonHistoryCallback方法返回的bars时间是否一致没有数据时请返回noData &#61; true

  nextTime 历史中下一个K线柱的时间。 只有在请求的时间段内没有数据时才应该被设置。

  noData 只有在请求的时间段内没有数据时才应该被设置。

Remark:bar.time 为以毫秒开始的Unix时间戳UTC标准时区。

Remark:bar.time 对于日K线预期一个交易日 (未开始交易时) 以 00:00 UTC为起点。 图表库会根据商品的交易Session时间进行匹配。

Remark:bar.time 对于月K线为这个月的第一个交易日除去时间的部分。

subscribeBars(symbolInfo, resolution, onRealtimeCallback, subscriberUID, onResetCacheNeededCallback)

1.        symbolInfo :object SymbolInfo

2.       resolution : string 分辨率

3.       onRealtimeCallback : function(bar)

i.       bar :object{time, close,open, high, low, volume}

4.       subscriberUID : object

5.       onResetCacheNeededCallback (从1.7开始): function()将在bars数据发生变化时执行方法介绍订阅K线数据。图表库将调用onRealtimeCallback 方法以更新实时数据。

Remark: 当您调用onRealtimeCallback 且K线时间等于最近一条K线时间时那么这条最近的

K线将被您传入的K线所替换。 例:

1. 最近一条K线为{1419411578413, 10, 12, 9, 11}

2. 您的调用onRealtimeCallback({1419411578413, 10, 14,9, 14})

3. 图表库通过时间找出K线1419411578413 已经存在并且是最近的那一个

4. 图表库替换K线因此现在最近一条K线为{1419411578413,10, 14, 9, 14}

Remark 2: 是否可以更新最近的K线或追加一条新的取决于onRealtimeCallback 。 如果您调用此功能尝试更新历史记录中的一个K线则会收到错误消息。

Remark 3: 现在在图表接收到数据后没有办法改变历史上的K线。

unsubscribeBars(subscriberUID)

1.subscriberUID :object

方法介绍取消订阅K线数据。在调用subscribeBars 方法时,图表库将跳过与subscriberUID 相同的对象。

calculateHistoryDepth(resolution, resolutionBack, intervalBack)

1.        resolution : 请求商品的分辨率

2.        resolutionBack : 期望历史周期刻度。支持的值:

3.        intervalBack :数 量

方法介绍算出历史数据周期刻度使您能够重写所需的历史深度。通过一些参数让您知道要获得的是什么样数据。以下是几个例子:

  calculateHistoryDepth(&#34;D&#34;, &#34;M&#34;, 12) 调用: 图表库请求12 个月的日线数据

  calculateHistoryDepth(60, &#34;D&#34;, 15) 调用: 图表库请求15天的60分钟数据

如果你不想重写处理方法这个函数应该返回undefined 。如果你想要重写它应该返回一个对象{resolutionBack, intervalBack}

例子:

假设实现为

Datafeed.prototype.calculateHistoryDepth &#61; function(resolution, resolutionBack, interv alBack) {
   if (period &#61;&#61; &#34;1D&#34;) { return {
    resolutionBack: 'M', intervalBack: 6
   };
  }
}

以上代码为当图表库将要求分辨率为1D 历史为6个月的深度。 在其他情况下历史深度将具有其他默认值。

getMarks(symbolInfo,startDate, endDate, onDataCallback, resolution)

1.        symbolInfo :SymbolInfo 商品信息对象

2.        startDate : unix时间戳, 最左边必须的K线时间

3.        endDate : unix 时间戳, 最右边必须的K线时间

4.        onDataCallback : function(标记数字marks )

5.       resolution : string

方法介绍获取可见K线范围的标记。图表预期每调用一次getMarks 就会调用一次onDataCallback

  mark 为具有以下属性的对象:

id: 唯一标识id 。当用户点击标记时将传递给相应的回调:respective callback

time: unix time,UTC

Color:red | green | blue | yellow | { border: '#ff0000', background: '#00ff00' }

text: 标记弹出式文字。支持HTML

label: 印在标记上的文字。单字符

labelFontColor: label的文字颜色

minSize: 标记的最小尺寸(diameter, pixels)

每个K线允许几个标记现在最多为10个。不允许标记脱离K线。

Remark: 只有当您声明您的后端是支持标记时才会调用这个函数。supporting marks.

getTimescaleMarks(symbolInfo,startDate, endDate, onDataCallback, resolution)

1.       symbolInfo :SymbolInfo object

2.        startDate : unix时间戳 (UTC). Leftmost visible bar'stime.

3.        endDate : unix时间戳 (UTC). Rightmost visible bar'stime.

4.       onDataCallback :function(array ofmark s)

5.       resolution : string

图表库调用此函数获取可见K线范围的时间刻度标记。图表预期您每个调用

getTimescaleMarks会调用一次onDataCallback。

mark为具有以下属性的对象:

id: 唯一标识id 。当用户点击标记时将传递给相应的回调:respective callback

time: unix time,UTC

Color:red | green | blue | yellow | ... | #000000

label: 印在标记上的文字。单字符

tooltip: 字符串串数组。数组的每个元素都是工具提示的单独行内容。

每个K线只允许一个标记。 不允许标记脱离K线。

Remark: 只有当您声明您的后端是支持标记时才会调用这个函数。upporting marks.

getServerTime(callback)

1.callback :function(unixTime)

当图表需要知道服务器时间时如果配置标志supports_time 设置为true 则调用此函数。图表库预期只调用一次回调。所提供的时间没有毫秒。例子1445324591。它是用来显示倒数的价格范围。

交易终端专属

getQuotes(symbols,onDataCallback, onErrorCallback)

1.       symbols : 商品名称数组

2.       onDataCallback :function(array ofdata )

i.       data :商品报价数据

3.       onErrorCallback : function(reason)

当图表需要报价数据时将调用此函数。图表库预期在收到所有请求数据时调用onDataCallback。

subscribeQuotes(symbols,fastSymbols, onRealtimeCallback, listenerGUID)

1.       symbols : 很少更新的商品数组建议频率为每分钟一次。这些商品在观察列表中但它们目前不可见。

2.        fastSymbols : 频繁更新的商品数组一次在10秒或更快

3.       onRealtimeCallback :function(array ofdata )

i.        data :商品报价数据

4.        listenerGUID : 监听的唯一标识符

交易终端当需要接收商品的实时报价时调用此功能。图表预期您每次要更新报价时都会调用onRealtimeCallback

unsubscribeQuotes(listenerGUID)

1.listenerGUID : 监听的唯一标识符

交易终端当不需要再接收商品的实时报价时调用此函数。当图表库遇到listenerGUID 相同的对象会跳过subscribeQuotes 方法。

subscribeDepth(symbolInfo, callback):String

1.       symbolInfo :SymbolInfo object

2.       callback : function(depth)

i.       depth :object{snapshot,asks, bids}

i.        snapshot : Boolean - 如果trueasksbids 具有全部深度否则只包含更新的级别。

ii.        asks : 买盘数组{price, volume}

iii.         bids : 卖盘数组{price, volume}

交易终端当要接收商品的实时level 2 信息DOM时调用此函数。 图表预期您每次要更新深度数据时都会调用回调。

此方法应返回唯一标识subscriberUID用于取消订阅数据。

unsubscribeDepth(subscriberUID)

1.subscriberUID :String

交易终端当不希望接收此监听时调用此函数。


                                   

Statement:
The content of this article does not represent the views of fxgecko website. The content is for reference only and does not constitute investment suggestions. Investment is risky, so you should be careful in your choice! If it involves content, copyright and other issues, please contact us and we will make adjustments at the first time!

Related News

您正在访问的是FxGecko网站。 FxGecko互联网及其移动端产品是中国香港特别行政区成立的Hitorank Co.,LIMITED旗下运营和管理的一款面向全球发行的企业资讯査询工具。

您的IP为 中国大陆地区,抱歉的通知您,不能为您提供查询服务,还请谅解。请遵守当地地法律。