• TradingView 初识


    如引用 TradingView 库,需引入库中 3 个文件(所需库为 github 私有库,需申请)

    <script type="text/javascript" src="/static/charting_library-master/charting_library/charting_library.min.js"></script>
    <script type="text/javascript" src="/static/charting_library-master/datafeeds/udf/dist/polyfills.js"></script>
    <script type="text/javascript" src="/static/charting_library-master/datafeeds/udf/dist/bundle.js"></script>

    初始化图表:

        TradingView.onready(function () {
            var chart = window.tvWidget = new TradingView.widget({
                symbol: 'd',
                height: '900',
                 '1700',
                interval: 'D',
                toolbar_bg: '#c5c5c8',
                timezone: 'Asia/Shanghai',
                time_frames: [
                    {text: "1y", resolution: "1W"},
                    {text: "6m", resolution: "3D"},
                    {text: "3m", resolution: "1D"},
                    {text: "1m", resolution: "1D"},
                    {text: "1w", resolution: "30"},
                    {text: "3d", resolution: "30"},
                    {text: "1d", resolution: "30"},
                    {text: "6h", resolution: "15"},
                    {text: "1h", resolution: "1"},
                    { text: "100y", resolution: "W", description: "All", title: "All" },
                ],
                container_id: 'tv_chart_container',
                library_path: '/static/charting_library-master/charting_library/',
                locale: 'zh',
                //datafeed: new Datafeeds.UDFCompatibleDatafeed("https://demo_feed.tradingview.com"),
                datafeed: chart_data, //需要显示的数据内容
                disabled_features:[
                    //'volume_force_overlay',// 成交量与k线分离
                ],
                overrides:{
                    'volumePaneSize': 'small', //成交量高度设置,可选值 large, medium, small, tiny
    
                }
            });

    我也不知道这是加载图表还是什么,反正就出现图表了

    function createChartData(){
            Datafeeds.Container = function () {
                //this._configuration=configurationData
                this._configuration = {
                    supports_search: false,
                    supports_group_request:false,
                    exchanges:[{value: 'DV', name: 'NYSE', desc: 'DeVry Education Group Inc.'}],
                    supported_resolutions: ['1', '15','D','M'],
                    supports_marks: false,
                    supports_time: false,
                    supports_timescale_marks: false,
                    symbols_types: [{name: 'Ny', value: 'dv'}],
                }
            }
            Datafeeds.Container.prototype.onReady = function (callback) {
                let that = this;
                getChartData();
                if(this._configuration){
                    setTimeout(function(){
                        callback(that._configuration);
                    }, 0);
                }
            }
    
            Datafeeds.Container.prototype.getBars = function(symbolInfo, resolution, dataFrom, dataTo, onHistoryCallback) {
                onHistoryCallback(dataBar);
    
            }
            Datafeeds.Container.prototype.resolveSymbol = function(symbolName, onSymbolResolvedCallback, onResolveErrorCallback) {
                onSymbolResolvedCallback({
                    "name": 'D',
                    "timezone": "Asia/Shanghai",
                    "pricescale": 500,
                    "minmov": 1,
                    "ticker": 'D',
                    "description": "DIdontKnow",
                    "session": "24x7",
                    "type": "bitcoin",
                    "has_intraday": true,
                    "intraday_multipliers": ['1', '30', 'D'],
                    "has_weekly_and_monthly": false,
                    "has_no_volume": false,
                    "regular_session": "24x7"
                });
            }
                
    
            return new Datafeeds.Container;
        }

    数据内容为自己设置的随机生成的一些数据,仅供测试使用

        function getChartData() {
             var time = 1528404420000;
             var maxHigh = 8888;
             var minLow = 8000;
             for (var i =0; i<10000; i++){
                 var high = maxHigh - Math.floor(Math.random()*300);
                 var low = minLow + Math.floor(Math.random()*300);
                 var close = high - Math.floor(Math.random()*500);
                 var open = low + Math.floor(Math.random()*500);
                 var volume = parseInt(Math.random()*100);
                 this.dataBar.push({
                         time:time,
                         close:close,
                         open:open,
                         high:high,
                         low:low,
                         volume:volume
                     })
                 time += 2000000;
             }
            //console.log(dataBar);
        }

    整体代码:

      1 <!-- TradingView Widget BEGIN -->
      2 <html>
      3 <head>
      4     <script type="text/javascript" src="/static/charting_library-master/charting_library/charting_library.min.js"></script>
      5     <script type="text/javascript" src="/static/charting_library-master/datafeeds/udf/dist/polyfills.js"></script>
      6     <script type="text/javascript" src="/static/charting_library-master/datafeeds/udf/dist/bundle.js"></script>
      7 </head>
      8 
      9 <body>
     10 <div id="tv_chart_container"></div>
     11 
     12 </body>
     13 <script type="text/javascript">
     14     var dataBar = [];
     15     var chart_data = createChartData();
     16     TradingView.onready(function () {
     17         var chart = window.tvWidget = new TradingView.widget({
     18             symbol: 'd',
     19             height: '900',
     20              '1700',
     21             interval: 'D',
     22             toolbar_bg: '#c5c5c8',
     23             timezone: 'Asia/Shanghai',
     24             time_frames: [
     25                 {text: "1y", resolution: "1W"},
     26                 {text: "6m", resolution: "3D"},
     27                 {text: "3m", resolution: "1D"},
     28                 {text: "1m", resolution: "1D"},
     29                 {text: "1w", resolution: "30"},
     30                 {text: "3d", resolution: "30"},
     31                 {text: "1d", resolution: "30"},
     32                 {text: "6h", resolution: "15"},
     33                 {text: "1h", resolution: "1"},
     34                 { text: "100y", resolution: "W", description: "All", title: "All" },
     35             ],
     36             container_id: 'tv_chart_container',
     37             library_path: '/static/charting_library-master/charting_library/',
     38             locale: 'zh',
     39             //datafeed: new Datafeeds.UDFCompatibleDatafeed("https://demo_feed.tradingview.com"),
     40             datafeed: chart_data,
     41             disabled_features:[
     42                 //'volume_force_overlay',// 成交量与k线分离
     43             ],
     44             overrides:{
     45                 'volumePaneSize': 'small', //成交量高度设置,可选值 large, medium, small, tiny
     46 
     47             }
     48         });
     49         chart.onChartReady(function () {
     50             //chart.chart().createStudy('MA Cross', false, false); // K线图添加初始化曲线
     51         }) ;
     52     });
     53     function createChartData(){
     54         Datafeeds.Container = function () {
     55             //this._configuration=configurationData
     56             this._configuration = {
     57                 supports_search: false,
     58                 supports_group_request:false,
     59                 exchanges:[{value: 'DV', name: 'NYSE', desc: 'DeVry Education Group Inc.'}],
     60                 supported_resolutions: ['1', '15','D','M'],
     61                 supports_marks: false,
     62                 supports_time: false,
     63                 supports_timescale_marks: false,
     64                 symbols_types: [{name: 'Ny', value: 'dv'}],
     65             }
     66         }
     67         Datafeeds.Container.prototype.onReady = function (callback) {
     68             let that = this;
     69             getChartData();
     70             if(this._configuration){
     71                 setTimeout(function(){
     72                     callback(that._configuration);
     73                 }, 0);
     74             }
     75         }
     76 
     77         Datafeeds.Container.prototype.getBars = function(symbolInfo, resolution, dataFrom, dataTo, onHistoryCallback) {
     78             onHistoryCallback(dataBar);
     79 
     80         }
     81         Datafeeds.Container.prototype.resolveSymbol = function(symbolName, onSymbolResolvedCallback, onResolveErrorCallback) {
     82             onSymbolResolvedCallback({
     83                 "name": 'D',
     84                 "timezone": "Asia/Shanghai",
     85                 "pricescale": 500,
     86                 "minmov": 1,
     87                 "ticker": 'D',
     88                 "description": "DIdontKnow",
     89                 "session": "24x7",
     90                 "type": "bitcoin",
     91                 "has_intraday": true,
     92                 "intraday_multipliers": ['1', '30', 'D'],
     93                 "has_weekly_and_monthly": false,
     94                 "has_no_volume": false,
     95                 "regular_session": "24x7"
     96             });
     97         }
     98             
     99 
    100         return new Datafeeds.Container;
    101     }
    102     function getChartData() {
    103          var time = 1528404420000;
    104          var maxHigh = 8888;
    105          var minLow = 8000;
    106          for (var i =0; i<10000; i++){
    107              var high = maxHigh - Math.floor(Math.random()*300);
    108              var low = minLow + Math.floor(Math.random()*300);
    109              var close = high - Math.floor(Math.random()*500);
    110              var open = low + Math.floor(Math.random()*500);
    111              var volume = parseInt(Math.random()*100);
    112              this.dataBar.push({
    113                      time:time,
    114                      close:close,
    115                      open:open,
    116                      high:high,
    117                      low:low,
    118                      volume:volume
    119                  })
    120              time += 2000000;
    121          }
    122         //console.log(dataBar);
    123     }
    124 </script>
    125 <p>chart</p>
    126 </html>
    TradingView

     效果图:

  • 相关阅读:
    Python之sys & os
    1161
    1142
    P1599 货币
    P1547逆转,然后再见
    P1629八
    P1753HackSon的趣味题
    Problem 2233 ~APTX4869
    1269
    1091. Tmutarakan Exams
  • 原文地址:https://www.cnblogs.com/xsmile/p/10531258.html
Copyright © 2020-2023  润新知