[專題實作]以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 檔案。

總結

這段程式碼自動化了市場寬度指標的計算過程,並將其與大盤指數合併,最終生成一個包含市場寬度和大盤指數的完整資料集,方便後續的分析和應用。這樣的自動化流程能夠大幅提高資料處理的效率,並提供更準確的市場趨勢分析依據。

留言

這個網誌中的熱門文章

[專題實作]以Yfinance之臺股資料進行市場寬度指標驗證-總結

[專題實作]以Yfinance之臺股資料進行市場寬度指標驗證-Step1爬取上市櫃公司股票與ETF代碼名單

[專題實作]以Yfinance之臺股資料進行市場寬度指標驗證-Step4.匯入檔案以產生策略