C/C++ MACD指標 範例

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;
}

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *