資源簡介
Fama三因子選股的python實現,是做量化投資的基本策略,

代碼片段和文件信息
#?-*-?coding:?utf-8?-*-
“““
@量化交流QQ群:?461470781
“““
import?pandas?as?pd
#?=====導入月線數據
#?注意:filepath_or_buffer參數中請填寫數據在你電腦中的路徑
stock_data?=?pd.read_csv(filepath_or_buffer=‘stock_data.csv‘?parse_dates=[u‘交易日期‘]?encoding=‘gbk‘)
#?=====計算每個股票下個月的漲幅
stock_data[u‘下個月漲跌幅‘]?=?stock_data.groupby(u‘股票代碼‘)[u‘漲跌幅‘].shift(-1)
#?=====刪除一些不滿足條件的股票數據
#?刪除在某些月份市凈率小于0的股票
stock_data?=?stock_data[stock_data[u‘市凈率‘]?>?0]
#?刪除在當月最后一個交易日停牌的股票
stock_data?=?stock_data[stock_data[u‘是否交易‘]?==?1]
#?刪除在當月最后一個交易日漲停的股票
stock_data?=?stock_data[stock_data[u‘是否漲停‘]?==?0]
#?刪除在本月交易日小于10天的股票
stock_data?=?stock_data[stock_data[u‘交易天數‘]?>?10]
#?刪除2000年之前的股票數據
stock_data?=?stock_data[stock_data[u‘交易日期‘]?>?pd.to_datetime(‘20000101‘)]
#?刪除“下個月漲跌幅“字段為空的行
stock_data.dropna(subset=[u‘下個月漲跌幅‘]?inplace=True)
#?=====選股
stock_data[u‘factor‘]?=?stock_data[u‘總市值‘]?*?stock_data[u‘市凈率‘]
stock_data?=?stock_data.sort([u‘交易日期‘?u‘factor‘])??#?排序
stock_data?=?stock_data.groupby([u‘交易日期‘]).head(10)??#?選取前十名的股票
#?=====計算每月選股收益
output?=?pd.Dataframe()
stock_data[u‘股票代碼‘]?+=?u‘?‘
stock_data_groupby?=?stock_data.groupby(u‘交易日期‘)
output[u‘買入股票‘]?=?stock_data_groupby[u‘股票代碼‘].sum()
output[u‘股票數量‘]?=?stock_data_groupby.size()
output[u‘買入股票下月平均漲幅(%)‘]?=?stock_data_groupby[u‘下個月漲跌幅‘].mean()
output[u‘下個月末的資金(初始100)‘]?=?(output[u‘買入股票下月平均漲幅(%)‘]+1.0).cumprod()?*?100.0
output.reset_index(inplace=True)
#?======輸出
output.to_csv(‘output.csv‘?index=False?encoding=‘gbk‘)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????3964135??2015-11-18?17:31??法碼三因子選股模型\The?cross‐section?of?expected?stock?returns.pdf
?????文件????????1986??2015-11-18?17:39??法碼三因子選股模型\法碼三因子選股模型.py
?????目錄???????????0??2015-11-18?17:58??法碼三因子選股模型\
?????文件???????59912??2017-08-17?14:52??法碼三因子選股模型\結果圖片.png
?????文件??????135199??2017-08-17?14:52??法碼三因子選股模型\原始數據條圖片.png
評論
共有 條評論