vue echarts macd指标 完整代码

1 逻辑

给指定的series两个对象
两个对象有相同的xAxisIndex: 2,yAxisIndex: 2,
不同的data
{name: "",type: "line",data: data1,xAxisIndex: 2,yAxisIndex: 2,},{name: "",type: "bar",data: data2,xAxisIndex: 2,yAxisIndex: 2,},

2 代码 html 代码 -> vscode 保存为html文件 F5运行

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><title>echarts example - Custom bar category</title><script src="https://cdn.jsdelivr.net/npm/echarts@4.9.0/dist/echarts.min.js"></script><style>html,body {height: 100%;margin: 0;}#chart {height: 600px;}</style>
</head>
<body><div id="chart"></div><script>// 数据let data = [['2020/1/1', 247.75, 246.23, 248.73, 245.30],['2020/1/2', 248.80, 247.32, 248.96, 246.37],['2020/1/3', 253.11, 249.06, 253.11, 247.42],['2020/1/4', 252.29, 249.63, 253.60, 249.05],['2020/1/5', 251.23, 249.71, 252.59, 249.06],['2020/1/6', 252.68, 249.36, 254.09, 249.20],['2020/1/7', 254.39, 251.34, 254.67, 251.17],['2020/1/8', 253.33, 250.53, 254.82, 249.85],['2020/1/9', 253.87, 252.44, 254.30, 250.87],['2020/1/10', 255.31, 253.31, 255.60, 252.90],['2020/1/11', 255.99, 253.08, 256.65, 252.30],['2020/1/12', 256.11, 251.15, 256.48, 251.02],['2020/1/13', 255.38, 253.64, 255.75, 253.02],['2020/1/14', 260.28, 256.36, 260.42, 256.18],['2020/1/15', 262.10, 258.35, 262.15, 257.27],['2020/1/16', 263.31, 261.25, 263.61, 259.96],['2020/1/17', 262.99, 261.54, 264.47, 261.07],['2020/1/18', 263.12, 259.03, 263.48, 258.40],['2020/1/19', 263.23, 259.82, 263.63, 258.69],['2020/1/20', 262.10, 261.43, 262.48, 259.51],];// 计算 MACD 指标的函数function calculateMACD(data) {let SHORT = 12;let LONG = 26;let M = 9;let DIFF = 0;let DEA = 0;let MACD = 0;let emaShort = 0;let emaLong = 0;let emaDiff = 0;let macdData = [];let diffData = [];let deaData = [];for (let i = 0; i < data.length; i++) {let close = data[i][1];if (i === 0) {emaShort = close;emaLong = close;} else {emaShort = (2 * close + (SHORT - 1) * emaShort) / (SHORT + 1);emaLong = (2 * close + (LONG - 1) * emaLong) / (LONG + 1);}emaDiff = emaShort - emaLong;diffData.push(emaDiff.toFixed(2));if (i === 0) {DIFF = emaDiff;} else {DIFF = (emaDiff * 2 + (SHORT - 1) * DIFF) / (SHORT + 1);}if (i === 0) {DEA = DIFF;} else {DEA = (DIFF * 2 + (M - 1) * DEA) / (M + 1);}MACD = (DIFF - DEA) * 2;macdData.push(MACD.toFixed(2));deaData.push(DEA.toFixed(2));}return {macdData,diffData,deaData};}// 计算 MACD 指标let macdObj = calculateMACD(data);// 配置项let option = {title: {text: '股票 K 线图及 MACD 指标图'},tooltip: {trigger: 'axis',axisPointer: {type: 'cross',crossStyle: {color: '#999'}}},legend: {data: ['日K', 'MACD', 'DIFF', 'DEA']},grid: [{left: 80,right: 80,top: 20,height: 320},{left: 80,right: 80,top: 380,height: 100}],xAxis: [{type: 'category',data: data.map(item => item[0]),axisPointer: {type: 'shadow'}}],yAxis: [{type: 'value',name: '日K',scale: true,splitArea: {show: true}},{type: 'value',name: 'MACD',position: 'right',offset: 80,axisLine: {show: false},axisTick: {show: false},splitLine: {show: false},axisPointer: {show: false}}],series: [{name: '日K',type: 'candlestick',data: data,itemStyle: {color: '#FD1050',color0: '#0CF49B',borderColor: '#FD1050',borderColor0: '#0CF49B'}},{name: 'MACD',type: 'bar',xAxisIndex: 0,yAxisIndex: 1,data: macdObj.macdData,itemStyle: {color: '#FFAE57'}},{name: 'DIFF',type: 'line',xAxisIndex: 0,yAxisIndex: 1,showSymbol: false,data: macdObj.diffData,itemStyle: {color: '#FFC069'}},{name: 'DEA',type: 'line',xAxisIndex: 0,yAxisIndex: 1,showSymbol: false,data: macdObj.deaData,itemStyle: {color: '#722ED1'}}]};// 画图let chart = echarts.init(document.getElementById('chart'));chart.setOption(option);</script>
</body>
</html>

