使用python写一段代码,需要读取十只股票的数据,算出当日个股收盘价的 5 日均值:MA5 算出当日个股收盘价到 5 日均值的偏离程度 ratio:(closePrice-MA5)/MA5 根据给出的十只股票当日的 ratio,挑出 ratio 为负的个股,第二天等权持仓,再根据每日的持仓个股和个股的收益率,计算每日的策略收
时间: 2024-02-06 08:12:24 浏览: 100
以下是一份简单的代码实现,可以根据具体的数据格式和计算需求进行修改和完善。
```python
import pandas as pd
# 读取股票数据,假设数据文件名为 stock_data.csv,其中包含十只股票的收盘价数据
df = pd.read_csv('stock_data.csv')
# 计算 MA5 和 ratio
df['MA5'] = df['closePrice'].rolling(5).mean()
df['ratio'] = (df['closePrice'] - df['MA5']) / df['MA5']
# 挑选 ratio 为负的个股
selected_stocks = df[df['ratio'] < 0]['stockCode'].tolist()
# 计算等权持仓收益率
df['strategyReturn'] = 0
for stock in selected_stocks:
df.loc[df['stockCode'] == stock, 'strategyReturn'] = 1 / len(selected_stocks) * df['pctChg']
# 计算每日的策略收益
daily_return = df.groupby('tradeDate')['strategyReturn'].sum()
```
这份代码的基本思路是,首先读取股票数据并计算 MA5 和 ratio,然后挑选出 ratio 为负的个股,并计算等权持仓收益率。最后根据每日持仓个股和个股收益率计算每日的策略收益。需要注意的是,这份代码并没有考虑交易成本和流动性等实际因素,仅作为一个简单的示例。
阅读全文