使用python根据已读取的十只股票的数据,算出当日个股收盘价的 5 日均值:MA5 算出当日个股收盘价到 5 日均值的偏离程度 ratio:(closePrice-MA5)/MA5 根据给出的十只股票当日的 ratio,挑出 ratio 为负的个股,第二天等权持仓
时间: 2024-02-05 14:10:38 浏览: 58
python+Pyqt5+pandas+plt实现数据处理程序(桌面级应用)
5星 · 资源好评率100%
好的,这是一个简单的股票分析程序,可以使用 pandas 和 numpy 库来实现。
首先,假设我们已经读取了十只股票的数据,并且将它们保存在一个 pandas DataFrame 中。每个 DataFrame 有两列:日期和收盘价。我们可以使用 pandas 库来计算 MA5 和 ratio。
```python
import pandas as pd
import numpy as np
# 假设 stocks 是一个包含十只股票数据的列表
ma_days = 5 # 计算 MA5 所需的天数
for stock in stocks:
# 计算 MA5
stock['MA5'] = stock['closePrice'].rolling(window=ma_days).mean()
# 计算 ratio
stock['ratio'] = (stock['closePrice'] - stock['MA5']) / stock['MA5']
```
现在,我们已经计算出了每个股票的 ratio。接下来,我们需要挑出 ratio 为负的个股,并在第二天等权持仓。我们可以使用以下代码来实现:
```python
# 挑出 ratio 为负的个股
negative_ratio_stocks = []
for stock in stocks:
if stock['ratio'].iloc[-1] < 0: # 取最后一天的 ratio
negative_ratio_stocks.append(stock)
# 第二天等权持仓
num_stocks = len(negative_ratio_stocks)
weights = np.ones(num_stocks) / num_stocks
# 输出等权持仓的股票代码和持仓比例
for i, stock in enumerate(negative_ratio_stocks):
print(stock['code'].iloc[-1], weights[i])
```
这段代码会输出等权持仓的股票代码和持仓比例。注意,这里假设每只股票的权重都相等,即等权持仓。如果你需要使用其他持仓策略,可以根据实际情况进行修改。
阅读全文