多因子交易策略代码
时间: 2023-07-02 21:15:54 浏览: 62
多因子交易策略是一种利用多个因子模型进行交易决策的策略,通常包括基本面因子、技术因子、市场因子等。下面是一份 Python 代码示例,用于实现一个基于多因子模型的交易策略:
```python
# 导入所需模块
import pandas as pd
import numpy as np
import talib as ta
from sklearn.linear_model import LinearRegression
# 读入数据
data = pd.read_csv('data.csv')
# 计算因子
data['SMA10'] = ta.SMA(data['Close'], timeperiod=10)
data['SMA20'] = ta.SMA(data['Close'], timeperiod=20)
data['RSI14'] = ta.RSI(data['Close'], timeperiod=14)
data['MACD'], _, _ = ta.MACD(data['Close'], fastperiod=12, slowperiod=26, signalperiod=9)
data['BETA'] = np.nan
for i in range(20, len(data)):
x = np.arange(0, 20).reshape(-1, 1)
y = data['Close'][i - 20:i].values.reshape(-1, 1)
model = LinearRegression().fit(x, y)
data['BETA'][i] = model.coef_[0][0]
# 构建交易信号
data['Signal'] = np.nan
data['Signal'][data['SMA10'] > data['SMA20']] = 1
data['Signal'][data['RSI14'] > 70] = -1
data['Signal'][data['RSI14'] < 30] = 1
data['Signal'][data['MACD'] > 0] = 1
data['Signal'][data['MACD'] < 0] = -1
data['Signal'][data['BETA'] > 1] = 1
data['Signal'][data['BETA'] < 1] = -1
# 计算收益率
data['Return'] = data['Close'].pct_change() * data['Signal'].shift(1)
data['CumReturn'] = (1 + data['Return']).cumprod()
# 输出结果
print(data[['Date', 'Close', 'Signal', 'Return', 'CumReturn']])
```
该代码首先读入一个历史数据文件,然后计算出 SMA、RSI、MACD 和 BETA 因子,接着根据这些因子构建交易信号,最后计算出每日的收益率和累计收益率,并输出结果。需要注意的是,这只是一个简单的多因子交易策略示例,实际应用中可能需要更加复杂的模型和更多的因子。