林逸民「python讀入csv檔案計算黃金交叉和死亡交叉」 5月 07, 2026

 import pandas as pd

import numpy as np


# 1. 讀取 CSV 檔案 (假設日期欄位為 Date,並將其設為索引)

df = pd.read_csv('stock_data.csv', parse_dates=['Date'], index_col='Date')


# 2. 設定短天期與長天期的移動平均線 (例如:短期 5日, 長期 20日)

short_window = 5

long_window = 20


# 計算均線

df['Short_MA'] = df['Close'].rolling(window=short_window).mean()

df['Long_MA'] = df['Close'].rolling(window=long_window).mean()


# 3. 標示黃金交叉與死亡交叉

# 黃金交叉:短期均線向上突破長期均線

# 死亡交叉:短期均線向下跌破長期均線

df['Signal'] = 0.0

df['Signal'][short_window:] = np.where(df['Short_MA'][short_window:] > df['Long_MA'][short_window:], 1.0, 0.0)


# 計算訊號的變化 (找出交叉點)

df['Position'] = df['Signal'].diff()


# 4. 篩選出交叉的日期

# Position == 1.0 代表黃金交叉,Position == -1.0 代表死亡交叉

golden_crosses = df[df['Position'] == 1.0]

death_crosses = df[df['Position'] == -1.0]


print("--- 黃金交叉日期 ---")

print(golden_crosses.index.strftime('%Y-%m-%d'))


print("\n--- 死亡交叉日期 ---")

print(death_crosses.index.strftime('%Y-%m-%d'))<div><br /></div>


目前台股市值前十大

使用聯發科驗證黃金交叉與死亡交叉

留言

這個網誌中的熱門文章