3 代码测试网站

https://codepen.io/pen/?&editable=true&editors=101%2C111%2C110%2C115%2C114%2C112%2C113%2C109

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/40501.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mac M2 Pro安装使用Cocoapods

Mac Pro M2安装使用Cocoapods 在新公司要做iOS开发&#xff0c;所以在新电脑上安装Cocoapods 在升级gem&#xff0c;sudo gem update --system&#xff0c;和安装cocoapods时都遇到如下的提示&#xff1a; ERROR: While executing gem ... (Errno::EPERM)Operation not per…

Linux下安装nodejs

1、下载nodejs 点击前往&#xff1a;Download | Node.js 2、解压 tar -xvf node-v18.16.0-linux-x64.tar.xz mv node-v18.16.0-linux-x64/ /usr/local/nodejs 3、 建立软链接 此时的bin文件夹中已经存在node以及npm&#xff0c;如果你进入到对应文件的中执行命令行一点问题…

现代C++:使用 shared_from_this 防止 this 提前被释放

首先概括一下shared_from_this的作用&#xff1a;可以在类的成员函数中直接通过this得到指向当前所在对象的shared_ptr的智能指针&#xff0c;具体操作如下。 使用方法 设需要提供shared_from_this方法的类为C0定义为类&#xff0c;首先需要将C0定义为 std::enable_shared_fr…

mysql 02 数据库的约束

为防止错误的数据被插入到数据表&#xff0c;MySQL中定义了一些维护数据库完整性的规则&#xff1b;这些规则常称为表的约束。常见约束如下&#xff1a; 主键约束 主键约束即primary key用于唯一的标识表中的每一行。被标识为主键的数据在表中是唯一的且其值不能为空。这点类似…

前后端分离------后端创建笔记(10)用户修改

本文章转载于【SpringBootVue】全网最简单但实用的前后端分离项目实战笔记 - 前端_大菜007的博客-CSDN博客 仅用于学习和讨论&#xff0c;如有侵权请联系 源码&#xff1a;https://gitee.com/green_vegetables/x-admin-project.git 素材&#xff1a;https://pan.baidu.com/s/…

Spring Boot实现第一次启动时自动初始化数据库流程详解

随着互联网的发展项目中的业务功能越来越复杂&#xff0c;有一些基础服务我们不可避免的会去调用一些第三方的接口或者公司内其他项目中提供的服务&#xff0c;但是远程服务的健壮性和网络稳定性都是不可控因素。 在测试阶段可能没有什么异常情况&#xff0c;但上线后可能会出…

设计HTML5文本

网页文本内容丰富、形式多样&#xff0c;通过不同的版式显示在页面中&#xff0c;为用户提供最直接、最丰富的信息。HTML5新增了很多文本标签&#xff0c;它们都有特殊的语义&#xff0c;正确使用这些标签&#xff0c;可以让网页文本更严谨、更符合语义。 1、通用文本 1.1、标…

算法竞赛备赛之搜索与图论训练提升,暑期集训营培训

目录 1.DFS和BFS 1.1.DFS深度优先搜索 1.2.BFS广度优先搜索 2.树与图的遍历&#xff1a;拓扑排序 3.最短路 3.1.迪杰斯特拉算法 3.2.贝尔曼算法 3.3.SPFA算法 3.4.多源汇最短路Floy算法 4.最小生成树 4.1.普利姆算法 4.2.克鲁斯卡尔算法 5.二分图&#xff1a;染色法…

7. CSS(四)

目录 一、浮动 &#xff08;一&#xff09;传统网页布局的三种方式 &#xff08;二&#xff09;标准流&#xff08;普通流/文档流&#xff09; &#xff08;三&#xff09;为什么需要浮动&#xff1f; &#xff08;四&#xff09;什么是浮动 &#xff08;五&#xff09;浮…

