CTA 策略分享之三 -- 策略优化

上一个帖子介绍了一个趋势跟踪策略的优化思路,今天我们继续对策略进行分析,找到另外的优化方法。先看回测的权益曲线:
在这里插入图片描述

看到在2017 8月份到2018 2月份策略出现了较大的回撤。先定性分析一下,应该是在这段时间内日线级别的图形上震荡走势,造成策略不适应导致,看一下日线图是不是这样:
在这里插入图片描述

可以看出这一段日线的无趋势走势造成了策略的亏损。

因为我们采用的日线的EMA过滤导致。
那么,我们更换一个思维,把日线换为1小时周期K线看一下:
在这里插入图片描述

总体分析:
在这里插入图片描述

胜率和盈亏比还是不尽如人意。继续想方法:加上1小时的趋势指标ADX试一下:

在这里插入图片描述

胜率提高较为明显,单笔交易的净利润有了较大提高。但是,还达不到实盘标准。随后我们还需要继续合理优化。

下面为脚本源码(easy language,或者人家称之为 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);
var: va_data2(0,data2),var_adx_data2(0,data2);
va_data2 = XAverage(c,20) data2;
var_adx_data2 =adx(14) data2;
//text_new (d,t,l -10, text(var_adx_data2));
//text_new (d,t,l -20, text(var_adx_data2[1]));
{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 and c > va_data2 and var_adx_data2 > var_adx_data2[1] Then
Buy Next Bar at BuyTarget Stop;
IF MROSS <> -1 AND MRO(MarketPosition=-1, MROSS, 1) = -1 and c < va_data2 and var_adx_data2 > var_adx_data2[1] Then
SellSHORT Next Bar at SellTarget Stop;

{Exits}

SELL Next Bar at LowerMA Stop;
BUYTOCOVER Next Bar at UpperMA Stop;

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值