{"_id":"@bitfirer/trading-view-datafeeds","name":"@bitfirer/trading-view-datafeeds","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"dependencies":{"dayjs":"^1.8.28","pako":"^1.0.11"},"deprecated":false,"description":"适用于 tradingview JS Api 的 datafeeds","main":"./TVDatafeeds.min.js","name":"@bitfirer/trading-view-datafeeds","version":"0.0.1","devDependencies":{},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":{"name":"bitfirer"},"license":"ISC","_id":"@bitfirer/trading-view-datafeeds@0.0.1","gitHead":"c468831e8bd86bed37ad1dff5270d565cd52bc26","_nodeVersion":"18.18.0","_npmVersion":"9.8.1","dist":{"integrity":"sha512-MXttatRMPX4bmXB9cPzBpWFLbFHdlXpxD8L373vIASlTDvk1+YinhiSoJDJa/kCMS4rEjyfh1OqizeRUFmtSBQ==","shasum":"dd08f436f5631ae15908f9deec57b43f8d104d56","tarball":"https://registry.npmjs.org/@bitfirer/trading-view-datafeeds/-/trading-view-datafeeds-0.0.1.tgz","fileCount":5,"unpackedSize":82683,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/DFW/+FtytGFYed76mCtTdIIqSPVB/VMpIQTNSGlyQQIhAKO0B4ynoIftZUO8LBlCl5RH0adOKZAWrDuvuDua88Cc"}]},"_npmUser":{"name":"russell.yan","email":"xhy8293@163.com"},"directories":{},"maintainers":[{"name":"russell.yan","email":"xhy8293@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/trading-view-datafeeds_0.0.1_1697425245456_0.4730672838477248"},"_hasShrinkwrap":false}},"time":{"created":"2023-10-16T03:00:45.354Z","0.0.1":"2023-10-16T03:00:45.615Z","modified":"2023-10-16T03:00:45.951Z"},"maintainers":[{"name":"russell.yan","email":"xhy8293@163.com"}],"description":"适用于 tradingview JS Api 的 datafeeds","author":{"name":"bitfirer"},"license":"ISC","readme":"# @bitfirer/trading-view-datafeeds\r\n\r\n适用于 tradingview JS Api 的 datafeeds\r\n\r\n### 更新日志\r\n\r\n#### v.0.0.1-beta0.2\r\n1. `Datafeeds`新增了`vyRefreshSymbolInfo`方法，用于刷新币种信息\r\n2. 处理空数据异常\r\n\r\n#### v.0.0.1-beta0.1\r\n`Datafeeds`新增了`vySetWidget`方法，用于存储`widget`\r\n\r\n\r\n### 一、使用\r\n\r\n1. 引入：`import { Datafeeds, TradingConfig } from \"path/to/TVDatafeeds.min.js\";`\r\n2. 实例化\r\n```\r\nnew Datafeed({\r\n  wsUrl: \"\", // ws 地址\r\n  symbolInfo, // 即 symbolInfo\r\n  tradingConfig, // 见下文\r\n  reconnectCallback: Function // 重连后回调函数，参数：symbol（当前商品）, interval（当前粒度）。在这里根据参数，重新初始化图表\r\n})\r\n```\r\n[symbolInfo](https://zlq4863947.gitbook.io/tradingview/3-shu-ju-bang-ding/symbology#%E5%95%86%E5%93%81%E4%BF%A1%E6%81%AF%E7%BB%93%E6%9E%84)  \r\n\r\n3. `TradingConfig({intervalMap, configurationData})` 自定义图表配置\r\n  - `intervalMap` 粒度映射\r\n  - `configurationData` 服务端自定义配置，对应 [onReady(callback)的参数](https://zlq4863947.gitbook.io/tradingview/3-shu-ju-bang-ding/js-api#onreadycallback)\r\n\r\n### 二、方法\r\n  - `vyUnsubLastSymbol` 取消订阅上一币种；\r\n  - `vyGetInterval` 获取当前粒度；\r\n\r\n### 三、说明\r\n  支持：\r\n  - 断线重连；\r\n  - 按需请求历史数据；\r\n\r\n### 四、demo\r\n```\r\n<template>\r\n  <div class=\"home\">\r\n    <select v-model=\"selectValue\">\r\n      <option value=\"BTC/USDT\">BTC/USDT</option>\r\n      <option value=\"BCH/USDT\">BCH/USDT</option>\r\n      <option value=\"ETH/USDT\">ETH/USDT</option>\r\n    </select>\r\n    <button @click=\"getValue\">切换币种</button>\r\n    <div id=\"container\" class=\"container\"></div>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nimport { Datafeeds, TradingConfig } from \"../../dist/TVDatafeeds.min.js\";\r\nconst tradingConfig = new TradingConfig({\r\n  intervalMap: {\r\n    1: \"m1\",\r\n    5: \"m5\",\r\n    15: \"m15\",\r\n    30: \"m30\",\r\n    60: \"h1\",\r\n    120: \"h2\",\r\n    D: \"d1\",\r\n    \"2D\": \"d2\",\r\n    \"1W\": \"w1\",\r\n    \"6M\": \"m6\"\r\n  },\r\n  configurationData: {\r\n    supported_resolutions: [1, 5, 15, 30, 60, 120, \"D\", \"2D\", \"1W\", \"6M\"]\r\n  }\r\n});\r\n\r\nconst symbolInfo = {\r\n  minmov: 1,\r\n  pricescale: 100,\r\n  description: \"这是商品说明\",\r\n  type: \"bitcoin\",\r\n  session: \"24x7\",\r\n  ticker: \"\",\r\n  timezone: \"Asia/Shanghai\",\r\n  has_intraday: true\r\n};\r\n\r\nexport default {\r\n  name: \"Home\",\r\n  data() {\r\n    return {\r\n      widget: null,\r\n      selectValue: \"BTC/USDT\",\r\n      datafeed: null\r\n    };\r\n  },\r\n  methods: {\r\n    initConfig() {\r\n      this.datafeed = new Datafeeds({\r\n        wsUrl: \"wss://ws.bingoex.pro/cfdMarket\",\r\n        symbolInfo,\r\n        tradingConfig,\r\n        reconnectCallback: this.reconnectCallback\r\n      });\r\n    },\r\n    getValue() {\r\n      this.datafeed.vyUnsubLastSymbol();\r\n      this.widget.setSymbol(\r\n        this.selectValue,\r\n        this.datafeed.vyGetInterval(),\r\n        () => {}\r\n      );\r\n    },\r\n    reconnectCallback(symbol, interval) {\r\n      this.initTradingView(symbol, interval);\r\n    },\r\n    initTradingView(symbolName = \"BTC/USDT\", interval = 5) {\r\n      // eslint-disable-next-line new-cap\r\n      this.widget = new window.TradingView.widget({\r\n        symbol: symbolName,\r\n        interval,\r\n        container_id: \"container\",\r\n        timezone: \"Asia/Shanghai\",\r\n        locale: \"zh\",\r\n        library_path: \"/lib/charting_library/\",\r\n        datafeed: this.datafeed,\r\n        autosize: true\r\n        // debug: true\r\n      });\r\n      this.datafeed.vySetWidget(this.widget);\r\n    }\r\n  },\r\n  mounted() {\r\n    this.$nextTick(() => {\r\n      this.initConfig();\r\n      this.initTradingView();\r\n      // window.addEventListener(\r\n      //   \"DOMContentLoaded\",\r\n      //   () => ,\r\n      //   false\r\n      // );\r\n    });\r\n  }\r\n};\r\n</script>\r\n\r\n<style lang=\"less\" scoped>\r\n.container {\r\n  margin: 0 auto;\r\n  margin-top: 50px;\r\n  width: 1200px;\r\n  height: 600px;\r\n  background-color: #f1f1f1;\r\n}\r\n</style>\r\n\r\n```\r\n","readmeFilename":"README.md"}