[原创] 混沌操作法策略源码解析

前言

混沌一词原指宇宙混乱状态的描述,其思想是:结果是必然的,但是由于现有知识无法计算出结果,因为计算本身也在改变结果,最后可能出现最大或最小的结果,而没有必然的结果。

 

这与交易市场非常类似,参与者在分析市场,并付诸行动的时候也改变了市场。市场具有永恒变异性,当参与者了解到市场新形态后,市场同样也了解到它被参与者所认识,于是变异就发生了。并且它一定会趋向于参与者未知的方向去变异,它具有足够的智慧防止参与者捕捉到它的变化规律,也就是说,市场不具有稳定性,对市场过去的认识不能代表未来。

 

 

 

什么是混沌操作法

混沌操作法,是一整套完整的投资思想、交易策略和进出场信号,由比尔·威廉姆斯发明。从上个世纪末以来就开始风靡美国,得到了众多投资专家和专业交易员的肯定。目前国际上有很多投资者用混沌操作法参与市场交易,由于我国金融市场发展滞后,而混沌理论也是相对新潮的一种思想,所以国内研究混沌操作法的人也很少。

 

鉴于混沌操作法是一个普适性非常高的交易策略,能够应用于几乎所有的金融投资领域,包括股票、债券、期货、外汇、数字货币,所以希望能够通过本篇的抛砖引玉,提高大家的投资兴趣和收益。

 

 

 

混沌操作法架构

顾名思义,混沌操作法的理论基础就是混沌理论,混沌理论由气象学家 Edward Lorenz 提出,是20世纪末最伟大的科学发现之一。著名的“蝴蝶效应”就是他提出来的。比尔威廉姆斯创造性地将混沌理论应用于金融投资领域,并结合分形几何学、非线性动力学等学科,创造出了一系列非常有效的技术分析指标。

 

整个混沌操作法是由五大维度(技术指标)构成的:

  • 鳄鱼线(Alligator)

  • 碎形(The Fractal)

  • 动量(The Momentum)

  • 加速(Acceleration)

  • 均衡线(The Balance Line)

 

 

 

鳄鱼线

鳄鱼线(如上图)就是运用分形几何学与非线性动力学的一组平衡线,其本质就是扩展指数加权移动平均线,属于均线的一种,只不过计算方法比普通均线稍微复杂一些。先来看看鳄鱼线的定义:

 

// 参数
N1:=11;
N2:=21;

// 定义价格中线
N3:=N1+N2;
N4:=N2+N3;
HL:=(H+L)/2;

// 鳄鱼线
Y^^SMA(REF(HL,N3),N4,1);
R:=SMA(REF(HL,N2),N3,1);
G:=SMA(REF(HL,N1),N2,1);

 

首先定义价格中线,即最高价与最低价的平均值,对于唇吻来说就是中线的小周期再次平均,牙齿就是中线的中周期再次平均,颚部就是中线的大周期再次平均。在实战中,我们使用的是颚部。

 

 

 

分形

分形(如上图)就是在面前张开手掌,手指朝上,中指就是上分形,左边的小指和无名指,右边的食指和拇指分别代表未创新高的K线。一个基本的分形就由这5根K线组成。

 

// 分形
TOP_N:=BARSLAST(REF(H,2)=HHV(H,5))+2;
BOTTOM_N:=BARSLAST(REF(L,2)=LLV(L,5))+2;

TOP:=REF(H,TOP_N);
BOTTOM:=REF(L,BOTTOM_N);

MAX_YRG^^MAX(MAX(Y,R),G); 
MIN_YRG^^MIN(MIN(Y,R),G); 

TOP_FRACTAL^^VALUEWHEN(H>=MAX_YRG,TOP);
BOTTOM_FRACTAL^^VALUEWHEN(L<=MIN_YRG,BOTTOM);

 

同理,下分形就是手指朝下。如果最近的上分形被突破,并且回调时未跌穿最近的下分形,基本可以判断市场可能要转空为多,反之亦然。

 

 

 

策略逻辑

本策略是基于混沌理论的鳄鱼线和分形指标,组合形成的交易策略。以一组指数加权移动平均线作为鳄鱼线和分形指标计算的基准价格。

 

