C#/.NET量化开发实现财富自由【4】实现EMA、MACD技术指标的计算

听说大A又回到了2950点以下,对于量化交易来说,可能这些都不是事儿。例如,你可以预判到大A到顶了,你可能早就跑路了。判断逃顶还是抄底,最简单的方式就是判断是否顶背离还是底背离,例如通过MACD,你可以编写指标用来判断是顶背离还是底背离,集成到股票软件上,例如:

2bdc540a452c87f634754b68e0db978a.jpeg

当然,交易软件上面的指标,还是有局限性,因为不能帮助咱们自动交易。要自动交易,还是需要写代码,然后通过代码判断一些技术指标或者其他自定义指标。而上面的顶底背离,就需要用到MACD指标来进行计算。于是就进入到今天的主场内容,使用.NET开发实现对MACD数据的计算。

先祝各位看这个文章的大佬们,早日实现股票账户余额超过下图那样冰冷的数字,实现自由。

f6e15127bb10fa4b2c98f7e6721a82a7.png

废话不多说,开始重点。先创建一个基础技术指标类,用来后续处理多种基础技术指标使用。例如今天要说的EMA指标实现算法。算法实现如图所示。

10d2aee9e251f78c27d2fb74441a5235.png

EMA可以用来干嘛呢?EMA(指数移动平均)可以用来计算出MACD、DIFF、DEA、背离等等。可以说是各种技术指标里面最经常要用到的指标。

EMA的数学公式如下:

a53c5ddef43297c906271f9ef9e27c30.png

例如下面咱们使用EMA基础指标,来计算出MACD指标数据。控制器里面新增一个测试EMA的api接口,用来计算EMA和MACD使用。

e0b8c56ecdebce4fc9856ed7c8a48ee5.png

然后计算MACD、DIF、DEA等数据,并输出最新的两天的数据做验证。

9e2381b889f64d1bddb16077e52d0e75.png

运行程序,并调用api接口执行一下,获取到最近两天的数据

2902df7efc834ee3e8fe1e8460e6243c.png

{
  "todayMacd": -0.04443251288908123,
  "todayDea": -0.32544380570976894,
  "todayDif": -0.34766006215430956,
  "lastMacd": -0.07166991643366516,
  "lastDea": -0.3198897415986338,
  "lastDif": -0.3557246998154664
}

现在随便打开一个行情网站或者软件查看该股票的这两天的数据做对比。例如我打开的雪球,查看该个股数据:

21a1a50834866170406bd9d24f762e29.png

DIF=-0.35

DEA=-0.33

MACD=-0.04

刚好和上面数据对应的上,一般行情软件都会四舍五入保留两位数。

现在看前一天的数据:

6375f88c8572a7280c8179cbb7e77b89.png

DIF=-0.36

DEA=-0.32

MACD=-0.07

也可以和上面的数据的四舍五入后的对应上,说明咱们的MACD计算是正确的。

EMA计算:

var returnValues = new List<double>();
double multiplier = 2.0 / (period + 1); // 确保进行浮点数计算
double initialSMA = input.Take(period).Average();


returnValues.Add(initialSMA);


var copyInputValues = input.ToList();


// 从index=period开始,因为我们已经计算了第一个EMA值为initial SMA
for (int i = period; i < copyInputValues.Count; i++)
{
    double lastEMA = returnValues.Last(); // 获取上一个EMA值
    double newEMA = (copyInputValues[i] - lastEMA) * multiplier + lastEMA;
    returnValues.Add(newEMA);
}


var result = new EmaResult()
{
    Values = returnValues,
    StartIndexOffset = period - 1
};

MACD计算:

List<double> ema12List = BasicIndicators.CalculateEMA(total, 12).Values;
 List<double> ema26List = BasicIndicators.CalculateEMA(total, 26).Values;
 // 计算DIF
 var dif = ema12List.Zip(ema26List, (x, y) => x - y).ToList();


 // 计算DEA
 var dea = BasicIndicators.CalculateEMA(dif, 9).Values.ToList();
 // 计算MACD
 var macd = dif.Zip(dea, (difValue, deaValue) => (difValue - deaValue) * 2).ToList();

如果觉得有帮助,欢迎点赞、留言、转发或关注。谢谢各位大佬,祝大佬们早日财富自由。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

