Python:股價開高收低轉換頻率Change frequence of ohlc

MinKuan
Dec 18, 2021

--

前情提要:如果還沒看過Python爬蟲:TWSE 臺灣證券交易所的每5秒大盤指數歷史數據的人,可以先看完再接著看此篇哦。不過你有5秒報價的同學U就直接開始做吧。
完整程式碼在最下方

環境設定

windows Anaconda的jupyter(6.0.3)

使用套件

import pandas as pd
import matplotlib.pyplot as plt

開始工作

步驟1:讀取已有的5秒報價

import pandas as pd
#讀取csv
df = pd.read_csv('tick.csv').drop(columns='Unnamed: 0')
df
5秒報價

步驟2:使用整理表格以及轉換ohle頻率

關鍵點在datetime欄位的格式和位置,首先要使用pd.to_datetime將型態轉為"時間型態",接著把datetime換到DataFrameindex,最後只要將5秒的報價使用.resample,並針對你要轉換的頻率即完成了。

#資料整理df = df.loc[(df[‘time’]!=”09:00:00")]# 9點非開盤價 因此去除df[‘datetime’] = pd.to_datetime(df[‘datetime’],format=’%Y-%m-%d %H:%M:%S’)#時間格式轉換df.set_index(‘datetime’,inplace = True)#將時間columns轉到indexdf = df[‘price’].resample(‘1D’).ohlc()#調整成需要的K棒頻率(1D, 1H, 1Min)df.dropna(inplace = True) #去除nan資料df

可以專注這行df[‘price’].resample(‘1D’).ohlc()裡面參數可以調整成1D1日K、1Min1分K、30Min30分K、1H1小時K。

1日K

步驟3:使用matplotlib畫圖

import matplotlib.pyplot as pltfig, ax = plt.subplots()fig.set_size_inches(15, 4)# 設定圖片大小ax.plot(df.index, df['close'])# 要繪製的x軸、y軸數據以及線的顏色ax.grid(axis='x')# 設定x軸畫直線plt.xlabel('datetime')# 設定x軸的名稱plt.ylabel('price')# 設定y軸的名稱plt.title('1 Day')# 設定圖的表頭名稱plt.savefig('1day.png')# 將圖片儲存plt.show()
1日K的收盤價線圖

完整程式碼

小結

寫完本篇除了是自己想要在學習路上作筆記外,同時也想分享給剛入坑的同學們,如果你對於以上的內容有建議歡迎提出,一起討論絕對是成長的捷徑!!

參考資料

Day-17 計算指標:從 Tick 換算分 K 與分 MA

--

--

MinKuan
MinKuan

No responses yet