策略1:5分钟均线交叉策略
逻辑:用10周期EMA和20周期EMA交叉信号开平仓,日内收盘前强制平仓避免过夜风险。
简化代码示例:
```python
from vnpy.app.cta_strategy import CtaTemplate, BarData
import talib
class EmaCrossStrategy(CtaTemplate):
def __init__(self, engine, name, symbol, setting):
super().__init__(engine, name, symbol, setting)
self.ema10 = 0.0
self.ema20 = 0.0
self.last_pos = 0
def on_bar(self, bar: BarData):
if len(self.bar_buffer) <20: return
closes = [b.close for b in self.bar_buffer[-20:]]
self.ema10 = talib.EMA(closes,10)[-1]
self.ema20 = talib.EMA(closes,20)[-1]
# 金叉开多/死叉平多
if self.ema10>self.ema20 and self.last_pos==0:
self.buy(bar.close,1)
elif self.ema10
self.sell(bar.close,1)
# 14:55强制平仓
if bar.datetime.hour==14 and bar.datetime.minute>=55:
if self.last_pos!=0: self.close(bar.close)
self.last_pos = self.pos
```
策略2:ATR突破策略
逻辑:用前20根K线的ATR计算突破区间,突破上轨开多、跌破下轨开空,止损用1倍ATR。
简化代码示例:
```python
class AtrBreakStrategy(CtaTemplate):
def __init__(self, engine, name, symbol, setting):
super().__init__(engine, name, symbol, setting)
self.atr =0.0
self.upper =0.0
self.lower =0.0
self.stop_loss =0.0
self.last_pos=0
def on_bar(self, bar: BarData):
if len(self.bar_buffer)<21: return
highs = [b.high for b in self.bar_buffer[-21:-1]]
lows = [b.low for b in self.bar_buffer[-21:-1]]
closes = [b.close for b in self.bar_buffer[-21:-1]]
self.atr = talib.ATR(highs,lows,closes,20)[-1]
prev_bar = self.bar_buffer[-2]
self.upper = prev_bar.high + self.atr*0.5
self.lower = prev_bar.low - self.atr*0.5
if bar.close>self.upper and self.last_pos==0:
self.buy(bar.close,1)
self.stop_loss = bar.close - self.atr*1.0
elif bar.close
self.stop_loss = bar.close + self.atr*1.0
# 止损执行
if self.last_pos>0 and bar.close<=self.stop_loss: self.sell(bar.close,1)
elif self.last_pos<0 and bar.close>=self.stop_loss: self.cover(bar.close,1)
# 日内平仓
if bar.datetime.hour==14 and bar.datetime.minute>=55:
if self.last_pos!=0: self.close(bar.close)
self.last_pos = self.pos
```
这些框架需要根据品种(如螺纹钢、豆粕)调整参数,还要结合资金管理。如果你对策略优化、代码运行有疑问,或者想获取更多实盘验证的私享级策略,我整理了《期货量化极速入门教学》和《10套私享级策略》,可以通过点赞加我微信(咨询量化刘老师)安排,量化这行早入门早赚钱。
发布于2026-3-3 10:27 北京



分享
注册
1分钟入驻>

+微信
秒答
电话咨询
18270025212 

