全股市均线策略python代码
时间: 2023-07-03 19:26:27 浏览: 107
python股票均线策略
以下是一个简单的全股市均线策略的 Python 代码示例:
```python
import pandas as pd
import numpy as np
import yfinance as yf
# 下载股票数据
symbol = 'AAPL'
start_date = '2010-01-01'
end_date = '2021-06-30'
stock_data = yf.download(symbol, start=start_date, end=end_date)
# 计算均线
stock_data['SMA_20'] = stock_data['Close'].rolling(window=20).mean()
stock_data['SMA_50'] = stock_data['Close'].rolling(window=50).mean()
# 判断买入/卖出信号
stock_data['Signal'] = np.where(stock_data['SMA_20'] > stock_data['SMA_50'], 1, 0)
stock_data['Position'] = stock_data['Signal'].diff()
# 回测策略
stock_data['Returns'] = np.log(stock_data['Close'] / stock_data['Close'].shift(1))
stock_data['StrategyReturns'] = stock_data['Returns'] * stock_data['Position'].shift(1)
stock_data['CumulativeReturns'] = stock_data['StrategyReturns'].cumsum()
stock_data['CumulativeReturns'].plot()
```
代码中,我们首先使用 yfinance 库下载了 AAPL 股票的历史数据,然后计算了 20 日和 50 日的均线。接着,我们使用 numpy 库的 where 函数来判断买入/卖出信号,当 20 日均线大于 50 日均线时,我们认为出现了买入信号,反之则认为出现了卖出信号。我们使用 diff 函数来计算这些信号的变化,并将结果保存在 Position 列中。最后,我们计算策略的收益,并绘制了收益曲线。在这个简单的策略中,我们只使用了均线来判断买入/卖出信号,可以根据实际需求进行改进和优化。
阅读全文