您好, 下面是一个简单的趋势追踪量化策略的Python代码示例,使用了`pandas`和`numpy`库来处理数据,并使用`matplotlib`库进行可视化。这个策略基于简单的移动平均线(SMA)来确定买入和卖出信号。
示例策略:简单移动平均线交叉策略
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 读取历史数据
data = pd.read_csv('futures_data.csv') # 请替换为您的数据文件路径
data['Date'] = pd.to_datetime(data['Date'])
data.set_index('Date', inplace=True)
# 计算短期和长期移动平均线
short_window = 20 # 短期窗口
long_window = 50 # 长期窗口
data['SMA_Short'] = data['Close'].rolling(window=short_window, min_periods=1).mean()
data['SMA_Long'] = data['Close'].rolling(window=long_window, min_periods=1).mean()
# 生成信号
data['Signal'] = 0
data['Signal'][short_window:] = np.where(data['SMA_Short'][short_window:] > data['SMA_Long'][short_window:], 1, 0)
data['Position'] = data['Signal'].diff()
# 可视化
plt.figure(figsize=(14, 7))
plt.plot(data['Close'], label='Close Price', alpha=0.5)
plt.plot(data['SMA_Short'], label='Short SMA', alpha=0.75)
plt.plot(data['SMA_Long'], label='Long SMA', alpha=0.75)
# 绘制买入信号
plt.plot(data[data['Position'] == 1].index,
data['SMA_Short'][data['Position'] == 1],
'^', markersize=10, color='g', lw=0, label='Buy Signal')
# 绘制卖出信号
plt.plot(data[data['Position'] == -1].index,
data['SMA_Short'][data['Position'] == -1],
'v', markersize=10, color='r', lw=0, label='Sell Signal')
plt.title('Trend Following Strategy with SMA')
plt.xlabel('Date')
plt.ylabel('Price')
plt.legend()
plt.grid()
plt.show()
```
希望这些代码和解释能帮助你实现趋势追踪量化策略的全自动化。如果有任何具体问题,欢迎继续提问。
要想入门量化交易不踩坑,或者觉得量化做起来有点复杂,不知道从哪儿开始,可以直接加我微信或电话交流学习,让你低成本免费实现量化,还有现成的量化策略模型,免编程,直接用,一对一帮你快速上手!
发布于2024-11-14 17:00 上海


分享
注册
1分钟入驻>
+微信
秒答
18342365994
搜索更多类似问题 >
电话咨询


