zoukankan      html  css  js  c++  java
  • Vue中引入TradingView制作K线图

    **前言: 本文使用的是1.10版本 , 可通过TradingView.version()查看当前版本.
    附上开发文档地址:https://zlq4863947.gitbooks.i...**

    一、修改datafeed.js为export导出,并在vue文件引入TradingView内部代码charting_library.min.js和datafeed.js.

    前端开发者常用的 9 个 JavaScript 图表库

    datafeed.js

    // 导出核心函数,提供vue组件调用初始化k线图
    export default {
        UDFCompatibleDatafeed: Datafeeds.UDFCompatibleDatafeed,
    }
    

    vue 组件

    // 这是我的路径,请根据自己的路径去配置
    import "../../../static/charting_library/charting_library.min.js";
    import Datafeeds from "../../../static/charting_library/datafeed/udf/datafeed.js";
    

    二、初始化k线图函数

    data(){
        return{
             widget: null,
        }
    }
    ,
    methods:{
        createWidget() {
           var _this = this;
          this.$nextTick(function() {
            let widget = new TradingView.widget({
              symbol: 'BTC-USDT',//商品名称
              interval: "15",//默认显示时间分辨率15分钟
              container_id: "tv_chart_container",//k线div容器id
              //调用datafeed初始化函数
              datafeed: new Datafeeds.UDFCompatibleDatafeed(
                'https://demo_feed.tradingview.com',//后台地址
                10000, //轮询时间(毫秒)
              ),
              library_path: "/static/charting_library/", //static文件夹的路径
              locale: 'zh', //语言
              fullscreen: true, //显示图表是否占用窗口中所有可用的空间
              //禁用图表某个功能,参考:https://tradingview.gitee.io/featuresets/
              disabled_features: [
                "use_localstorage_for_settings",
                "left_toolbar", //隐藏左边工具栏
                "header_saveload",
                "header_symbol_search", //隐藏搜索框
                "header_interval_dialog_button", //隐藏设置周期按钮
                "timeframes_toolbar", //隐藏底部刻度栏
                "header_chart_type", //隐藏k线样式选择
                // "header_indicators", //隐藏指标按钮
                "header_fullscreen_button",
                "header_undo_redo", //隐藏撤销重做按钮
                "header_compare", //隐藏比较/增加商品按钮
                "header_screenshot", //隐藏截屏按钮
                "header_resolutions",
                "edit_buttons_in_legend",
                "pane_context_menu",
                "legend_context_menu",
                "adaptive_logo",
                "display_market_status",
                "volume_force_overlay"
              ],
              //启用图表某个功能
              enabled_features: ["study_templates", "move_logo_to_main_pane"],
              charts_storage_url: "https://saveload.tradingview.com",
              charts_storage_api_version: "1.1",//版本
              timezone: "Asia/Shanghai",//时区
              user_id: "public_user_id",
            });
            _this.widget = widget; //保存图表对象
          });
        },
        // 更新图表
        updateWidget(item) {
          this.removeWidget();
          this.createWidget();
        },
        //销毁图表
        removeWidget() {
          if (this.widget) {
            this.widget = null;
          }
        },
        destroyed() {
            this.removeWidget();
        }
    },
    mounted(){
        this.$nextTick(()=>{
            this.updateWidget();
        })
        
    }
    

    三、Datafeed.js简单介绍

    普遍主要通过修改这几个函数实现预期效果
    
    
    • Datafeeds.UDFCompatibleDatafeed.prototype.resolveSymbol - 配置商品信息结构 (文档:https://zlq4863947.gitbooks.i...
    • Datafeeds.UDFCompatibleDatafeed.prototype.getBars - 通过日期范围获取历史K线数据。图表库希望通过onHistoryCallback仅一次调用,接收所有的请求历史。而不是被多次调用。
    • Datafeeds.DataPulseUpdater - 更新后台返回k线最新的数据

    emmm: 网上比较少关于TradingView引入Vue的文章,小弟不才,粗略的分享一下我的实现方法.

    原文地址:https://segmentfault.com/a/1190000016879057
  • 相关阅读:
    MongoDB的简单操作
    MongoDB下载安装
    enctype="multipart/form-data" form表单提交值为null
    shiro
    json简单介绍
    Sql Server 安装
    MySQL面试常问的查询操作
    关于分页
    Vuex
    Vue基础安装(精华)
  • 原文地址:https://www.cnblogs.com/lalalagq/p/9900487.html
Copyright © 2011-2022 走看看