第二篇机器学习投资组合——数据清洗

作者:chen_h
微信号 & QQ:862251340
微信公众号:coderpai


第二篇机器学习投资组合——数据清洗

这个系列文章用于跟踪在创建由机器学习驱动的投资组合过程中的进展,一共分为四篇:

第一篇(简介)

第二篇(数据收集清洗)

第三篇(特征选择)

第四篇(模型测试)

在进行数据分析之前,数据清洗工作就像是我们平时的刷牙,你不必为了生存而去认真的做这一件事,但是如果你认真对待这件事一定是明智之举。

数据源

我们从彭博终端获得了 26 只股票和固定收益 ETF 的定价数据(股息调整后)。在构建我们包含 4 个投资组合时,我们不会使用所有这些 ETF ,但是对于这个初始数进行提炼,建议一个广泛的网络并没有坏处。我们的数据从 2014 年 3 月 30 日到 2017 年 12 月 24 日。接下来,我们来看看我们需要处理的数据问题。

问题1 :剔除星期五

我们的策略每周五退出所有投资头寸(收盘价)。这使我们可以将前一周的回报收益提供给模型,这样我们就可以在下周一进入新的仓位。

这种策略是我们可以不承担任何 “周末风险” (周五收盘价与周一开盘价之间的价格变化)。我们在计算投资基准回报时采用相同的方法。

好消息是,当我们要求彭博给我们每周价格数据时,默认情况下它会在每个星期五给我们提供数据(日期和价格)。如果市场在任何特定的星期五都没有给我们数据,彭博会在周四或者周末前的最后一天向我们提供数据。这不是问题,因为我们的策略将决定我们在周末前的最后一天退出头寸。

问题 2:隔离星期一

我们的策略每周一(以开盘价)进入所有投资头寸。

这个有点难,因为我们不能只要求彭博给我们每周数据。相反,我们还需要提取每日的数据(周一至周五),然后确定周一数据。但是有些假期是星期一,当天没有交易数据。我们不得不为了这个问题手动检查 536 行,最后调整约 40 行的数据(此调整包括换掉周二日期的星期一日期,这与我们在一周的第一天开立头寸的策略一致)。此外,周二还有大约 5 个额外的确实数据实例(对于一些 ETF ),在这种情况下,我们不得不使用周三价格。

问题 3:删除错误

数据中还会存在一些错误数据,比如数据突然暴增,或者暴跌。其实这时候是股票就行了拆分或者别的原因,这时候我们就需要处理这些问题。

在这里插入图片描述

计算

随着入场价格(周一开盘价)和退出价格(周五收盘价)全部清理,我们计算了每周的投资回报率([星期五价格] / [星期一价格] - 1)。

4 个投资组合中的每一个可以由包含 26 个元素的权重向量表示(每个元素是对特定 ETF 的分配),其中向量元素的总和等于 100% 。所有向量元素必须不小于 0。

一些假设

  • 我们的投资组合受限于以下因素:(1)ETF 是否有足够的历史交易数据(约 10 年);(2)ETF 是否让我们能满足之前提到的规模和波动;
  • 我们只回溯历史的一部分,无法评估所有的市场回测;
  • 我们能够以周一开盘价进入头寸,然后我们以周五的收盘价平仓。在实践中,这不会完全发生,但是它确是一个非常好的假设。或者我们可以采用开盘五分钟的平均价格为买入价格,收盘五分钟的平均价格为卖出价格。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值