CTA 策略分享之一

笔者闲暇之余经常测试一些量化交易策略。在此分享一个,抛砖引玉哈。

通道突破类是较为常用的一种趋势跟踪策略。简单直接的通道突破就是利用最近若干根K线的最高价和最低价形成的通道突破高点做多,下破低点做空。但是这种突破追入的成功概率较低。

这里介绍的策略利用最高价/最低价的20EMA 均线形成的通道。
进场条件: 若最近两根K线有一根的收盘价大于上一根K线的EMA(H,20),而且这根的ADX 值大于前面一根K线的ADX值,则符合做多条件;

进场时机: 以收盘价加上上述的最高价EMA 减去最低价的EMA的差值的二分之一为突破价,突破时进场做多;

出场时机: 若最低价小于最低价的EMA20通道值,多单出场。

做空反过来就可以了。

以下是笔者用过的一个商业平台上的源代码,利用Power Language 的。
Inputs: AvgLen(30), ADXLen(12), EntryBar(2);
Vars: UpperMA(0), LowerMA(0), ADXValue(0), ChanSpread(0), BuySetup(False), SellSetup(False), BuyTarget(0), SellTarget(0), MROBS(0), MROSS(0);

{Variable Declarations}
UpperMA = XAverage(High, AvgLen)[1];
LowerMA = XAverage(Low, AvgLen)[1];
ADXValue = ADX(ADXLen);
ChanSpread = (UpperMA - LowerMA) / 2;

{Setup}
BuySetup = Close > UpperMA AND ADXValue > ADXValue[1];
SellSetup = Close < LowerMA AND ADXValue > ADXValue[1];

IF BuySetup Then
BuyTarget = Close + ChanSpread;
IF SellSetup Then
SellTarget = Close - ChanSpread;

MROBS = MRO(BuySetup, EntryBar, 1);
MROSS = MRO(SellSetup, EntryBar, 1);

{Entries}
IF MROBS <> -1 AND MRO(MarketPosition=1, MROBS, 1) = -1 Then
Buy Next Bar at BuyTarget Stop;
IF MROSS <> -1 AND MRO(MarketPosition=-1, MROSS, 1) = -1 Then
SellSHORT Next Bar at SellTarget Stop;

{Exits}
SELL Next Bar at LowerMA Stop;
BUYTOCOVER Next Bar at UpperMA Stop;

策略在螺纹钢期货指数的15分钟周期做了最近三年的数据回测的权益曲线:在这里插入图片描述
总体分析:
在这里插入图片描述
从盈亏比和胜率上看,距离实盘标准很远,随后将逐步优化,以求满足实盘条件。非拟合参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值