用python写一个双均线策略
时间: 2023-10-01 14:07:52 浏览: 116
4、Python量化交易-双均线策略笔记
以下是一个简单的双均线策略的Python代码:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 获取数据
df = pd.read_csv('data.csv', parse_dates=['Date'], index_col='Date')
# 计算短期均线和长期均线
short_ma = df['Close'].rolling(window=5).mean()
long_ma = df['Close'].rolling(window=20).mean()
# 计算交易信号
signals = pd.DataFrame(0, index=df.index, columns=['signal'])
signals['signal'][short_ma > long_ma] = 1
signals['position'] = signals['signal'].diff()
# 绘制图表
fig = plt.figure(figsize=(10, 6))
ax1 = fig.add_subplot(111, ylabel='Price')
df['Close'].plot(ax=ax1, color='r', lw=2.)
short_ma.plot(ax=ax1, color='b', lw=2.)
long_ma.plot(ax=ax1, color='g', lw=2.)
ax1.plot(signals.loc[signals.position == 1].index,
df['Close'][signals.position == 1],
'^', markersize=10, color='m')
ax1.plot(signals.loc[signals.position == -1].index,
df['Close'][signals.position == -1],
'v', markersize=10, color='k')
plt.legend(['Price', 'Short MA', 'Long MA', 'Buy', 'Sell'])
plt.show()
```
该代码使用了pandas和numpy库,需要先安装这两个库。
代码中使用了一个名为data.csv的数据文件,该文件包含了股票价格数据,在读取数据时需要将日期作为索引列。
在代码中,首先计算了短期均线和长期均线,然后根据短期均线和长期均线的交叉情况,计算了交易信号。当短期均线上穿长期均线时,产生了买入信号;当短期均线下穿长期均线时,产生了卖出信号。
最后,使用matplotlib库绘制了股票价格和均线图表,并在图表上标记了买卖信号。
阅读全文