Download datasets for various multifactor asset pricing models.
Project description
getfactormodels
A command-line tool to retrieve data for multi-factor asset pricing models.
Models
- The 3-factor, 5-factor, and 6-factor models of Fama & French [1] [3] [4]
- Mark Carhart's 4-factor model [2]
- Pastor and Stambaugh's liquidity factors [5]
- Mispricing factors of Stambaugh and Yuan[6]
- The $q$-factor model of Hou, Mo, Xue and Zhang[7]
- The augmented $q^5$-factor model of Hou, Mo, Xue and Zhang[8]
- Intermediary Capital Ratio (ICR) of He, Kelly & Manela[9]
- The DHS behavioural factors of Daniel, Hirshleifer & Sun[10]
- The HML $^{DEVIL}$ factor of Asness & Frazzini[11]
- The 6-factor model of Barillas and Shanken[12]
Thanks to: Kenneth French, Robert Stambaugh, Lin Sun, Zhiguo He, AQR Capital Management (AQR.com) and Hou, Xue and Zhang (global-q.org), for their research and for the datasets they provide.
Installation
[!IMPORTANT]
getfactormodelsis pre-alpha (until version 0.1.0), don't rely on it for anything.
But a huge thanks to anyone who has tried it!
Requires:
- Python >=3.10
The easiest way to install getfactormodels is with pip:
pip install getfactormodels
Quick start
CLI
# Fama-French 3-Factor (monthly) starting Jan 2020
getfactormodels -m ff3 -f m -s 2020-01-01 -o my_factors.csv
# ICR factors (daily) data saved to Parquet
getfactormodels -m icr -f d -s 2015-01-01 -o data.parquet
# Fama-French 6-Factor (Europe) with factor dropping
getfactormodels -m ff6 -f m --region europe --drop "RF" -o europe_factors.csv
Python
get_factors
from getfactormodels import DHSFactors
model = DHSFactors(
frequency='m',
start_date='2000-01-01',
end_date='2024-12-31',
output_file='data.csv',
cache_ttl=86400
)
df = model.data
model.to_file("factors.md")
Model classes
from getfactormodels import FamaFrenchFactors, DHSFactors, BarillasShankenFactors, QFactors
# Fama-French 3-Factor
ff3 = FamaFrenchFactors(model='3', frequency='m', region='developed', start_date='2020-01-01')
ff3.end_date = '2020'
ff3.frequency = 'd'
df_ff3 = ff3.data
# Q Factors have a "classic" boolean, when true, returns the classic 4 factor model.
q = QFactors(classic=True, frequency='w').data
misp = gfm.MispricingFactors(frequency='m')
df = misp.data
A list of model classes available:
FamaFrenchFactorsCarhartFactorsQFactorsICRFactorsDHSFactorsLiquidityFactorsMispricingFactorsHMLDevilFactorsBarillasShankenFactors
Data Availability
This table shows each model's start date, available frequencies, and the latest datapoint if not current. The id column
contains the shortest identifier for each model. These should all work in python and the CLI.
id |
Factor Model | Start | D | W | M | Q | Y | End |
|---|---|---|---|---|---|---|---|---|
3 |
Fama-French 3 | 1926-07-01 | ✓ | ✓ | ✓ | ✓ | - | |
4 |
Carhart 4 | 1926-11-03 | ✓ | ✓ | ✓ | - | ||
5 |
Fama-French 5 | 1963-07-01 | ✓ | ✓ | ✓ | - | ||
6 |
Fama-French 6 | 1963-07-01 | ✓ | ✓ | ✓ | - | ||
hmld |
HML $^{DEVIL}$ | 1990-07-02 | ✓ | ✓ | - | |||
dhs |
DHS | 1972-07-03 | ✓ | ✓ | 2023-12-29 | |||
icr |
ICR | 1970-01-31 Daily: 1999-05-03 |
✓ | ✓ | ✓ | 2025-06-27 | ||
mis |
Mispricing | 1963-01-02 | ✓ | ✓ | 2016-12-30 | |||
liq |
Liquidity | 1962-08-31 | ✓ | 2024-12-31 | ||||
qq4 |
$q^5$-factors $q$-factors |
1967-01-03 | ✓ | ✓ | ✓ | $\checkmark$ | ✓ | 2022-12-30 |
bs |
Barillas-Shanken | 1967-01-03 | ✓ | ✓ | 2024-12-31 |
References
Publications:
- E. F. Fama and K. R. French, ‘Common risk factors in the returns on stocks and bonds’, Journal of Financial Economics, vol. 33, no. 1, pp. 3–56, 1993. PDF
- M. Carhart, ‘On Persistence in Mutual Fund Performance’, Journal of Finance, vol. 52, no. 1, pp. 57–82, 1997. PDF
- E. F. Fama and K. R. French, ‘A five-factor asset pricing model’, Journal of Financial Economics, vol. 116, no. 1, pp. 1–22, 2015. PDF
- E. F. Fama and K. R. French, ‘Choosing factors’, Journal of Financial Economics, vol. 128, no. 2, pp. 234–252, 2018. PDF
- L. Pastor and R. Stambaugh, ‘Liquidity Risk and Expected Stock Returns’, Journal of Political Economy, vol. 111, no. 3, pp. 642–685, 2003. PDF
- R. F. Stambaugh and Y. Yuan, ‘Mispricing Factors’, The Review of Financial Studies, vol. 30, no. 4, pp. 1270–1315, 12 2016. PDF
- K. Hou, H. Mo, C. Xue, and L. Zhang, ‘Which Factors?’, National Bureau of Economic Research, Inc, 2014. PDF
- K. Hou, H. Mo, C. Xue, and L. Zhang, ‘An Augmented q-Factor Model with Expected Growth*’, Review of Finance, vol. 25, no. 1, pp. 1–41, 02 2020. PDF
- Z. He, B. Kelly, and A. Manela, ‘Intermediary asset pricing: New evidence from many asset classes’, Journal of Financial Economics, vol. 126, no. 1, pp. 1–35, 2017. PDF
- K. Daniel, D. Hirshleifer, and L. Sun, ‘Short- and Long-Horizon Behavioral Factors’, Review of Financial Studies, vol. 33, no. 4, pp. 1673–1736, 2020. PDF
- C. Asness and A. Frazzini, ‘The Devil in HML’s Details’, The Journal of Portfolio Management, vol. 39, pp. 49–68, 2013. PDF
- F. Barillas and J. Shanken, ‘Comparing Asset Pricing Models’, Journal of Finance, vol. 73, no. 2, pp. 715–754, 2018. PDF
Data sources:
- K. French, "Data Library," Tuck School of Business at Dartmouth. Link
- R. Stambaugh, "Liquidity" and "Mispricing" factor datasets, Wharton School, University of Pennsylvania. Link
- Z. He, "Intermediary Capital Ratio and Risk Factor" dataset, zhiguohe.net. Link
- K. Hou, G. Xue, R. Zhang, "The Hou-Xue-Zhang q-factors data library," at global-q.org. Link
- AQR Capital Management's Data Sets.
- Lin Sun, DHS Behavioural factors Link
License
Known issues
- HML Devil: initial download is slow, particulary for daily data.
Todo
- Documentation
- Example notebook
- better error handling
- HML Devil: progress bar on download, smarter caching.
- this README
- metadata on model (copyright, construction, factors)
- Drop pandas
- Refactor of FF models
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file getfactormodels-0.0.11.tar.gz.
File metadata
- Download URL: getfactormodels-0.0.11.tar.gz
- Upload date:
- Size: 43.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.13.5 Linux/6.6.87.2-microsoft-standard-WSL2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a1feea3541741e7f44d7a78838cf154690eac63752dffd3f3f3bcf8d2db6bfc4
|
|
| MD5 |
5b4dd4f3b2cef7793bdffe1cac92b54e
|
|
| BLAKE2b-256 |
2a81ab5760eec1756b80ac8752897bc0a6e7e8e5dd8f19f18f820404b5eb4cfc
|
File details
Details for the file getfactormodels-0.0.11-py3-none-any.whl.
File metadata
- Download URL: getfactormodels-0.0.11-py3-none-any.whl
- Upload date:
- Size: 58.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.13.5 Linux/6.6.87.2-microsoft-standard-WSL2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
130d1006ae95d1f333ac922944dc56f69252e5ec06b369aad8559d82634f0cea
|
|
| MD5 |
62b6b0210ad132639571d7db498e1dda
|
|
| BLAKE2b-256 |
8a2d3fb116389c1a43493c40758026a45a1132412d19f7bb6b484bd458080da9
|