[專題實作]以Yfinance之臺股資料進行市場寬度指標驗證-Step3.將數值處理並產出市場寬度資料
拖了很久最近台股又再大跌才想到要補一下這段,現在有ChatGPT很方便,程式碼餵給他,幫我分段說明就行了,如果有想到什麼缺的再另外補哈。
匯入模組
python
import pandas as pd
首先,匯入 pandas 模組,用於資料處理。
從檔案匯入歷史股價並計算市場寬度
python
path1 = r"D:\市場寬度 專題\2020-2024個股股價df.csv"
close = pd.read_csv(path1)
print(close)
print(close.shape[0], close.shape[1])
close.set_index('Date', inplace=True)
stock_totall_Count = (close.shape[1])
print(close)
這段程式碼從指定路徑讀取歷史股價資料,並設定 'Date' 欄為索引。close.shape
用於查看資料的列數和欄數。
計算移動平均線
python
'個股20日均線'
ma20 = close.rolling(20, min_periods=20).mean()
'個股200日均線'
ma200 = close.rolling(200, min_periods=200).mean()
這裡計算了20日和200日的移動平均線(MA),分別用於短期和長期的市場趨勢分析。
計算市場寬度
python
'市場寬度:大於20日均線家數百分比'
close_B20 = (close > ma20)
close_C20 = close_B20.sum(axis=1) / (stock_totall_Count - close.isna().sum(axis=1))
'市場寬度:大於200日均線家數百分比'
close_B200 = (close > ma200)
close_C200 = close_B200.sum(axis=1) / (stock_totall_Count - close.isna().sum(axis=1))
這段程式碼計算了大於20日和200日均線的股票數量佔總股票數量的比例,這些比例用於衡量市場寬度。
合併結果並儲存
python
result = pd.merge(pd.DataFrame(close_C20), pd.DataFrame(close_C200), on='Date')
result.columns = ['市場寬度>20MA百分比', '市場寬度>200MA百分比']
print('result')
print(result)
print('==============================================')
path3 = r'D:\市場寬度 專題\2020-2024市場寬度20-200(無大盤)_raw.csv'
result.to_csv(path3, sep=',', na_rep='', float_format='%.4f', encoding='utf_8_sig')
print(result.info())
print('==============================================')
將計算出的市場寬度指標合併為一個 DataFrame,設定欄位名稱後,保存為 CSV 檔案。
合併大盤指數並儲存最終結果
python
path2 = r'D:\市場寬度 專題\2020-2024 大盤指數 _raw.csv'
TWII = pd.read_csv(path2)
TWII.set_index('Date', inplace=True)
print(TWII.info())
print('==============================================')
combine1 = pd.merge(result, pd.DataFrame(TWII), on='Date')
combine1 = combine1[250:]
print('combine1')
print(combine1)
print('==============================================')
path4 = r'D:\市場寬度 專題\2020-2024市場寬度與大盤指數.csv'
combine1.to_csv(path4, sep=',', na_rep='', float_format='%.4f', encoding='utf_8_sig')
這段程式碼讀取大盤指數資料,並與之前計算的市場寬度指標合併。為了移除前段資料不足的影響,刪除前250天的資料,然後將最終結果保存為 CSV 檔案。
總結
這段程式碼自動化了市場寬度指標的計算過程,並將其與大盤指數合併,最終生成一個包含市場寬度和大盤指數的完整資料集,方便後續的分析和應用。這樣的自動化流程能夠大幅提高資料處理的效率,並提供更準確的市場趨勢分析依據。
留言
張貼留言