Python量化交易02——双均线策略(移动平均线)
2024.01.17 21:14浏览量:12简介:在本文中,我们将深入探讨如何使用移动平均线来创建一个简单的双均线策略。我们将展示如何使用Python编写代码来计算移动平均线,并构建一个交易系统。此外,我们还将讨论如何调整均线的参数以优化策略性能。
在量化交易中,双均线策略是一种常用的技术分析方法。该策略基于两条不同周期的移动平均线,当短期均线上穿长期均线时买入,当短期均线下穿长期均线时卖出。这种方法简单易懂,适合初学者入门。
首先,我们需要安装一些Python库,包括pandas、numpy和matplotlib。这些库分别用于数据处理、数学计算和绘图。如果你还没有安装这些库,可以使用以下命令进行安装:
pip install pandas numpy matplotlib
接下来,我们将使用pandas来读取股票数据。假设我们已经有了一个包含股票价格的CSV文件,其中包含日期和收盘价两列。我们可以使用以下代码读取数据:
import pandas as pd
# 读取CSV文件
data = pd.read_csv('stock_prices.csv')
# 将日期设置为索引
data['date'] = pd.to_datetime(data['date'])
data.set_index('date', inplace=True)
接下来,我们将计算两条移动平均线。假设我们选择的短期均线周期为5天,长期均线周期为20天。我们可以使用pandas的rolling
函数来计算移动平均线:
# 计算短期均线(5天)和长期均线(20天)
short_mavg = data['close'].rolling(window=5).mean()
long_mavg = data['close'].rolling(window=20).mean()
现在,我们可以将短期均线和长期均线绘制在同一张图上,以便比较它们的交叉点:
import matplotlib.pyplot as plt
# 绘制收盘价和两条均线
plt.figure(figsize=(10, 5))
plt.plot(data['close'], label='Close Price')
plt.plot(short_mavg, label='Short MA (5)')
plt.plot(long_mavg, label='Long MA (20)')
plt.legend()
plt.show()
在这个图中,当短期均线上穿长期均线时,就形成了一个买入信号。反之,当短期均线下穿长期均线时,就形成了一个卖出信号。我们可以根据这些信号来构建一个简单的交易系统:
# 假设初始资金为10000元
initial_capital = 10000
portfolio = initial_capital * pd.Series(1, index=data.index)
signals = pd.DataFrame(index=data.index)
signals['short_mavg'] = short_mavg
signals['long_mavg'] = long_mavg
signals['signal'] = 0.0 # 初始化信号为0,表示没有交易信号
# 生成交易信号(买入或卖出)
signals['signal'][5:] = np.where(signals['short_mavg'][5:]
> signals['long_mavg'][5:], 1.0, -1.0)
signals['positions'] = signals['signal'].diff() # 计算持仓变化(买入为1,卖出为-1)
signals['returns'] = data['close'].pct_change() # 计算每日收益率(百分比变化)
portfolio = (portfolio * signals['positions']) + initial_capital # 根据持仓变化更新资产组合价值
发表评论
登录后可评论,请前往 登录 或 注册