logo

Python量化交易02——双均线策略(移动平均线)

作者:狼烟四起2024.01.17 21:14浏览量:12

简介:在本文中,我们将深入探讨如何使用移动平均线来创建一个简单的双均线策略。我们将展示如何使用Python编写代码来计算移动平均线,并构建一个交易系统。此外,我们还将讨论如何调整均线的参数以优化策略性能。

在量化交易中,双均线策略是一种常用的技术分析方法。该策略基于两条不同周期的移动平均线,当短期均线上穿长期均线时买入,当短期均线下穿长期均线时卖出。这种方法简单易懂,适合初学者入门。
首先,我们需要安装一些Python库,包括pandas、numpy和matplotlib。这些库分别用于数据处理、数学计算和绘图。如果你还没有安装这些库,可以使用以下命令进行安装:

  1. pip install pandas numpy matplotlib

接下来,我们将使用pandas来读取股票数据。假设我们已经有了一个包含股票价格的CSV文件,其中包含日期和收盘价两列。我们可以使用以下代码读取数据:

  1. import pandas as pd
  2. # 读取CSV文件
  3. data = pd.read_csv('stock_prices.csv')
  4. # 将日期设置为索引
  5. data['date'] = pd.to_datetime(data['date'])
  6. data.set_index('date', inplace=True)

接下来,我们将计算两条移动平均线。假设我们选择的短期均线周期为5天,长期均线周期为20天。我们可以使用pandas的rolling函数来计算移动平均线:

  1. # 计算短期均线(5天)和长期均线(20天)
  2. short_mavg = data['close'].rolling(window=5).mean()
  3. long_mavg = data['close'].rolling(window=20).mean()

现在,我们可以将短期均线和长期均线绘制在同一张图上,以便比较它们的交叉点:

  1. import matplotlib.pyplot as plt
  2. # 绘制收盘价和两条均线
  3. plt.figure(figsize=(10, 5))
  4. plt.plot(data['close'], label='Close Price')
  5. plt.plot(short_mavg, label='Short MA (5)')
  6. plt.plot(long_mavg, label='Long MA (20)')
  7. plt.legend()
  8. plt.show()

在这个图中,当短期均线上穿长期均线时,就形成了一个买入信号。反之,当短期均线下穿长期均线时,就形成了一个卖出信号。我们可以根据这些信号来构建一个简单的交易系统:

  1. # 假设初始资金为10000元
  2. initial_capital = 10000
  3. portfolio = initial_capital * pd.Series(1, index=data.index)
  4. signals = pd.DataFrame(index=data.index)
  5. signals['short_mavg'] = short_mavg
  6. signals['long_mavg'] = long_mavg
  7. signals['signal'] = 0.0 # 初始化信号为0,表示没有交易信号
  8. # 生成交易信号(买入或卖出)
  9. signals['signal'][5:] = np.where(signals['short_mavg'][5:]
  10. > signals['long_mavg'][5:], 1.0, -1.0)
  11. signals['positions'] = signals['signal'].diff() # 计算持仓变化(买入为1,卖出为-1)
  12. signals['returns'] = data['close'].pct_change() # 计算每日收益率(百分比变化)
  13. portfolio = (portfolio * signals['positions']) + initial_capital # 根据持仓变化更新资产组合价值

相关文章推荐

发表评论