案例展示 - BFF5555 Project: Predicting Short-Term Market Movements Using Machine Learning Python代写
编辑
24
2024-09-16
案例展示 - BFF5555 Project: Predicting Short-Term Market Movements Using Machine Learning
这次我完成了BFF5555 - Capstone Project,该项目评估了学生应用机器学习概念和框架构建预测模型的能力,具体应用于金融市场的预测。该项目涉及开发一个机器学习模型,以预测市场的短期正向变动(上涨趋势),并将其视为一个二元分类问题。
项目背景与目标:
该项目的目标是使用OHLCV(Open, High, Low, Close, Volume)数据构建特征,应用机器学习模型预测市场的短期收益。学生被要求完成以下关键任务:
- 选择一个股票或ETF作为预测目标。
- 开发一个机器学习模型来预测每日或每周的市场上涨趋势(0-下跌,1-上涨)。
- 应用特征工程、算法选择、超参数调优等技术,最后通过交叉验证选择最终的模型。
- 用相关的金融指标如年化收益和夏普比率对模型进行评估,并与买入并持有策略进行对比。
主要实现步骤:
- 我选择了Apple (AAPL)作为预测对象,并从Yahoo Finance获取了过去5年的每日OHLCV数据。
- 应用了特征工程技术,构建了多个技术指标,包括开盘价与收盘价差(O-C)、最高价与最低价差(H-L)、过去收益率(Lagged Returns)、**移动平均线(Moving Average)**等。
- 使用了
pandas-ta
库生成技术指标,并对数据进行标准化处理。 - 通过计算特征重要性排名,例如使用随机森林、LASSO正则化等方法筛选了重要特征。
- 我选择了前20个最具代表性的特征作为模型输入,包括多种价格区间、过去收益率、技术指标等。
- 使用了该课程中涵盖的多个模型,包括逻辑回归、支持向量机(SVM)、随机森林、XGBoost等。
- 我进行了超参数调优(例如使用GridSearchCV进行交叉验证),最终选择了性能最优的随机森林模型。
- 训练集与测试集的划分比例为80%:20%。
- 对每日收益率进行了标签定义,将小于0.25%的正收益标记为负类。
- 使用了准确率(Accuracy)、**混淆矩阵(Confusion Matrix)**等指标对模型进行了评估。
- 为了验证模型的有效性,进行了回测分析,计算了模型策略与“买入并持有策略”的年化收益率及夏普比率。
- 结果显示,基于预测模型的策略在年化收益率和夏普比率上都优于基准策略,说明该模型具有一定的预测能力。
- 我撰写了详细的PDF报告,包含了模型的选择、特征的构建、结果的分析和未来的改进建议。
- 在Jupyter Notebook中展示了所有代码,包括数据预处理、特征选择、模型训练、预测与回测等,所有结果均可复现。
成果展示:
- 编程语言:Python
- 使用库:
pandas
,numpy
,scikit-learn
,pandas-ta
,matplotlib
- 文件格式:PDF报告、Jupyter Notebook代码、CSV数据文件
- 项目结果:
- 通过回测,模型策略的年化收益率为8.5%,夏普比率为1.2,显著优于“买入并持有策略”的年化收益率6.3%和夏普比率0.9。
- 模型准确率为86%,具备一定的预测能力。
联系我们
WeChat:pythonyt001
Email: [email protected]
- 0
-
分享