华为5288 V5服务器安装BCLinux8U4手记

本文记录了华为5288 V5服务器安装BCLinux8U4操作系统的过程。 一、系统环境 1、服务器 华为FusionServer Pro 5288 V5服务器 2、操作系统 BCLinux-R8-U4-Server-x86_64-220725.iso 官网下载地址 sha256sum&#xff1a;1d31d3b8e02279e89965bd3bea61f14c65b9d32ad2ab6d4eb…

MySQL数据库基础练习系列——教务管理系统

项目名称与项目简介 教务管理系统是一个旨在帮助学校或教育机构管理教务活动的软件系统。它涵盖了学生信息管理、教师信息管理、课程管理、成绩管理以及相关的报表生成等功能。通过该系统&#xff0c;学校可以更加高效地处理教务数据&#xff0c;提升教学质量和管理水平。 1.…

uniapp获取证书秘钥、Android App备案获取公钥、签名MD5值

一、 uniapp获取证书秘钥 打开uniapp开发者中心下载证书打开cmd输入以下这段代码&#xff0c;下载提供查看到的密钥证书密码就可以了&#xff01;下载证书在 java 环境下运行才可以 // your_alias 换成 证书详情中的别名&#xff0c;your_keystore.keystore 改成自己的证书文件…

炸裂行情,只涨指数难涨票!你的股票涨了吗?

今天的A股&#xff0c;让人愣住了&#xff0c;你知道是为什么吗&#xff1f;盘面上出现2个耐人寻味的重要信号&#xff0c;一起来看看&#xff1a; 1、今天A股冲高回落&#xff0c;很多人愣住了&#xff0c;别慌&#xff01;主力增量在不断增加&#xff0c;7月的一波主线反弹正…

小程序web-view无法打开该页面的解决方法

问题&#xff1a;开发者工具可以正常打开&#xff0c;正式上线版小程序使用 web-view 组件测试时提示&#xff1a;“无法打开该页面&#xff0c;不支持打开 https://xxxxxx&#xff0c;请在“小程序右上角更多->反馈与投诉”中和开发者反馈。” 解决方法&#xff1a;需要配…

计网实训——不相同网段的PC相互通信

目录 提前准备APP路由器指令 实验一1、实验需求&#xff08;1&#xff09;实现同网段的PC相互通信。&#xff08;2&#xff09;实现不相同网段的PC相互通信。&#xff08;3&#xff09;分析相同和不同网段PC通信时MAC地址的变化。 2、实验拓扑3、实验步骤及实验截图&#xff08…

金顺心贸易有限公司简介

金顺心贸易有限公司成立于2015年&#xff0c;注册地位于风景如画的广西壮族自治区防城港市东兴市。 金顺心贸易如他们的名字一样&#xff0c;有着实实在在的业绩和口碑的。他们专注于国际贸易&#xff0c;主营越南进口食品&#xff1a;果汁饮料、春卷皮、调味品、汤底、米粉、…

【LeetCode】九、双指针算法:环形链表检测 + 救生艇

文章目录 1、双指针算法1.1 对撞双指针1.2 快慢双指针 2、leetcode141&#xff1a;环形链表3、leetcode881&#xff1a;救生艇 1、双指针算法 用两个指针来共同解决一个问题&#xff1a; 1.1 对撞双指针 比如先有一个有序的数组array int[] array {1, 4, 5, 7, 9}先要找两个…

# Kafka_深入探秘者(10):kafka 监控

Kafka_深入探秘者&#xff08;10&#xff09;&#xff1a;kafka 监控 一、kafka JMX 1、JMX &#xff1a;全称 Java Managent Extension 在实现 Kafka 监控系统的过程中&#xff0c;首先我们要知道监控的数据从哪来&#xff0c;Kafka 自身提供的监控指标(包括 broker 和主题的…

Zabbix如何帮助企业将监控数据转化为竞争优势

By Fernanda Moraes 在我们生活的高度互联世界中&#xff0c;变化以越来越快和激烈的速度发生。这影响了消费者的认知与行为&#xff0c;迫使零售商寻找更有效的方式来吸引客户。Linx 是 StoneCo 集团旗下的一家公司&#xff0c;也是零售技术专家&#xff0c;Linx了解这一点&am…

无线麦克风领夹哪个牌子好,2024年领夹麦克风品牌排行榜推荐

