Back

[**] - tradingview 实时更新的答疑

发布时间: 2019-07-03 02:59:00

1. tradingview, 可以获得当前的interval (resolution) 

var widget = window.tvWidget = new TradingView.widget({

2. 增加各种study : 

  widget.onChartReady(function(){
    //widget.chart().setChartType(1)
    widget.chart().createStudy('Moving Average', false, false, [5], null, {'Plot.linewidth': 1, 'Plot.color': 'rgb(163,124,190)'})
    widget.chart().createStudy('Moving Average', false, false, [10], null, {'Plot.linewidth': 1, 'Plot.color': 'rgb(148,174,220)'})
    widget.chart().createStudy('Moving Average', false, false, [30], null, {'Plot.linewidth': 1, 'Plot.color': 'rgb(110,181,132)'})
    widget.chart().createStudy('Moving Average', false, false, [60], null, {'Plot.linewidth': 1, 'Plot.color': 'rgb(186,84,154)'})
  });

3. 获得当前的 symbol 和 interval

tvWidget.symbolInterval()
{symbol: "Coiex:Coiex:ETH /USDT", interval: "D"}

4. 更新K线图的机制:

每次用户从“小时”图,点击切换到“分钟”图时,会发起一个请求。

http://localhost:4200/api/v2/k?market=ethusdt&period=1&from=1562040530&to=1562126990

后面的 1562126990 ,就是访问K线的终止时间。这个时间在分钟的刻度上,比当前时间要多一分钟。

例如,当前时间是   12:01 , 那么发起请求的时间,是 12:02  (无论是1分钟,还是60分钟,还是1天,发起请求的结束时间,

都比当前时间 +1 分钟) 

所以,如果我们要使用 tradingview来更新图的话,需要在后端实时的显示当前1分钟的K线,那么,就要提前在结果中返回,而不是

啥都没有。

4. 有时候会出现: library.19c99ed5d0307c67f071.js:601 putToCacheNewBar: time violation, previous bar time: 2019-07-03T03:35:00.000Z should be less or equal to new time: 2019-06-26T14:00:00.000Z

这个是在 加载完k 线图之后,subscribeBars 函数运行的时候出现的。这个是由于 之前查询到的k线节点,(例如 6.28号是最后一个 bar) 早于更新过来的bar 。(例如 7.3号) ,这样就不匹配了。

Back