本系列帖子“量化小講堂”,通過(guò)實(shí)際案例教初學(xué)者使用python、pandas進(jìn)行金融數(shù)據(jù)處理,希望能對(duì)大家有幫助。
【必讀文章】:《10年400倍策略分享-附視頻逐行講解代碼》
【所有系列文章匯總】:http://xalimeijing.com/thread-3950124-1-1.html
【python量化課程】想要快速、系統(tǒng)的學(xué)習(xí)量化知識(shí),可以參與我與論壇合作開(kāi)設(shè)的課程:《python量化投資入門(mén)》,我會(huì)親自授課,隨問(wèn)隨答。參與課程還可以免費(fèi)加入我的小密圈,我每天會(huì)在圈中分享量化的所見(jiàn)所思,圈子介紹點(diǎn)擊此處。
微信:xbx_laoshi,量化交流Q群(快滿(mǎn)):438143420,有問(wèn)題歡迎交流。
文中用到的A股數(shù)據(jù)可在www.yucezhe.com下載,這里可以下載到所有股票、從上市日起的交易數(shù)據(jù)、財(cái)務(wù)數(shù)據(jù)、分鐘數(shù)據(jù)、分筆數(shù)據(jù)、逐筆數(shù)據(jù)等。
【量化小講堂 - python & pandas技巧系列】使用python計(jì)算各類(lèi)移動(dòng)平均線(xiàn)
計(jì)算移動(dòng)平均線(xiàn)是最常見(jiàn)的需求,下面這段代碼將完成以下三件事情:
1. 從csv格式的文件中導(dǎo)入股票數(shù)據(jù),數(shù)據(jù)例圖如下:
2.計(jì)算各類(lèi)移動(dòng)平均線(xiàn),包括簡(jiǎn)單簡(jiǎn)單算術(shù)移動(dòng)平均線(xiàn)MA、指數(shù)平滑移動(dòng)平均線(xiàn)EMA;
3.將計(jì)算好的數(shù)據(jù)輸出到csv文件中。
代碼應(yīng)該復(fù)制下來(lái)就能運(yùn)行了,關(guān)于從哪里可以得到代碼中使用的數(shù)據(jù),后面會(huì)講,下面貼上代碼(附件中也可以下載):
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# -*- coding: utf-8 -*-
"""
@author: yucezhe
@contact: QQ:2089973054 email:xjc@yucezhe.com
"""
import pandas as pd
# ========== 從原始csv文件中導(dǎo)入股票數(shù)據(jù),以浦發(fā)銀行sh600000為例
# 導(dǎo)入數(shù)據(jù) - 注意:這里請(qǐng)?zhí)顚?xiě)數(shù)據(jù)文件在您電腦中的路徑
stock_data = pd.read_csv('stock data/sh600000.csv', parse_dates=[1])
# 將數(shù)據(jù)按照交易日期從遠(yuǎn)到近排序
stock_data.sort('date', inplace=True)
(【python量化課程】想要快速、系統(tǒng)的學(xué)習(xí)量化知識(shí),可以參與我與論壇合作開(kāi)設(shè)的課程:《python量化投資入門(mén)》,我會(huì)親自授課,隨問(wèn)隨答。參與課程還可以免費(fèi)加入我的小密圈,我每天會(huì)在圈中分享量化的所見(jiàn)所思,圈子介紹點(diǎn)擊此處。)
# ========== 計(jì)算移動(dòng)平均線(xiàn)
# 分別計(jì)算5日、20日、60日的移動(dòng)平均線(xiàn)
ma_list = [5, 20, 60]
# 計(jì)算簡(jiǎn)單算術(shù)移動(dòng)平均線(xiàn)MA - 注意:stock_data['close']為股票每天的收盤(pán)價(jià)
for ma in ma_list:
stock_data['MA_' + str(ma)] = pd.rolling_mean(stock_data['close'], ma)
# 計(jì)算指數(shù)平滑移動(dòng)平均線(xiàn)EMA
for ma in ma_list:
stock_data['EMA_' + str(ma)] = pd.ewma(stock_data['close'], span=ma)
# 將數(shù)據(jù)按照交易日期從近到遠(yuǎn)排序
stock_data.sort('date', ascending=False, inplace=True)
# ========== 將算好的數(shù)據(jù)輸出到csv文件 - 注意:這里請(qǐng)?zhí)顚?xiě)輸出文件在您電腦中的路徑
stock_data.to_csv('sh600000_ma_ema.csv', index=False)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
代碼輸出的數(shù)據(jù)截圖如下:
可以到這里下載程序中用到的股票數(shù)據(jù):網(wǎng)址 ,其中包含了所有股票、從上市日起的全部交易數(shù)據(jù)。
之后會(huì)講的內(nèi)容:
現(xiàn)在想到的之后幾期會(huì)講的內(nèi)容:
【量化小講堂 - python & pandas技巧系列】如何在windows環(huán)境安裝python和pandas
【量化小講堂 - python & pandas技巧系列】如何在mac OSX環(huán)境安裝python和pandas
【量化小講堂 - python & pandas技巧系列】使用python計(jì)算KDJ指標(biāo)
【量化小講堂 - python & pandas技巧系列】使用python計(jì)算MACD指標(biāo)
【量化小講堂 - 投資策略系列】KDJ、MACD指標(biāo)雙金叉選股效果
【量化小講堂 - python & pandas技巧系列】使用pytho將日線(xiàn)數(shù)據(jù)轉(zhuǎn)換成周線(xiàn)、月線(xiàn)數(shù)據(jù)
關(guān)于《量化小講堂》之后想看的內(nèi)容,或者相關(guān)問(wèn)題,可以加我微信xbx_laoshi、Q群(快滿(mǎn)):438143420溝通。
本篇內(nèi)容的代碼,回復(fù)可見(jiàn)。覺(jué)得文章內(nèi)容有幫助的話(huà),頂貼是最好的鼓勵(lì)!