// 如果当前无多单,并且收盘价升破上分形,并且上分形在鳄鱼线上方时,多头开仓
BKVOL=0 AND C>=TOP_FRACTAL AND TOP_FRACTAL>MAX_YRG,BPK(1);
// 如果当前无空单,并且收盘价跌破下分形,并且下分形在鳄鱼线下方时,空头开仓
SKVOL=0 AND C<=BOTTOM_FRACTAL AND BOTTOM_FRACTAL<MIN_YRG,SPK(1);

// 如果收盘价跌破鳄鱼的下巴时,多头平仓
C<Y,SP(BKVOL);
// 如果收盘价升破鳄鱼的下巴时,空头平仓
C>Y,BP(SKVOL);

 

  • 多头开仓:如果当前无多单,并且收盘价升破上分形,并且上分形在鳄鱼线上方。

  • 空头开仓:如果当前无空单,并且收盘价跌破下分形,并且下分形在鳄鱼线下方。

  • 多头平仓:如果收盘价跌破鳄鱼下巴。

  • 空头平仓:如果收盘价升破鳄鱼下巴。

 

 

 

策略源码

// 回测配置
(*backtest
start: 2010-01-01 09:00:00
end: 2019-01-01 15:00:00
period: 1d
exchanges: [{"eid":"Futures_CTP","currency":"FUTURES","minfee":10}]
args: [["N1",11],["N2",21],["ContractType","rb000",126961]]
*)

// 参数
N1:=11;
N2:=21;

// 定义价格中线
N3:=N1+N2;
N4:=N2+N3;
HL:=(H+L)/2;

// 鳄鱼线
Y^^SMA(REF(HL,N3),N4,1);
R:=SMA(REF(HL,N2),N3,1);
G:=SMA(REF(HL,N1),N2,1);

// 分形
TOP_N:=BARSLAST(REF(H,2)=HHV(H,5))+2;
BOTTOM_N:=BARSLAST(REF(L,2)=LLV(L,5))+2;

TOP:=REF(H,TOP_N);
BOTTOM:=REF(L,BOTTOM_N);

MAX_YRG^^MAX(MAX(Y,R),G); 
MIN_YRG^^MIN(MIN(Y,R),G); 

TOP_FRACTAL^^VALUEWHEN(H>=MAX_YRG,TOP);
BOTTOM_FRACTAL^^VALUEWHEN(L<=MIN_YRG,BOTTOM);

// 如果当前无多单,并且收盘价升破上分形,并且上分形在鳄鱼线上方时,多头开仓
BKVOL=0 AND C>=TOP_FRACTAL AND TOP_FRACTAL>MAX_YRG,BPK(1);
// 如果当前无空单,并且收盘价跌破下分形,并且下分形在鳄鱼线下方时,空头开仓
SKVOL=0 AND C<=BOTTOM_FRACTAL AND BOTTOM_FRACTAL<MIN_YRG,SPK(1);

// 如果收盘价跌破鳄鱼的下巴时,多头平仓
C<Y,SP(BKVOL);
// 如果收盘价升破鳄鱼的下巴时,空头平仓
C>Y,BP(SKVOL);

附上策略源码链接,打开链接直接运行:

策略源码地址

 

 

 

回测

为了将回测更接近于实盘环境,这里把手续费设置为交易所的2倍,开仓和平仓各加2跳的滑点。回测的数据品种为螺纹钢指数,交易品种为螺纹钢主力连续,固定1手开仓。以下是在1小时级别的初步回测绩效报告。

 

 

 

总结

从资金曲线和回测绩效数据来看,该策略表现良好,整体资金曲线是稳步向上的。但是螺纹钢品种从2016年底之后,市场特性已经发生了改变,由之前高波动率单边走势转变为宽幅震荡走势。从资金曲线上看,2017年至今盈利明显乏力。

 

综上,混沌操作法的精髓就是找到转折点,而不需要关心市场怎么走,也不需要关心真假突破,如果突破分形就直接入场。这也是本篇前言的初衷,永远不要试图去预测市场,而是做一个观察者和跟随者。

免责声明:信息仅供参考,不构成投资及交易建议。投资者据此操作,风险自担。
如果觉得文章对你有用,请随意赞赏收藏
13638335903 2326746286 1317246517 564871762 万德福 5人赞赏收藏
相关推荐
相关下载
登录后评论
最新评论 (2)

  • avatar
    2019-01-25 12:26:08 春暖花开 [宽客网友]:
    春暖花开
    0
    文章
    0
    关注
    1
    粉丝

    最后这句“做一个观察者和跟随者。”画龙点睛之笔!

Copyright © 2019 宽客在线