​随着短视频热潮的兴起&#xff0c;越来越多的人倾向于用vlog记录日常生活&#xff0c;同时借助短视频和直播平台开辟了副业。在这一过程中&#xff0c;麦克风在近两年内迅速发展&#xff0c;从最初的简单收音功能演变为拥有多样款式和功能&#xff0c;以满足视频创作的需求。…

数据脱敏学习

数据脱敏是一种保护敏感信息的方法&#xff0c;它通过修改或删除数据中的敏感部分&#xff0c;使得数据在保持一定可用性的同时&#xff0c;不再直接关联到个人隐私或重要信息。 自然人指可以直接或间接标识 直接标识&#xff1a;如姓名、身份证号码、家庭住址、电话号码、电…

生命在于折腾——Macbook虚拟机开启360核晶

首先启动PD虚拟机&#xff0c;打开360&#xff0c;发现提示如下&#xff1a; 此时将虚拟机关机。 打开该虚拟机设置&#xff1a; 将虚拟机监控程序改为Parallels&#xff0c;并启动nested虚拟化。 改好后截图如下&#xff1a; 保存设置&#xff0c;开机 此时就可以开启了…

手机恢复已删除数据,3种情况下的解决办法,史诗级教程

手机已经变成了我们生活中的“黑匣子”&#xff0c;记录着我们的通讯录、照片、视频、聊天记录等各种重要数据。然而&#xff0c;由于误删、系统崩溃或其他不可预测的情况&#xff0c;我们可能会面临数据丢失的风险。 本文将为你提供一份史诗级的教程&#xff0c;详细介绍3种不…

10种超强图像特征提取算法Python代码实现

声明&#xff1a;文章是从本人公众号中复制而来&#xff0c;因此&#xff0c;想最新最快了解各类算法的家人&#xff0c;可关注我的VX公众号&#xff1a;python算法小当家&#xff0c;不定期会有很多免费代码分享~ 图像特征提取是计算机视觉和图像处理的关键步骤&#xff0c;因…

零基础STM32单片机编程入门(四)ADC详解及实战含源码视频

文章目录 一.概要二.STM32F103C8T6单片机ADC外设特点三.STM32单片机ADC内部结构图1.ADC相关引脚说明2.ADC通道分类3.触发源4.转换周期5.电压转换计算6.更精确电压转换计算 四.规则通道ADC采集信号流向1.单次转换模式2.连续转换模式 五.CubeMX配置一个ADC采集例程六.CubeMX工程源…

Nginx反向代理实现Vue跨域注意事项

1、通过搜索引擎访问Nginx官网——免费使用——NGINX开源版(免费下载)或者通过以下链接直接访问Nginx下载页面下载对应的版本(下载页面)。以下以1.24.0为例 2、修改nginx的配置文件&#xff0c;在conf文件夹下&#xff0c;文件名为nginx.conf&#xff1b;以下是我修改完的配置…

【Python数据分析与可视化】:使用【Matplotlib】实现销售数据的全面分析 ——【Matplotlib】数模学习

目录 安装Matplotlib 1.打开PyCharm&#xff1a; 2.打开终端&#xff1a; 3.安装Matplotlib&#xff1a; 4.确认安装&#xff1a; 导入Matplotlib 创建简单的折线图 代码解析&#xff1a; 创建子图 代码解析&#xff1a; 创建柱状图 代码解析&#xff1a; 创建散点…

总结一下Linux、Windows、Ubuntu、Debian、CentOS等到底是啥?及它们的区别是什么

小朋友你总是有很多问好 你是否跟我一样&#xff0c;不是计算机科班出身&#xff0c;很多东西都是拿着在用&#xff0c;并不知道为什么&#xff0c;或者对于它们的概念也是稀里糊涂的&#xff0c;比如今天说的这个。先简单描述下&#xff0c;我先前的疑问&#xff1a; Linux是…

《昇思25天学习打卡营第9天 | 昇思MindSpore使用静态图加速》

第九天 本节了解到AI编译框架分为两种运行模式&#xff0c;分别是动态图模式以及静态图模式。MindSpore默认情况下是以动态图模式运行&#xff0c;但也支持手工切换为静态图模式。 1.动态图模式 动态图的特点是计算图的构建和计算同时发生&#xff08;Define by run&#xff09…