TradingView - K线

文章目录

  • TradingView - K线
    • 1 前言
    • 2 如何使用
      • 2.1 项目引入 Tradingview 静态资源包
        • [强制] 静态资源包 `charting_library-master` 放在目录 `static` 里。
      • 2.2 项目添加 Tradingview 核心库 charting_library.min.js
        • [建议] 在项目的运行入口 `index.html` 里添加
      • 2.3 挂载 Tradingview 到 Vue 组件
        • [建议] 预挂载,提升K线渲染效率。
      • 2.4 获取 TradingView 数据并渲染
        • [建议] 批量获取历史数据,依次叠加。
      • 2.5 TradingView 时段和交易对变化
        • [建议] 时段变化:切换对应时段接口;交易对变化:重新初始化K线

1 前言

Tradingview是一个价格图表和分析软件,提供免费和付费选项,由一群交易员和软件开发商在2011年9月推出。投资者可以通过Tradingview查看各种不同金融市场和资产类别的价格图表,包括股票、货币对、债券、期货以及加密货币。

2 如何使用

2.1 项目引入 Tradingview 静态资源包

[强制] 静态资源包 charting_library-master 放在目录 static 里。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uqlU8rBz-1616988134216)(./images/tradingview-1.png)]

解释:

static 目录下的文件不会被 webpack 处理:它们会直接被复制到最终的打包目录(默认是dist/static)下。必须使用绝对路径引用这些文件,这是通过在 config.js 文件中的 build.assetsPublicPath 和 build.assetsSubDirectory 连接来确定的。

2.2 项目添加 Tradingview 核心库 charting_library.min.js

[建议] 在项目的运行入口 index.html 里添加
<script src="<%= process.env.ASSETS_BASE_URL %><%= process.env.assetsSubDirectory %>/charting_library-master/charting_library/charting_library.min.js"></script>

解释:

charting_library.min.jsTradingview 核心库,提前缓存到浏览器,提升K线渲染效率。

2.3 挂载 Tradingview 到 Vue 组件

