C/C++ 布林通道指標 範例

C/C++ 布林通道指標 範例

C/C++ 布林通道指標 範例


資料來源: chatGPT35 for Chrome


Code

#include <stdio.h>
#include <math.h>

// 計算布林通道指標的函數
void calculateBollingerBands(double *prices, int n, int period, double *upperBand, double *lowerBand) {
    for (int i = 0; i < n; i++) {
        if (i < period - 1) {
            // 不足一個週期的價格數據
            upperBand[i] = 0.0;
            lowerBand[i] = 0.0;
        } else {
            // 計算平均值和標準差
            double sum = 0.0;
            for (int j = i - period + 1; j <= i; j++) {
                sum += prices[j];
            }
            double mean = sum / period;
            
            sum = 0.0;
            for (int j = i - period + 1; j <= i; j++) {
                sum += pow(prices[j] - mean, 2);
            }
            double stdDev = sqrt(sum / period);

            // 計算布林通道上下限
            upperBand[i] = mean + 2 * stdDev;
            lowerBand[i] = mean - 2 * stdDev;
        }
    }
}

int main() {
    // 假設有一組價格數據
    double prices[] = {50.0, 55.0, 53.0, 60.0, 58.0, 62.0, 55.0, 48.0, 50.0, 52.0};
    int n = sizeof(prices) / sizeof(prices[0]);

    // 設定布林通道的週期
    int period = 5;

    // 創建用於存儲結果的陣列
    double upperBand[n];
    double lowerBand[n];

    // 計算布林通道指標
    calculateBollingerBands(prices, n, period, upperBand, lowerBand);

    // 輸出結果
    printf("Day\tUpper Band\tLower Band\n");
    for (int i = 0; i < n; i++) {
        printf("%d\t%f\t%f\n", i + 1, upperBand[i], lowerBand[i]);
    }

    return 0;
}

發表迴響

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