用Java代码实现股票的macd计算
时间: 2023-09-28 17:09:56 浏览: 67
以下是Java代码实现股票的MACD计算的示例:
```java
public class MACD {
private double[] closePrice; // 收盘价序列
private int shortPeriod = 12; // 短期EMA计算周期
private int longPeriod = 26; // 长期EMA计算周期
private int signalPeriod = 9; // DEA计算周期
private double[] emaShort; // 短期EMA序列
private double[] emaLong; // 长期EMA序列
private double[] diff; // 差离值序列
private double[] dea; // DEA序列
private double[] macd; // MACD序列
public MACD(double[] closePrice) {
this.closePrice = closePrice;
this.emaShort = new double[closePrice.length];
this.emaLong = new double[closePrice.length];
this.diff = new double[closePrice.length];
this.dea = new double[closePrice.length];
this.macd = new double[closePrice.length];
}
public void calculate() {
// 计算短期EMA
double emaShortYesterday = 0;
for (int i = 0; i < closePrice.length; i++) {
if (i == 0) {
emaShort[i] = closePrice[i];
} else {
emaShort[i] = (2.0 * closePrice[i] + (shortPeriod - 1) * emaShortYesterday) / (shortPeriod + 1);
}
emaShortYesterday = emaShort[i];
}
// 计算长期EMA
double emaLongYesterday = 0;
for (int i = 0; i < closePrice.length; i++) {
if (i == 0) {
emaLong[i] = closePrice[i];
} else {
emaLong[i] = (2.0 * closePrice[i] + (longPeriod - 1) * emaLongYesterday) / (longPeriod + 1);
}
emaLongYesterday = emaLong[i];
}
// 计算差离值
for (int i = 0; i < closePrice.length; i++) {
diff[i] = emaShort[i] - emaLong[i];
}
// 计算DEA
double deaYesterday = 0;
for (int i = 0; i < closePrice.length; i++) {
if (i == 0) {
dea[i] = diff[i];
} else {
dea[i] = (2.0 * diff[i] + (signalPeriod - 1) * deaYesterday) / (signalPeriod + 1);
}
deaYesterday = dea[i];
}
// 计算MACD
for (int i = 0; i < closePrice.length; i++) {
macd[i] = 2.0 * (diff[i] - dea[i]);
}
}
public double[] getMACD() {
return macd;
}
}
```
该类中的`calculate()`方法可以计算出收盘价序列的MACD值,`getMACD()`方法可以获取计算得到的MACD序列。通过实例化该类并调用`calculate()`和`getMACD()`方法即可计算出MACD值。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)