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;// 計算DIFvar dif = ema12List.Zip(ema26List, (x, y) => x - y).ToList();// 計算DEAvar dea = BasicIndicators.CalculateEMA(dif, 9).Values.ToList();// 計算MACDvar macd = dif.Zip(dea, (difValue, deaValue) => (difValue - deaValue) * 2).ToList();

如果覺得有幫助,歡迎點贊、留言、轉發或關注。謝謝各位大佬,祝大佬們早日財富自由。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/37047.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/37047.shtml
英文地址,請注明出處:http://en.pswp.cn/web/37047.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

入門PHP就來我這(純干貨)00

~~~~ 有膽量你就來跟著路老師卷起來&#xff01; -- 純干貨&#xff0c;技術知識分享 ~~~~ 老路給大家分享PHP語言的知識了&#xff0c;旨在想讓大家入門PHP&#xff0c;并深入了解PHP語言。一只用的java作為后端開發的程序員&#xff0c;最近想看下php怎么玩的&#xff0c;現…

【保姆級教程+配置源碼】在VScode配置C/C++環境

目錄 一、下載VScode 1. 在官網直接下載安裝即可 2. 安裝中文插件 二、下載C語言編譯器MinGW-W64 三、配置編譯器環境變量 1. 解壓下載的壓縮包&#xff0c;復制該文件夾下bin目錄所在地址 2. 在電腦搜索環境變量并打開 3. 點擊環境變量→選擇系統變量里的Path→點擊編…

深度學習筆記: 最詳盡解釋邏輯回歸 Logistic Regression

歡迎收藏Star我的Machine Learning Blog:https://github.com/purepisces/Wenqing-Machine_Learning_Blog。如果收藏star, 有問題可以隨時與我交流, 謝謝大家&#xff01; 邏輯回歸概述 邏輯回歸類似于線性回歸&#xff0c;但預測的是某事物是否為真&#xff0c;而不是像大小這…

K8S 集群節點縮容

環境說明&#xff1a; 主機名IP地址CPU/內存角色K8S版本Docker版本k8s231192.168.99.2312C4Gmaster1.23.1720.10.24k8s232192.168.99.2322C4Gwoker1.23.1720.10.24k8s233&#xff08;需下線&#xff09;192.168.99.2332C4Gwoker1.23.1720.10.24 1. K8S 集群節點縮容 當集群中有…

爬蟲中如何創建Beautiful Soup 類的對象

在使用 lxml 庫解析網頁數據時&#xff0c;每次都需要編寫和測試 XPath 的路徑表達式&#xff0c;顯得非常 煩瑣。為了解決這個問題&#xff0c; Python 還提供了 Beautiful Soup 庫提取 HTML 文檔或 XML 文檔的 節點。 Beautiful Soup 使用起來很便捷&#xff0c;…

計算機中的浮點數 - 為什么十進制的 0.1 在計算機中是一個無限循環小數

計算機中的浮點數 - 為什么十進制的 0.1 在計算機中是一個無限循環小數 flyfish 用 float 或 double 來存儲小數時不是精確值 浮點數在計算機中是以二進制形式存儲的&#xff0c;通常使用 IEEE 754 標準。浮點數由三個部分組成&#xff1a;符號位、指數位和尾數位。 先看一個…

【2024】LeetCode HOT 100——圖論

目錄 1. 島嶼數量1.1 C++實現1.2 Python實現1.3 時空分析2. 腐爛的橘子2.1 C++實現2.2 Python實現2.3 時空分析3. 課程表3.1 C++實現3.2 Python實現3.3 時空分析4. 實現 Trie (前綴樹)4.1 C++實現4.2 Python實現4.3 時空分析1. 島嶼數量 ?? 原題鏈接:200. 島嶼數量 經典的Fl…

鴻蒙應用開發之OpenGL的EGL

要開發OpenGL程序,那么這個程序就需要與操作系統進行交流,由于存在不同的操作系統,這樣就面臨著開發不同的程序的困難,為了解決這個問題,就引入了一個中間層的軟件庫,這個軟件庫叫做EGL。 眾所周知,Opengl是跨平臺的,那么面對各種平臺的差異性,Opengl是如何抹平而做到…

CleanMyMacX2024讓你的蘋果電腦重獲生機!

在電腦使用過程中&#xff0c;你是否遇到過這樣的問題&#xff1a;運行速度變慢、磁盤空間不足、系統出現故障……這些問題不僅影響你的工作效率&#xff0c;還會讓電腦的使用壽命大大縮短。那么&#xff0c;如何輕松解決這些問題呢&#xff1f;答案就是CleanMyMac X。 CleanM…