[建议] 预挂载,提升K线渲染效率。
// tradingview_chart_container 挂载Id
<template><div class="kline"><div id="tradingview_chart_container" class="chart_container"></div></div>
</template>
<script>
export default {name: "kline",data() {return {tvWidget: null,          // K线实例historyData: [],         // K线历史数据readyed: false,          // K线是否成功初始化limit: 100,              // K线单次获取历史数据数量timeStamp: 0,            // 最后一个数据的时间戳local: "zh",             // K线国际化interval: 'D',           // K线时段subscribeKlineData: {},  // 实时数据webSocketUrl: 'spot/candle-1m:btc-usdt',       // K线实时数据接口onRealtimeCallback2: function () {},          // 实时数据tvTimeList: {}           // K线周期按钮数据}},beforeMount() {// 初始化 TradingViewTradingView.onready(this.initData())},methods: {// 初始化K线initData() {let _this = this;let ossPath = '/' // 本地 或者 线上路径if (process.env.NODE_ENV == "production") {ossPath = 'https://btc018.oss-cn-shenzhen.aliyuncs.com/front/'}this.tvWidget = window.tvWidget = new TradingView.widget({locale: _this.local, // K线国际化symbol: 'BTC/USDT', // 交易对interval: _this.interval, // K线数据时段datafeed: _this.createFeed(), // 数据源library_path : ossPath + "webStatic/charting_library-master/charting_library/", // K线静态资源路径custom_css_url: ossPath + "webStatic/charting_library-master/charting_library/static/pro-night.css", // K线主题文件container_id: "tradingview_chart_container", // 挂载ID// 使用项enabled_features: [...],// 禁用项disabled_features: [...],... // 其它配置项});// 监听K线加载,执行自定义事件this.tvWidget.onChartReady(function () {// 自定义事件...});},   }
</script>

2.4 获取 TradingView 数据并渲染

[建议] 批量获取历史数据,依次叠加。
// ... TradingView Api// 获取历史数据
this.historyData = response.data.concat(this.historyData)// 渲染历史数据
onDataCallback(_this.historyData, {noData: false,
});// 没有更多历史数据时,停止查询
onDataCallback([], {noData: true,
});// 订阅实时数据
this.webSocketUrl = `spot/candle-5m:BTC-USDT`
this.wsOn(this.webSocketUrl, {}, this.subKlineCallback);// 渲染实时数据
subKlineCallback (data) {this.onRealtimeCallback2({time: Number(data[0]) || 0,open: Number(data[1]) || 0,close: Number(data[2]) || 0,high: Number(data[3]) || 0,low: Number(data[4]) || 0,volume: Number(data[5]) || 0,});
}

解释:

批量获取历史数据,接口压力小,响应速度快,提升K线渲染效率。

2.5 TradingView 时段和交易对变化

[建议] 时段变化:切换对应时段接口;交易对变化:重新初始化K线
// 监听交易对
this.$bus.on("symbolChange", symbolInfo => {if (!this.tvWidget) {// 初始化TradingviewTradingView.onready(this.initData())} else {if (symbolInfo.tmId !== this.oldSymbolInfo.tmId) {// 关闭K线订阅this.closeKline();this.historyData = [];this.oldSymbolInfo = symbolInfothis.initData();}}
});

解释:

交易对变化后,清除缓存数据,关闭数据推送,避免K线报错。# TradingView - K线

TradingView - K线 使用详解相关推荐

  1. PHP使用HighChart生成股票K线图详解

    转自:http://blog.csdn.net/wangyuchun_799/article/details/50292315 HighChart是集合了各种常见的web图表的开源合集,其中产生股票K ...

  2. vue+Echarts绘制K线图详解(一)----基本日K图绘制

    目录 1 引入Echarts 1.1 安装 1.2 引入 1.3 基本使用 2 基础K线图 2.1 基础k线图 2.2 基础日k图 3 总结 1 引入Echarts 1.1 安装 使用如下命令通过 n ...

  3. python灰色波浪线,PyCharm关闭碍眼的波浪线图文详解

    下面我先给出了一小段代码示例,思考一下,为什么name,my_name 不会有波浪线,而 myname 和 wangbm 会有波浪线呢? Pycharm 本身会实时地对变量名进行检查,如果变量名不是一 ...

  4. 电脑主板排线设置详解

    电脑主板排线设置详解 都与跳线上的英文相对应要对好了,线上的英文都要对外面,反了不行的. 1电源开关连接线 连接电源开关连接线时,先从机箱面板连线上找到标有"power sw"的两 ...

  5. 高德地图:弧度飞线图层详解

    实现弧度飞线图层需要 地图JS API 和 LOCA数据可视化API 组合实现. 概述-地图 JS API v2.0 | 高德地图API (amap.com) 概述-LOCA 数据可视化 API 2. ...

  6. 【20210922】【机器/深度学习】KNN (K近邻) 算法详解

    一.算法概念 KNN, K-near neighbor,即最近邻算法.它是一种分类算法,算法思想是:一个样本与数据集中的 k 个样本最相似,如果这 k 个样本中的大多数属于某一个类别,则该样本也属于这 ...

  7. java移动平均线算法_移动平均线的原理是什么? 移动平均线计算公式详解

    移动平均线的定义是将一段时期的股票价格加以平均,然后把不同时间的平均值连接起来成一条线,这就是移动平均线的本质,具体如何将股价加以平均就是它的算法问题了,一起来看看移动平均线的原理与算法是什么? 一. ...

  8. 通达信交易服务器修改,通达信画线交易价格修改,通达信画线工具详解

    Q3:通达信成本价的修改问题? 你指的是通达信个人理财参数?还是委托交易设置? 都可以改回来. Q4:通达信里如何把成交明细数量换成金额显示,有知道怎么设置的吗 在工具栏的工具中-系统设置-设置1-成 ...

  9. [前端CSS高频面试题]如何画0.5px的边框线(详解)

    往期css3文章 详解 CSS3中最好用的布局方式--flex弹性布局(看完就会) CSS3基础属性大全 CSS3动画属性 animation详解(看完就会) CSS3 transform 2D转换之 ...

最新文章

  1. springmvc中url-url-pattern /和/*的区别
  2. iOS标准库中常用数据结构和算法之内存池
  3. js进阶 13-6 jquery动画效果相关常用函数有哪些
  4. ZooKeeper安装配置
  5. mysql重装远程服务未_CentOS 7系统安装与远程连接MySQL(5.7)
  6. LeetCode 1819. 序列中不同最大公约数的数目
  7. 安卓checkbox无响应_【安卓手机】无法连接电脑的解决方法
  8. 计算机的3类系统总线分别是_《深入理解计算机系统》读书笔记—第六章、存储器层次结构...
  9. 怎么把JSP的参数:先传到JSP中,然后传给后台
  10. 机器学习算法中文视频教程
  11. mysql 日期计算,今天,明天,本周,下周,本月,下月
  12. 【计算机网络】湖科大微课堂 笔记目录(完结)
  13. lwip-2.1.3在STM32F103ZE+ENC28J60有线网卡上无操作系统移植(使用STM32 HAL库)
  14. Firefox XPI插件安装方法
  15. JavaScript 全栈工程师培训教程(React.js + Node.js)
  16. 不知道STAR法则还敢去面试?备受500强HR推崇的STAR法则详解
  17. 2022年国内各安卓应用市场上传教程
  18. 关于格林尼治时间(GMT)和DateTime相互转换的分享
  19. shp文件显示 c语言,上传并在地图中显示Shp文件
  20. C语言入门教程|| C语言 程序结构|| C语言 基本语法

热门文章

  1. 腾讯云大老亲码“Spring深度笔记”,不讲一句废话,全是精华
  2. (三十七:2021.01.13)Pre-MICCAI 2019学习(二)《前列腺近距离放射治疗中,检测粒子在CT中的3D位置和方向》
  3. 记一次阿里云ECS被挂挖矿代码的处理历程
  4. DirectDraw基础篇(学东西还是基础的好哦!)
  5. 仿苹果手机闹钟_高仿iOS系统闹钟 UserNotifications
  6. springBoot 定时任务执行一段时间后失效
  7. vue循环请求同一个接口,等接口返回数据之后在进行下次循环
  8. 开机后黑屏看不到桌面_电脑开机后桌面黑屏不显示怎么办
  9. P1055 [NOIP2008 普及组] ISBN 号码 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括99位数字、11位识别码和33位分隔符,其规定格式如x-xxx-xxxxx
  10. 新京报:区块链投资绝不能只听“演员的”