根据 >100 只股票创建前 10 名指数基金

数据挖掘 Python 熊猫
2022-02-16 02:53:49

数据

我有一个包含 ca M=160 csv 文件的 zip,每只股票一个 csv 文件。股票代码在文件名中。每个 csv 文件包含相同的列:date、txVolume(USD)、txCount、marketcap(USD)、price(USD)、exchangeVolume(USD)日期频率为每日。

有些股票在 2014 年开始交易,有些在 2017 年开始交易,因此所有股票的日期栏长度并不相同。

目标

我想看看指数基金会如何发展。该基金的策略是在每个月的第一天购买 10 只最大的股票(基于市值)。如果股票在前 10 名出现“转变”,就会发生再平衡。

我想使用python。

初次尝试

pandas globnumpy.

我解决这个问题的草图如下

  • glob使用包导入所有文件
  • 创建一个矩阵:市值价格它们有T行和M列,其中 M 是股票的 nr,T 是最长系列的长度(大约 4 年)。
  • 使用 pandas.resample('M')从每日数据变为每月数据。
  • (理想情况下,上面矩阵中的列会有名称,因此使用 pandas 很好,因为我可以设置它df.columns = list_of_names
  • 根据价格矩阵创建收益矩阵,根据市值矩阵创建权重矩阵。
  • 返回索引 = 对角线(返回矩阵 * 权重矩阵转置)

但我是一个非常缺乏经验的程序员,所以这种方法可能很愚蠢。我想看看是否有更好的方法来解决我遇到的问题。

0个回答
没有发现任何回复~