写一个Python版本的 动量交易策略
时间: 2024-03-28 21:26:39 浏览: 18
动量交易策略是一种基于市场趋势的交易策略。它的基本思想是,如果某个资产价格在一段时间内持续上涨,那么很可能会在未来的一段时间内继续上涨,反之亦然。
Python实现动量交易策略的步骤如下:
1. 获取历史股价数据,包括时间和价格。
2. 计算每个时间段内的价格变化率。
3. 根据价格变化率,计算出动量因子。
4. 根据动量因子,决定买入或卖出股票。
5. 重复步骤1到4,直到结束。
下面是一个简单的Python代码实现:
import pandas as pd
import numpy as np
import yfinance as yf
# 获取股票价格数据
stock = "AAPL"
data = yf.download(stock, start="2015-01-01", end="2021-01-01")
# 计算价格变化率
returns = data["Adj Close"].pct_change()
# 计算动量因子
momentum = pd.Series(np.zeros(len(returns)))
for i in range(1, len(returns)):
momentum[i] = returns[i-1:i+1].mean()
# 计算信号
signal = pd.Series(np.zeros(len(returns)))
for i in range(1, len(returns)):
if momentum[i] > 0:
signal[i] = 1
elif momentum[i] < 0:
signal[i] = -1
# 计算收益
returns = returns.shift(-1)
strategy_returns = signal * returns
strategy_returns = strategy_returns.dropna()
# 计算累计收益
cumulative_returns = (1 + strategy_returns).cumprod()
# 绘制累计收益曲线
cumulative_returns.plot()