C/C++ MACD指標 範例
C/C++ MACD指標 範例
資料來源: Bard for Chrome
Code
#include <stdio.h> #include <math.h> // 計算 12 日指數移動平均線 double EMA12(double close_p[], int n) { double ema12 = 0.0; double w = 2 / (12 + 1); for (int i = 0; i < n; i++) { ema12 = ema12 * (1 - w) + close_p[i] * w; } return ema12; } // 計算 26 日指數移動平均線 double EMA26(double close_p[], int n) { double ema26 = 0.0; double w = 2 / (26 + 1); for (int i = 0; i < n; i++) { ema26 = ema26 * (1 - w) + close_p[i] * w; } return ema26; } // 計算 MACD 指標 double MACD(double ema12, double ema26) { return ema12 - ema26; } // 計算 MACD 柱狀圖 double MACDBar(double macd) { return 2 * macd; } // 主程式 int main() { // 定義收盤價資料 double close_p[] = {100, 102, 104, 106, 108, 110, 112, 114, 116, 118}; int n = sizeof(close_p) / sizeof(close_p[0]); // 計算 MACD 指標 double ema12 = EMA12(close_p, n); double ema26 = EMA26(close_p, n); double macd = MACD(ema12, ema26); double macd_bar = MACDBar(macd); // 輸出結果 printf("EMA12: %.2f\n", ema12); printf("EMA26: %.2f\n", ema26); printf("MACD: %.2f\n", macd); printf("MACDBar: %.2f\n", macd_bar); return 0; }