蘇州大廠面試題JAVA 面試集

基礎知識1、強引用、軟引用、弱引用、幻象引用有什么區別?(java基礎) 答案參考:https://time.geekbang.org/column/article/6970 2、 對比Hashtable、HashMap、TreeMap有什么不同?(數據結構) 答案參考:https://time.geekbang.org/column/article/8053 3、一個線程調用兩次…

ubuntu20.04安裝kazam桌面屏幕錄制工具

在Ubuntu 20.04上安裝Kazam可以通過以下步驟進行&#xff1a; 1.打開終端&#xff1a;可以通過按下Ctrl Alt T組合鍵來打開終端。 2.添加PPA源&#xff1a;Kazam不再在官方Ubuntu倉庫中&#xff0c;但可以通過PPA源進行安裝。在終端中輸入以下命令來添加PPA&#xff1a; su…

AI繪畫:P圖如此絲滑,OpenAI上線ChatGPT圖像編輯功能,DallE-3繪畫如此簡單

大家好我是極客菌&#xff0c;用ChatGPT的DallE-3進行AI繪畫對很多人來說是一個門檻很低的選擇&#xff0c;現在OpenAI又重磅上線了圖像編輯器功能(DallE editor)&#xff0c;可以很方便的對圖片的局部進行修改&#xff0c;而且支持中文&#xff0c;主打一個功能強大且好用&…

Jquery 獲得Form下的所有text、checkbox等表單的值

Jquery使用表單我主要是想獲得某一個表單下的所有text獲得checkbox的值: 可以這樣寫: var parameter{}; $("input[typetext]",document.forms[0]).each(function(){ alert(this.name); }); 獲得所有名為hobby的選中的checkbox的值和form2下的所有text的值 function s…

【云原生】Prometheus 使用詳解

目錄 一、前言 二、服務監控概述 2.1 什么是微服務監控 2.2 微服務監控指標 2.3 微服務監控工具 三、Prometheus概述 3.1 Prometheus是什么 3.2 Prometheus 特點 3.3 Prometheus 架構圖 3.3.1 Prometheus核心組件 3.3.2 Prometheus 工作流程 3.4 Prometheus 應用場景…

Elasticsearch 配置

Elasticsearch提供良好的默認設置&#xff0c;并且只需要很少的配置。可以使用群集更新設置API在正在運行的群集上更改大多數設置。 配置文件應包含特定于節點的設置&#xff08;如node.name和paths&#xff09;&#xff0c;或節點為了能夠加入集群而需要的設置&#xff0c;如…

webrtc-m120編譯 (m126)

WebRTC實時互動入門 環境 lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.4 LTS Release: 22.04 Codename: jammyuname -a Linux yqw-Lenovo-XiaoXinPro-13ARE-2020

Agent技術在現代軟件開發與應用中的探索

一、引言 隨著計算機科學的快速發展&#xff0c;Agent技術作為人工智能和分布式計算領域的重要分支&#xff0c;已經滲透到軟件開發的各個方面。Agent技術通過賦予軟件實體自主性和交互性&#xff0c;使得軟件系統能夠更加智能、靈活地響應環境變化和用戶需求。本文將對Agent技…

java基于ssm+jsp 個人交友網站

1前臺首頁功能模塊 個人交友網站&#xff0c;在系統首頁可以查看首頁、交友信息、線下活動、系統公告、論壇信息、我的、跳轉到后臺、客服等內容&#xff0c;如圖1所示。 圖1系統功能界面圖 用戶注冊&#xff0c;在用戶注冊頁面可以填寫用戶賬號、密碼、用戶姓名、年齡等信息進…

深入理解 Spring MVC:原理與架構解析

文章目錄 前言一、MVC二、Spring MVC三、Spring MVC 工作流程四、小結推薦閱讀 前言 Spring MVC 是一種基于 Java 的 Web 應用開發框架&#xff0c;它通過模型-視圖-控制器&#xff08;Model-View-Controller, MVC&#xff09;的設計模式來組織和管理 Web 應用程序。本文將深入…

java基于ssm+jsp 二手車交易網站

1用戶功能模塊 定金支付管理&#xff0c;在定金支付管理頁面可以填寫訂單編號、車型、品牌、分類、車身顏色、售價、訂金金額、付款日期、備注、用戶名、姓名、聯系方式、是否支付等信息&#xff0c;進行詳情、修改&#xff0c;如圖1所示。 圖1定金支付管理界面圖 預約到店管…