您好,期货双均线策略Python代码我这里有 ,我可以为您提供一个期货双均线策略的Python代码示例。以下是一个简单的双均线策略实现,您可以根据自己的需求进行调整和优化:
```python
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from WindPy import w
# 启动Wind API
w.start()
# 获取数据
raw_data = w.wsd("002617.SZ", "close", "2019-01-01", "2020-04-03", "Fill=Previous")
if raw_data.ErrorCode == 0:
fm = pd.DataFrame(raw_data.Data, index=raw_data.Fields, columns=raw_data.Times).T
fm['LMA'] = fm.CLOSE.rolling(12, min_periods=0).mean() # 长均线
fm['SMA'] = fm.CLOSE.rolling(6, min_periods=0).mean() # 短均线
fm['position'] = 0 # 持仓状态
fm['trade'] = 0 # 交易信号
fm['time'] = raw_data.Times
# 策略逻辑
def Strategy(fm):
for i in range(12, len(fm) - 1):
if (fm.SMA[i - 1] < fm.LMA[i - 1]) & (fm.SMA[i] > fm.LMA[i]) & (fm.position[i] == 0):
fm.iloc[i, 4] = 1 # 金叉,买入
fm.iloc[i + 1, 3] = 1
elif (fm.SMA[i - 1] > fm.LMA[i - 1]) & (fm.SMA[i] < fm.LMA[i]) & (fm.position[i] == 1):
fm.iloc[i, 4] = -1 # 死叉,卖出
fm.iloc[i + 1, 3] = 0
else:
fm.iloc[i + 1, 3] = fm.iloc[i, 3]
fm['ret'] = fm.CLOSE.pct_change(1).fillna(0)
fm['nav'] = (1 + fm.ret * fm.position).cumprod()
fm['benchmark'] = fm.CLOSE / fm.CLOSE[0]
return fm
这段代码首先使用WindPy库获取股票数据,然后计算长短均线,并根据均线的交叉情况生成交易信号。最后,评估策略的性能,包括夏普比率、年化收益率和最大回撤等指标。您可以根据自己的需求调整均线周期、股票代码和时间范围等参数。希望这个示例对您有所帮助!
想不想深入了解期货量化交易、数据回测、策略优化?赶快预约我领取资料,我会帮助你提升交易策略的成功效率。还是那句话,万事开头难,这里说的只是抛砖引玉,如果你是量化小白,找个老手带你入门是很重要的,有问题就通过电话或微信联系我吧,还有现成的内部量化策略,低回撤,收益稳定,免编程,直接用!
发布于2024-11-3 21:45 上海