OpenAI全球招外包大军,手把手训练ChatGPT取代码农 ; 码农:我自己「杀」自己

目录 前言 OpenAI招了一千多名外包人员&#xff0c;训练AI学会像人类一样一步步思考。如果ChatGPT「学成归来」&#xff0c;码农恐怕真的危了&#xff1f; 码农真的危了&#xff01; 当时OpenAI也说&#xff0c;ChatGPT最合适的定位&#xff0c;应该是编码辅助工具。 用Cha…

计算机竞赛 opencv 图像识别 指纹识别 - python

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于机器视觉的指纹识别系统 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;4分 该项目较为新颖&#xff0c;适…

Vue引入Echarts报错 import * as echarts from “echarts“;

项目场景&#xff1a; 已经下载好echarts cnpm i echarts Vue引入Echarts import echarts from echarts mounted() {this.myChart echarts.init(document.querySelector(.right))this.myChart.setOption({title: {text: 消费列表,left: center},...问题描述 原因分析&#…

【100天精通python】Day38:GUI界面编程_PyQT从入门到实战(中)

目录 专栏导读 4 数据库操作 4.1 连接数据库 4.2 执行 SQL 查询和更新&#xff1a; 4.3 使用模型和视图显示数据 5 多线程编程 5.1 多线程编程的概念和优势 5.2 在 PyQt 中使用多线程 5.3 处理多线程间的同步和通信问题 5.3.1 信号槽机制 5.3.2 线程安全的数据访问 Q…

日常BUG——通过命令行创建vue项目报错

&#x1f61c;作 者&#xff1a;是江迪呀✒️本文关键词&#xff1a;日常BUG、BUG、问题分析☀️每日 一言 &#xff1a;存在错误说明你在进步&#xff01; 一、问题描述 在使用vue命令行创建一个vue项目时&#xff0c;出现一下的错误&#xff1a; vue create my…

UDP数据报结构分析(面试重点)

在传输层中有UDP和TCP两个重要的协议&#xff0c;下面将针对UDP数据报的结构进行分析 UDP结构图示 UDP报头结构的分析 UDP报头有4个属性&#xff0c;分别是源端口&#xff0c;目的端口&#xff0c;UDP报文长度&#xff0c;校验和&#xff0c;它们都占16位2个字节&#xff0c;所…

【java面向对象中static关键字】

提纲 static修饰成员变量static修饰成员变量的应用场景static修饰成员方法static修饰成员方法的应用场景static的注意事项static的应用知识&#xff1a;代码块static的应用知识&#xff1a;单例设计模式 static静态的意思&#xff0c;可以修饰成员变量&#xff0c;成员方法&a…

FPGA_学习_14_第一个自写模块的感悟和ila在线调试教程与技巧(寻找APD的击穿偏压)

前一篇博客我们提到了&#xff0c;如果要使用算法找到Vbr&#xff0c;通过寻找APD采集信号的噪声方差的剧变点去寻找Vbr是一个不错的方式。此功能的第一步是在FPGA中实现方差的计算&#xff0c;这个我们已经在上一篇博客中实现了。 继上一篇博客之后&#xff0c;感觉过了很久了…

【Image captioning】ruotianluo/self-critical.pytorch之1—数据集的加载与使用

【Image captioning】ruotianluo/self-critical.pytorch之1—数据集的加载与使用 作者&#xff1a;安静到无声 个人主页 数据加载程序示意图 使用方法 示例代码 #%%from __future__ import absolute_import from __future__ import division from __future__ import print_…

开源,微信小程序 美食便签地图(FoodNoteMap)的设计与开发

目录 0 前言 1 美食便签地图简介 2 美食便签地图小程序端开发 2.1技术选型 2.2前端UI设计 2.3主页界面 2.4个人信息界面 2.5 添加美食界面 2.6美食便签界面 2.8 美食好友界面 2.9 美食圈子界面 2.10 子页面-店铺详情界面 2.11 后台数据缓存 2.12 订阅消息通知 2.1…

探索区块链世界:去中心化应用(DApp)的崭新前景

随着科技的不断发展&#xff0c;区块链技术逐渐引领着数字时代的潮流。在这个充满创新和变革的领域中&#xff0c;去中心化应用&#xff08;DApp&#xff09;成为了备受瞩目的焦点。DApp 不仅改变了传统应用程序的范式&#xff0c;还在金融、社交、游戏等多个领域展现出了广阔的…