其实双均线策略的核心是周期匹配品种特性(比如螺纹钢适合10和60分钟线,豆粕试试5和30分钟),再加上严格的止损止盈(比如固定30点止损、20点移动止盈),还要把交易成本(手续费+滑点)算进回测,这样结果才靠谱。
下面分享两个常用版本的源码:
### 1. 文华财经T8(麦语言)
```plaintext
//双均线突破策略(文华麦语言)
MA5:MA(C,5);
MA20:MA(C,20);
COND_LONG:CROSS(MA5,MA20); //短均线上穿长均线做多
COND_SHORT:CROSS(MA20,MA5); //短均线下穿长均线做空
//止损止盈设置(固定30点止损,20点止盈)
LOSS:ENTERPRICE-30*MINPRICE;
PROFIT:ENTERPRICE+20*MINPRICE;
//交易执行
IF COND_LONG THEN BEGIN
BUY(1,1,THISCLOSE);
SETSTOPLOSS(LOSS);
SETPROFITTARGET(PROFIT);
END
IF COND_SHORT THEN BEGIN
SELLSHORT(1,1,THISCLOSE);
SETSTOPLOSS(LOSS);
SETPROFITTARGET(PROFIT);
END
```
### 2. VNPY框架(Python)
```python
from vnpy.app.cta_strategy import CtaTemplate
from vnpy.trader.object import BarData
from vnpy.trader.constant import Direction, Offset
import numpy as np
class DoubleMAStrategy(CtaTemplate):
author = "量化刘老师"
ma_fast = 5
ma_slow = 20
stop_loss = 30 # 止损点数
take_profit = 20 # 止盈点数
def __init__(self, engine, name, symbol, setting):
super().__init__(engine, name, symbol, setting)
self.fast_list = []
self.slow_list = []
def on_bar(self, bar: BarData):
self.fast_list.append(bar.close_price)
self.slow_list.append(bar.close_price)
# 保持均线窗口长度
if len(self.fast_list) > self.ma_fast: self.fast_list.pop(0)
if len(self.slow_list) > self.ma_slow: self.slow_list.pop(0)
if len(self.fast_list) < self.ma_fast or len(self.slow_list) < self.ma_slow: return
fast_val = np.mean(self.fast_list)
slow_val = np.mean(self.slow_list)
# 做多信号
if fast_val > slow_val and not self.pos:
self.buy(bar.close_price, 1)
self.set_stop_loss(bar.close_price - self.stop_loss*bar.price_tick)
self.set_take_profit(bar.close_price + self.take_profit*bar.price_tick)
# 做空信号
elif fast_val < slow_val and not self.pos:
self.short(bar.close_price,1)
self.set_stop_loss(bar.close_price + self.stop_loss*bar.price_tick)
self.set_take_profit(bar.close_price - self.take_profit*bar.price_tick)
# 平仓信号
elif fast_val < slow_val and self.pos>0: self.sell(bar.close_price, abs(self.pos), Offset.CLOSE)
elif fast_val > slow_val and self.pos<0: self.cover(bar.close_price, abs(self.pos), Offset.CLOSE)
self.put_event()
```
最后说点实在的,为了让更多新手少花冤枉钱,我这边花心思整理了一套量化交易新手福利资料:多套经典策略源码(包括优化版双均线、趋势跟踪等)、量化保姆级教程。这些都是我自己做量化多年总结的精华,帮你少走弯路。需要的话,通过微信咨询量化刘老师,直接申请获取高级量化入门资料和十余款个人私享级策略~
发布于2026-3-3 09:36 北京



分享
注册
1分钟入驻>

+微信
秒答
电话咨询
18270025212 

