[返回和气生财首页]·[所有跟帖]·[ 回复本帖 ] ·[热门原创] ·[繁體閱讀]·[坛主管理]

第二章 编写量化交易策略

送交者: 桂花酒[♂★★★和气生财★★★♂] 于 2023-12-31 8:40 已读 894 次 2赞  

桂花酒的个人频道

+关注
第二章 编写量化交易策略
第一节 什么是“海龟交易策略 ”交易策略?
第二节 海龟交易策略的改进
股指期货的海龟交易策略编写及迭代
第一节 什么是“海龟交易策略 ”交易策略?
海龟交易法是著名的公开交易系统,1983年著名的商品投机家理查
德. 丹尼斯在一个交易员培训班上推广而闻名于世,它涵盖了交易系
统的各个方面。其法则覆盖了交易的各个方面,并且不给交易员留下
一点主观想象决策的余地。它具备一个完整的交易系统的所有成分。
海龟交易策略,利用唐安奇通道来跟踪趋势产生买卖信号,利用ATR
(真实波幅均值)分批加仓或者减仓,并且动态进行止盈和止损。
海龟简介
唐奇安通道
在趋势信号的扑捉上,海龟交易法则使用了一个非常重要的技术指标—唐奇安通道(
Donchian channel)。这个通道很类似我们熟悉的布林通道(Bollinger Bands),只是
在具体计算方式上有些不一样。
唐奇安通道指标是Richard Donchian发明的,由3条不同颜色的曲线组成,该指标用周期
(一般都是20,有的平台系统设置时可以改变的,有的则设置的不可以)内的最高价和最
低价来显示市场价格的波动性,当其通道窄时表示市场波动较小,反之通道宽则表示市场波
动比较大。当价格冲破该通道的上轨道时,就是可能的买入信号;反之,冲破下轨时就是可
能的卖出信号。
唐奇安通道
唐奇安通道的各项指标的计算方法为:
头寸计算
海龟策略根据账户资金情况结合ATR动态调节投入的保证金计算手数,这个模块非常经典,
很多CTA策略都在借鉴使用;
AvgTR = XAverage(TrueRange,ATRLength);
N = AvgTR[1];
TotalEquity = Portfolio_CurrentCapital() + Portfolio_UsedMargin();
TurtleUnits = (TotalEquity*RiskRatio/100) /(N * ContractUnit()*BigPointValue());
TurtleUnits = IntPart(TurtleUnits); // 对小数取整
动态止损
海龟交易策略充分利用了ATR指标,2倍ATR做为波幅来动态调整止损位置:
#多头持仓,当价格跌破开仓价-2*ATR止损出场
Low = preEntryPrice + 2 * ATR
移动出场
海龟策略用10日的高低点作为离场条件:
ExitLowestPrice = LowestFC(Low[1],teLength);
ExitHighestPrice = HighestFC(High[1],teLength);
#多头持仓,跌破10日低点清空全部仓位
Low < ExitLowestPrice
#空头持仓,突破10日高点清空全部仓位
High > ExitHighestPrice
加仓模块
加仓模块比较有意思,它是一个循环加仓的设定,当有底仓的时候最新价格高于(低于)进
场价格的0.5倍ATR并且小于最大加仓次数。
while(High >= preEntryPrice + 0.5*N && CurrentEntries <
nEntries) // 以最高价为标准,判断能进行几次增仓
{
myEntryPrice = preEntryPrice + 0.5 * N;
preEntryPrice = myEntryPrice;
if(False == Buy(TurtleUnits,myEntryPrice))
{
break;
}
SendOrderThisBar = True;
}
总结
海龟交易作为经典策略,为交易者提供了完整的策略编写框架。在波动率放大的趋势中使用
循环加仓模块可以带来非常爆炸的利润,但是在波动率较窄的震荡市中可以把脸给你赔肿了
。正所谓盈亏同源好坏参半,加仓模块的使用要非常谨慎,好不容易积累的利润因为加仓使
得抗波动能力降低,稍有冲击利润回吐明显,最后可能亏损出场。对,海龟最大的一个问题
就是利润回吐。除了加仓的问题,更多的是出场设计的比较鸡肋。移动止损和10日高低点极
不适应市场,过于死板且并不理想。
第二节 海龟交易策略的改进
改进思路
1.开仓条件过于简单,加入过滤模块;
2.为了保住累计利润增加抗波动能力,屏蔽循环加仓;
3.删除原有出场模块,使用动态出场替代;
过滤模块
海龟策略本身的参数较多,影响了普适性。为了不增加多余的优化参数,
我们借鉴一下SF23的趋势模块过滤,本身都是通过HHV和LLV计算的,
所以不用增加可变参数了。
condRHL=HLHL[1];
If(condRHL)
{
R_HL=HL[1];
X=X+1;
sumAG=sumAG+HL[1];
If(X>2)
{
HLAverage=sumAG/X;
sumAG=0;
X=0;
}
}
过滤模块
上面的是基础算法,但是具体条件的使用还是有不一样的;
if(condRHLAverage)
{
RHLAverage=HLAverage[1];
}
A_condD=HLAverage>RHLAverage andRHLAverage>0 and
HLAverage>0;
A_condK=HLAverage0 and
HLAverage>0;
过滤模块
“宽窄”移动出场
我们知道,海龟的初始开仓分为短周期开仓和长周期开仓,这里我们默认只用短周
期开仓,关于长周期的那个区间我们当作调节出场参数的滤波器来使用吧。
思路:长周期和短周期区间本身就是波动幅度变化的动态指标,持有仓位时如果价
格在短区间内波动,使用默认出场参数。如果突破了长周期,说明波动率开始放大
了,这个时候我们开始调节收敛参数,保住利润。因为开仓条件简单,在趋势中即
使止盈出场,也有很多机会再次加入趋势。有些模型在趋势中的交易次数太少,一
旦踏空可能2,3个月没有信号。趋势拿的稳固然没错,但是交易信号太少,可操作
性不大,波段循环操作更为合理一点。
“宽窄”移动出场
Dcond_outTrs=CrossOver(C[1],fsDonchianHi[1]);
Commentary("fsDonchianHi=
"+Text(fsDonchianHi));
If(Dcond_outTrs and SendOrderThisBar==True)
{
out_range=TRS*XX;
SendOrderThisBar=False;
}
“宽窄”移动出场
黄色部分是在短周期区间内的状态,红色部分是突破了长
周期区间后的加速。
绩效结果
绩效结果
股指期货的波峰波谷交易策略
第一节 通道交易理论与波峰波谷
第二节 基于波峰波谷的交易策略
第三节 过滤假信号提升交易绩效
第一节 通道交易理论与波峰波谷
利用价格管道进行交易(简称管道交易)是一种简单而有效的交易方法,既适合
于新入市的投资者,也适合于各类不同程度的投资者。价格通道交易具有简单、
灵活、便以制定计划等特点。
在K线或竹线价格图中,商品价格客观地展现出各种各样的价格型态,例如三角形、旗
形、矩型、锲形、头肩形、W形、弧形、管道形、V形…等等,价格管道型态是其中最
常见的一种。
价格管道是商品价格在图形中的客观表征。价格管道要素
包括上管道线(图中的AB线段),下管道线(图中的CD
线段)和价格行进的图形轨迹等三个要素。价格行进轨迹
是市场行为和图表技术的集成,而上、下管道线是以实际
价格转折点为基础的技术处理产物。
价格通道交易方法:
1、顺势交易方法
适用于上升管道交易和下降管道交易。基本的交易理念是只跟随市场价格的趋势方向开新仓,
而当价格运行遇到管道线的阻挡时平仓了结交易。如图一中,当通过D1、D2、D3画出价格上升管道
后:
价格回到M1点时做买进开仓操作;
价格上升到上管道线的S2点时做卖出平仓操作;
当价格又回到下管道线的M2点时又做买入开仓操作;
价格上升到上管道线的S3点时做卖出平仓操作;
如此利用上升管道反复顺势交易。
在下降管道中的操作方法与在上升管道的操作相同,不同的只是交易方向相反。
这种顺势交易方法的特点是比较稳健,成功的概率较高,冒的风险较小,但交易机会相对减少,在同
一市场周期内获取的投资收益可能也较少,适合较稳健的投资者。
价格通道交易方法:
2.双向交易方法:
适用于各类价格管道,尤其适合于水平价格管道的交易。基本的交
易理念是不丢掉可能的交易机会,力争高效利用价格管道交易资讯
,不理会市场趋势。
例如图一中,当通过D1、D2、D3画出上升管道后,当价格上升
到上管道线S1点就做卖出开新仓操作,价格回落到下管道线M1点
时,在平仓了结卖出交易的同时买进开新仓,当价格又上升到上管
道线S2点时在平仓了结买进交易的同时做卖出开新仓操作,如此
利用价格管道进行双向反复交易。
这种双向交易方法表现很积极,如果配合好止损计划,就获得更多
的交易机会,同时可能获得更高的收益,但同时也存在更多的风险
,适合比较积极的承受风险能力强的投资者。这种交易方法在水平
管道中有很高的应用价值。

TY:=C;
A1:=REF(TY,10)=HHV(TY,2*10+1);
B1:=FILTER(A1,10);
C1:=BACKSET(B1,10+1);
HD:=FILTER(C1,10);
A2:=REF(TY,10)=LLV(TY,2*10+1);
B2:=FILTER(A2,10);
C2:=BACKSET(B2,10+1);
LD:=FILTER(C2,10);
AZ1:=REF(C,BARSLAST(HD));
B:=REF(C,BARSLAST(LD));
T1:=BARSLAST(HD);//WWW.CXH99.COM
T2:=BARSLAST(HD)>BARSLAST(LD) AND NOT(LD);
波峰
:IF(T1,AZ1,AZ1),POINTDOT,COLOR0000FF,LINETHI
CK7;
STICKLINE(T1,AZ1,AZ1,9,0),COLOR0000FF,LINETHI
CK7;
波谷
:IF(T2,B,B),COLOR80FF00,POINTDOT,LINETHICK7;
STICKLINE(T2,B,B,9,0),COLOR80FF00,LINETHICK7;
第二节 基于波峰波谷的交易策略

第三节 过滤假信号提升交易绩效

条件一:出现波谷的时候做多,出现波峰的
时候做空,设置开关KG
条件二:KG=1并且价格突破HH或者LL
满足俩个条件后开仓

对比 版本一 版本二
对比 版本一 版本二
本文信息仅用于投资者教育公益性目的,不构成对投资者的任何投资建议,投资者不应
当以该等信息取代其独立判断或仅根据该等信息做出决策。本文信息力求准确可靠,但对这
些信息的准确性或完整性不作保证,亦不对因使用该等信息而引发或可能引发的损失承担任
何责任。 课件内容及相关元素部分来源于网络,如涉及侵权,请联系删除。
感 谢 
喜欢桂花酒朋友的这个贴子的话, 请点这里投票,“赞”助支持!

内容来自网友分享,若违规或者侵犯您的权益,请联系我们

所有跟帖:   ( 主贴楼主有权删除不文明回复,拉黑不受欢迎的用户 )


用户名: 密码: [--注册ID--]

标 题:

粗体 斜体 下划线 居中 插入图片插入图片 插入Flash插入Flash动画


     图片上传  Youtube代码器  预览辅助

打开微信,扫一扫[Scan QR Code]
进入内容页点击屏幕右上分享按钮

楼主前期社区热帖:

>>>>查看更多楼主社区动态...



[ 留园条例 ] [ 广告服务 ] [ 联系我们 ] [ 个人帐户 ] [ 创建您的定制新论坛频道 ] [ Contact us ]