动量策略 python代码
时间: 2023-10-12 15:15:23 浏览: 54
以下是一个基本的动量策略的 Python 代码示例:
```python
import pandas as pd
import numpy as np
# 读取数据
data = pd.read_csv('data.csv', index_col='Date', parse_dates=True)
# 计算收益率
returns = data.pct_change()
# 定义动量指标
def momentum(data, period):
return data.pct_change(period).iloc[-1]
# 计算动量指标
lookback = 12
momentum = returns.rolling(lookback).apply(momentum, args=(lookback,))
# 定义信号函数
def signal(momentum, threshold):
if momentum > threshold:
return 1
elif momentum < -threshold:
return -1
else:
return 0
# 设置阈值
threshold = 0.1
# 计算信号
signals = np.sign(momentum).apply(signal, args=(threshold,))
# 将信号向前移动一期
signals = signals.shift(1)
# 计算策略收益率
strategy_returns = signals * returns
# 输出结果
print(strategy_returns.dropna().sum())
```
该代码假设有一个名为 `data.csv` 的文件,其中包含每日股票价格。首先,读取数据并计算每日收益率。然后,使用滚动窗口计算动量指标,并将其用作信号的基础。根据定义的阈值,计算交易信号,并将其应用于收益率数据。最后,计算策略的累积收益率并输出结果。