用Python取得「臺灣50指數」歷史資料

更新於 發佈於 閱讀時間約 6 分鐘

到證交所網站的臺灣50指數歷史資料(https://www.twse.com.tw/en/indices/ftse/tai50i.html)抓取,裡面有「臺灣50指數」和「臺灣50報酬指數」兩種指數,Python程式碼如下:

import requests
import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime
from time import sleep
from dateutil.relativedelta import relativedelta

def get_month_index_TAI50I(date: str):
# from "https://www.twse.com.tw/en/indices/ftse/tai50i.html"
url = "https://www.twse.com.tw/rwd/en/FTSE/TAI50I?date={}&response=json".format(date.replace("-", ""))

response = requests.get(url)
df = pd.DataFrame(response.json()['data'], columns=['Date', 'FTSE TWSE Taiwan 50 Index','FTSE TWSE Taiwan 50 Total Return Index'])
df['FTSE TWSE Taiwan 50 Total Return Index'] = pd.to_numeric(df['FTSE TWSE Taiwan 50 Total Return Index'].str.replace(',', ''))
df['FTSE TWSE Taiwan 50 Index'] = pd.to_numeric(df['FTSE TWSE Taiwan 50 Index'].str.replace(',', ''))
df['Date'] = pd.to_datetime(df['Date'])
# Set 'Date' as the index
df.set_index('Date', inplace=True)
return df

# 起始年
start_year = 2014
# 起始月
start_month = 11
query_date = datetime(start_year, start_month, 1).date()
today = datetime.now().date()

df = pd.DataFrame(columns=['Date', 'FTSE TWSE Taiwan 50 Index','FTSE TWSE Taiwan 50 Total Return Index'])
df = df.dropna(axis=1, how='all')

while today >= query_date:
date_str = f'{query_date.year}-{query_date.month:02d}-01'
#print("抓取資料:" + date_str)
new = get_month_index_TAI50I(date_str)
df = pd.concat([df,new], axis=0, sort=False)
query_date = query_date + relativedelta(months=1)
sleep(1) # 避免被擋

# 繪製兩個指數在一個圖中
plt.figure(figsize=(10, 6))
plt.plot(df.index, df['FTSE TWSE Taiwan 50 Index'], label='FTSE TWSE Taiwan 50 Index')
plt.plot(df.index, df['FTSE TWSE Taiwan 50 Total Return Index'], label='FTSE TWSE Taiwan 50 Total Return Index')
plt.xlabel('Date')
plt.ylabel('Index Value')
plt.title('FTSE TWSE Taiwan 50 Index vs Total Return Index')
plt.legend()
plt.grid(True)
plt.show()


raw-image


用ffn Package分析「臺灣50指數」和「臺灣50報酬指數」兩種指數績效

import ffn

perf = df['FTSE TWSE Taiwan 50 Index'].calc_stats()
print(perf.display())

perf = df['FTSE TWSE Taiwan 50 Total Return Index'].calc_stats()
print(perf.display())

「臺灣50指數」績效:

raw-image

10年指數成長了189%,最大回檔約-36%。


「臺灣50報酬指數」績效:

raw-image

10年指數成長了316%,最大回檔約-33%。

留言
avatar-img
留言分享你的想法!
avatar-img
Leo的沙龍
1會員
5內容數
Leo的沙龍的其他內容
2024/11/24
最近看大盤績效這麼好,又看到有人討論有小孩的人每個月會花多少錢,突然在思考如果把養小孩的錢換成投資大盤,那績效哪個好呢? 以下純粹以投資人的角度去理性計算,不考慮生命的對國家和家庭的價值,希望不要對我有道德批判。 假設養育一個人到大學畢業由0歲到22歲需要花費500萬,對比於投資大盤的話,相當於
2024/11/24
最近看大盤績效這麼好,又看到有人討論有小孩的人每個月會花多少錢,突然在思考如果把養小孩的錢換成投資大盤,那績效哪個好呢? 以下純粹以投資人的角度去理性計算,不考慮生命的對國家和家庭的價值,希望不要對我有道德批判。 假設養育一個人到大學畢業由0歲到22歲需要花費500萬,對比於投資大盤的話,相當於
2024/11/12
近來看到有位教授出書推廣市值型ETF,但他不推薦槓桿ETF。他說根據"Leveraged ETFs: A risky double that doesn't multiply by two"這篇論文的模擬結果,雖然兩倍槓桿承受了兩倍風險,但是獲利卻只有1.5倍,所以不推薦買槓桿ETF。 讓我有
Thumbnail
2024/11/12
近來看到有位教授出書推廣市值型ETF,但他不推薦槓桿ETF。他說根據"Leveraged ETFs: A risky double that doesn't multiply by two"這篇論文的模擬結果,雖然兩倍槓桿承受了兩倍風險,但是獲利卻只有1.5倍,所以不推薦買槓桿ETF。 讓我有
Thumbnail
2024/11/11
先用yfinance抓取0050由2014-11-01到2024-11-01的股價,程式碼如下: import pandas as pd import yfinance as yf import matplotlib.pyplot as plt df_0050 = yf.download("005
Thumbnail
2024/11/11
先用yfinance抓取0050由2014-11-01到2024-11-01的股價,程式碼如下: import pandas as pd import yfinance as yf import matplotlib.pyplot as plt df_0050 = yf.download("005
Thumbnail
看更多
你可能也想看
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
沙龍一直是創作與交流的重要空間,這次 vocus 全面改版了沙龍介面,就是為了讓好內容被好好看見! 你可以自由編排你的沙龍首頁版位,新版手機介面也讓每位訪客都能更快找到感興趣的內容、成為你的支持者。 改版完成後可以在社群媒體分享新版面,並標記 @vocus.official⁠ ♥️ ⁠
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
  接上一篇,看來花花綠綠的東西跟我們是無望了。對原本接下來的計畫也只好做一些改變。所以衹能把我們的程式碼,重新移動到了7月7號那篇文章的進度NBLOG_20230707使用TA_LIB(PANDAS_TA) 打造一個交易策略實用工具(2TA_LIB輕探之馬克快來。
Thumbnail
  接上一篇,看來花花綠綠的東西跟我們是無望了。對原本接下來的計畫也只好做一些改變。所以衹能把我們的程式碼,重新移動到了7月7號那篇文章的進度NBLOG_20230707使用TA_LIB(PANDAS_TA) 打造一個交易策略實用工具(2TA_LIB輕探之馬克快來。
Thumbnail
在交易千萬別見樹不見林 中示範如何在同一張圖表上加入不同週期的行情走勢,本篇將對MultiCharts初體驗-函式撰寫、MultiCharts初體驗-訊號撰寫 的程式進行改寫,讓程式可以讀取到多週期的K線資料。 在MC中可以用Data1、Data2、⋯⋯、Data99的指定方式,來存取圖表中的數列
Thumbnail
在交易千萬別見樹不見林 中示範如何在同一張圖表上加入不同週期的行情走勢,本篇將對MultiCharts初體驗-函式撰寫、MultiCharts初體驗-訊號撰寫 的程式進行改寫,讓程式可以讀取到多週期的K線資料。 在MC中可以用Data1、Data2、⋯⋯、Data99的指定方式,來存取圖表中的數列
Thumbnail
在上一篇文章中,我們學會了如何繪製最新的分鐘圖,讓我們了解最新一日的個股股價變化,不過有時分鐘圖太過細小,並無法了解到個股整體的趨勢狀況,這時我們就必須要使用到日線圖,因此,今天我們就來學習如何繪製日線圖吧!!
Thumbnail
在上一篇文章中,我們學會了如何繪製最新的分鐘圖,讓我們了解最新一日的個股股價變化,不過有時分鐘圖太過細小,並無法了解到個股整體的趨勢狀況,這時我們就必須要使用到日線圖,因此,今天我們就來學習如何繪製日線圖吧!!
Thumbnail
股價是股票匯集各式因素所組成的視覺圖,因此今天我們就來學學如何畫製個股的最新分鐘圖,讓你能夠一鍵輕鬆看到當日最新股價走勢圖,我們就開始來教學吧!!
Thumbnail
股價是股票匯集各式因素所組成的視覺圖,因此今天我們就來學學如何畫製個股的最新分鐘圖,讓你能夠一鍵輕鬆看到當日最新股價走勢圖,我們就開始來教學吧!!
Thumbnail
使用pandas,透過TWStock_2的資料,計算 6 日與12日RSI 值並繪製成圖。 首先先連接到TWStock_2資料庫將資料load出來。 這次load的資料一樣是2330台積電,然後我們一樣只取收盤價,修改日期格式。 之後要算出每日的U與D值(絕對漲跌),條件如下ㄑ 輸出會如下圖
Thumbnail
使用pandas,透過TWStock_2的資料,計算 6 日與12日RSI 值並繪製成圖。 首先先連接到TWStock_2資料庫將資料load出來。 這次load的資料一樣是2330台積電,然後我們一樣只取收盤價,修改日期格式。 之後要算出每日的U與D值(絕對漲跌),條件如下ㄑ 輸出會如下圖
Thumbnail
使用pandas,透過TWStock_2的資料,計算下列三種常用的技術指標 1. 移動平均線 2. 指數移動平均線 3. MACD 首先連接資料庫,然後我們只取"成交股數 , 開盤價 , 最高價 , 最低價 , 收盤價" 這5個columns代入新的tsmc( 名稱 ) code如下 參考連結如下
Thumbnail
使用pandas,透過TWStock_2的資料,計算下列三種常用的技術指標 1. 移動平均線 2. 指數移動平均線 3. MACD 首先連接資料庫,然後我們只取"成交股數 , 開盤價 , 最高價 , 最低價 , 收盤價" 這5個columns代入新的tsmc( 名稱 ) code如下 參考連結如下
Thumbnail
CSV全名為Comma-Separated Values,中文稱為逗號分隔值,也可稱為字元分隔值,因為分隔字元也可以不是逗號。它以純文字的形式儲存表格資料,同一列的資料以逗號或其它符號分隔成不同欄位,每一列的資料間以換行符號分隔。網路上很多資料的格式都是以CSV檔案呈現,例如交通部中央氣象局的觀測資
Thumbnail
CSV全名為Comma-Separated Values,中文稱為逗號分隔值,也可稱為字元分隔值,因為分隔字元也可以不是逗號。它以純文字的形式儲存表格資料,同一列的資料以逗號或其它符號分隔成不同欄位,每一列的資料間以換行符號分隔。網路上很多資料的格式都是以CSV檔案呈現,例如交通部中央氣象局的觀測資
Thumbnail
在昨天的教學中,我們學會了如何快速查詢股票的歷史資料,但光呈現歷史資料還不夠意思,今天我們就來學習如何利用python畫出我們常見的蠟燭k線圖以及技術指標,讓整個視覺化更加美麗吧!!
Thumbnail
在昨天的教學中,我們學會了如何快速查詢股票的歷史資料,但光呈現歷史資料還不夠意思,今天我們就來學習如何利用python畫出我們常見的蠟燭k線圖以及技術指標,讓整個視覺化更加美麗吧!!
Thumbnail
在昨天的教學中,我們學會了如何抓取單一股票在yahoo finance上最新一年的資料了,不過這樣一檔一檔慢慢抓實在是不符合我們程式教學的style,所以今天我就來教大家如何輕鬆輸入變數,便能抓取想要的股票以及區間,就讓我們來開始今天的教學吧!!
Thumbnail
在昨天的教學中,我們學會了如何抓取單一股票在yahoo finance上最新一年的資料了,不過這樣一檔一檔慢慢抓實在是不符合我們程式教學的style,所以今天我就來教大家如何輕鬆輸入變數,便能抓取想要的股票以及區間,就讓我們來開始今天的教學吧!!
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News