第五章 公式优化与测试平台
专题:
第五章 公式优化与测试平台
指标公式的优化
条件选股公式的优化
交易系统公式的优化
无论是指标、条件选股,或者交易系统的编制,都是一个循序渐进的过程。这一点在交易系统中表现得尤为突出,从一个方案的提出,到量化,编制公式,然后在以后的不断的检验--历史数据下的静态检验,当前数据下的动态检验,实战检验,任何其中的一个环节如果发现有不合理的,不准确的的地方都需要我们对整个公式系统进行修改,使之更加完美,也许可以将之称为“优化”。
在分析家4.0的版本中,突出了这个功能的实现,可以通过测试平台对所有的公式化分析工具或者交易工具进行全方位的测评,并提交一份翔实可信的测试报告,在以下的几节中,我们将通过融合测试平台的使用对指标、条件选股以及交易系统的公式进行优化。
5、1测试平台的基本内容和架构
在工具栏中选中“系统测试平台”,在分析家中为技术指标、条件选股以及交易系统建立了统一的测试平台。
假设我们选择了技术指标当中的MA进行测试,在设定好一定的买入条件和卖出条件以及测试的市场模型之后即可对任意的指标、公式等进行测试。分析家中提供了两种不同的测试模型,一种是针对全部信号的单个股票测试,另外一种是为了最佳的模拟真实的买入和卖出条件,以及参与市场的投资策略的测试模型,具体的内容和区别请参见分析家的说明书。
买入条件设定
测试时段,也即测试的时间区间,分析家默认的区间为19960101到当前。
买入规则,在分析家中有以下的买入规则,如果默认的买入规则无法满足您的要求,您可以在条件选股当中编制您的买入条件。
平仓条件
分析家提供以上5种平仓条件,涵括卖出指令和止损指令:
目标周期为终点,到时自动平仓,20周期以后的收盘价平仓;
目标利润为终点,到时自动平仓,10%帐面盈利以后的收盘价平仓;
三类止损平仓:分别设定不同类型下的规避风险条件
市场模型:分析家提供两类市场模型供测试分析,具体使用请见下列
5、2 测试和公式优化的示例
例一:MA均线指标参数优化和测试
MA均线指标是我们较为常用的一个技术指标,我们通过测试平台来初步检验一下该指标的使用效果,当然我们所能做到的是假设我们在历史的某一天计算机提示了一个买入点,并且我们按照这个提示在当时进行了买入的操作--在一段时间之后的行情将会检验我们在此之前的操作的合理与否!
参数名 最小 最大 缺省
N1 0 300 5
N2 0 300 10
MA5:MA(CLOSE,N1);
MA10:MA(CLOSE,10);
因为不同的均线周期数应用了不同的分析市场中有不同的反映,根本的原因在于每一个合理的市场都存在自己的运行周期,所以个股的表现也紧紧地和市场联系在一起,体现在指标分析当中,就效果较好的指标参数可以比较准确地描述和预测股票运行的方向。以下我们利用测试平台来检验和寻找理想的MA均线参数。
第一步:在测试平台中选择MA均线指标
第二步:点击下一步,设定测试时段和交易规则
在上例中,我们选择了从19960101-20010226这一时间段,并且选定了买入规则为指标线MA1向上穿过了MA2的时候使用全部的资金买入。
第三步:设定相应的卖出条件和停损条件,并且选定测试的股票数量和对象,我们假设使用整个沪市的股票进行测试!为简单起见,我们沿用了分析家以往的默认测试方法,只设定20个周期和目标利润10%。
市场模型:
注意这里为了检测真实的全市场的信号状况,我们选择了单股票测试;
10万资金,原来的测试模型里,就是现在的单股票测试,我们是针对的出现的所有的信号都按照20天10%的测评条件进行测试,无论信号出现的时间、次序,是否可以成为真实的买入点;现在提供另外的全市场测试,允许我们模拟真实的10万资金在一段时间内按照规定好的条件连续的买入和卖出,最终统计在一定的时间内的一个模拟帐户的交易收益!
第四步:在浏览了整个测试的结构和条件之后,分析家提供了参数优化的模型--或者您可以直接略过参数优化直接进入到结果测试当中去。
为了简单起见,我们选用了对两条指标线的参数进行优化测试,一条是短期均线;另外是一条长期均线,短期均线的优化步长设定为5,长期为10,整个优化的次数不得超过10000次。
测试的结果分别在以下用两种表达方式分别用图表形象地列出:
分析:通过以上的两图一表,我们可以发现以下的特征:在列表结果中,所有的成功率集中在50%-60%的窄区间内,说明参数周期的长短没有对结果产生太大,太剧烈的影响,在图形方式中,可以观察到参数范围(5,20)-( 15,20)之间的颜色为红色,也就是说净利润最高;
假定以第一个参数为序列递增,信号的数量相反下降,从15367个信号降到了3000个,可见参数对信号的多寡有很大的影响,在实际投资中产生的交易机会的把握会同样有影响;
现在可以解释为什么我们通常会使用5、10、20、30等几个参数作为MA均线的原因了!在保障几乎相当的成功率的前提下,选择最多的信号密集区是我们在实战当中必要的客观技术要求下的环境,也正是这一点促使产生这样的参数,并且被很多的投资者认可,我们通过测评系统的计算,得出了结论!同样我们可以通过这个测评系统得到其它的所有公式、指标等等其相关的最佳参数集,从而完成了公式优化的第一大步!
例二:MA均线交叉的条件选股测试和条件优化
测试:
承接上面的例子,我们结合市场的普通使用状况和我们的优化表中的数据采用其中一组合适的参数作为测试的对象,来分析市场广为流传的均线买入卖出法进行测试。
输入MA均线的公式,并且使用参数5,10进行测试:
注意这里为了模拟真实的10万资金在一段时间内按照规定好的条件连续的买入和卖出,最终统计在一定的时间内的一个模拟帐户的交易收益!我们选择了全市场测试:
从19960101-20000226我们测试了所有的上海市场的A股得出了以上的结论,总共的交易信号数量达到4656个,其中信号的优劣各占5成,但是年收益率为1.72%,就是说条件MA5向上交叉MA10日均线的利润几乎为0!
优化:
既然借助计算机和分析家的我们已经测得“如果只是简单的使用MA均线,即便改变使用最佳的参数,而不考虑其他的因素的话,从概率的角度上讲,基本是两平微亏的局面......所以为了更好的利用计算机的作用帮助我们寻找更高更好的交易策略,需要对原来的条件进行更改或者加以限制,过滤掉多余的错误的信号”。
在优化的过程中,我们需要分析全部的各个信号出现时当天的具体状况,然后剔除比较恶劣的条件......尽量保留真实有效的信号!
以下是我们随机寻找了一个补充条件,当天出现大阳线和MA均线配合使用:
则现在的测试条件变为:
A1:=MA(CLOSE,5);
A2:=MA(CLOSE,10);
AA:=CROSS(A1,A2);
B1:=CLOSE/REF(CLOSE,1)>1.07;
B2:=CLOSE=HIGH;
AA AND B1 AND B2
再用以同样的条件下进行测试,我们得到了以下的图标,可以见到收益有了较为明显的提高!这样一来,说明新的公式所描述的选股条件较原来的条件更有意义,在实际操作中的参考价值也相对要高。
收益率:61.29% 交易数量:48 胜率: 75%
事实上每一个公式都是通过这样的测试,不断的完善之后才会交给到正式的市场去再检验,如果您承认市场是可以找到这样的规律,它们确实存在,那么这个公式才会有意义,您才会去不断的改良它!作为技术分析的前提,也正是我们分析家公式发挥作用的前提!
例三:一个简单交易系统的测评和优化
一个简单的交易系统
“如果在一个KD强势的市场中,如果股价从下方穿过了30日均线,并且当天的成交量有比较明显的放大,我会买入;我的卖出条件是股价跌下10日均线之下立即抛出,当股价跌出买入价的5%时候主动止损”。
在我们前面的介绍中,曾经介绍过一个朋友的最简单的交易系统,交易系统是在不断的重复改良,辩证和创新中得以升华的--现在就这个简单的交易系统,我们来做一下系统的综合评测,让历史上的数据来判断吧!
原来的公式系统为:
AA:=“KDJ,D”;
A1:=AA>40;
A2:=VOL/MA(VOL,5)>2;
A3:=CROSS(CLOSE,MA(CLOSE,30));
A4:=CROSS(MA5,CLOSE);
ENTERLONG:A1 AND A2 AND A3;
EXITLONG::A4 AND COUNT(A1 AND A2 A3,20)=1;
交易系统在卖出条件上与其他的公式系统测试有所不同,其他的都是使用同一个测试平台,都是一样的,我们可以先简单地将交易系统看作是条件选股的扩展,区别是交易系统的卖出条件更加的丰富,可以自己根据实际的经验来编写;而条件选股的公式在这个测试平台上,只能遵守强制卖出和止损的固化的条件。
刚好我们用一笔10万的资金测试一下如果从96.1.1日开始,我们按照这个交易系统去做交易,一直做到今天,做一下测试,结果请看以下图表:
结果确实不理想,和所相差比较远--我想,这里大概验证了一个道理,只有市场是对的!把您的公式、想法让市场去辨别,它会给您一个很好的答案的!
附录: 函数参考
分析家的公式编写系统使用了多类的函数,以达到快速提取数据和提高运算能力,同时简化计算过程的要求。因此在不同类型的函数我们赋予了相当精确的含义,有的函数定义为行情数据提取函数,那么它的功能就是从静态历史上的行情数据或者动态的及时盘中数据提取我们所需要的数据以方便以后的分析和计算;有的函数定义为运算函数,是考虑到一些复杂的数学计算过程过于冗长,从而设计的简化运算的函数等等。在以下的几节中,我们将会分别介绍一共12类的函数。
(1)、函数的基本模型:
K(X1,X2,X3......)
1、K表示函数的名称;
2、X1,X2,X3......表示该函数的所有参数。
不同参数用逗号分隔并用括号将所有函数括起来列于函数名称之后;参数的取值可以是变量也可以是一个常量,具体取值和含义因函数不同而不同;
(2)、函数的引用周期:
应不同的使用者在分析周期习惯上的差异,分析家特别设定了周期选择,这主要是针对在引用类函数在引用数据时锁定自己所需要的周期,例如在日线上,或者在周线上等等的要求。
如右图所示,一共可以从分笔到多日线等10类选择。
一、行情函数
行情函数是最基本的函数,首先,它为我们提供计算所需的函数,这些函数从存储的数据中取得我们所需要的各类数据,而其他多数函数所需的计算数据一般也是由通过引用行情函数产生的。
1、OPEN
含义:返回本周期的开盘价,简写“O”
参数:无
单位:无
阐释:如果您选定的分析周期为日线,那么“OPEN”就表示取得当天开盘价的数值。
2、HIGH
含义:本周期的最高价,简写“H”
参数:无
单位:无
阐释:如果您选定的分析周期为日线,那么“HIGH” 就表示取得当天最高价的数值。
3、LOW
含义:本周期的最低价,简写“L”
参数:无
单位:无
阐释:如果您选定的分析周期为日线,那么“LOW”就是表示取得当天最低价的数值。
4、CLOSE
含义:本周期的收盘价,简写“C”
参数:无
单位:无
阐释:如果您选定的分析周期为日线,那么“CLOSE”就表示取得当天收盘价的数值。
5、VOL
含义:本周期的成交量
参数:无
单位:无
阐释:如果您选定的分析周期为日线,那么“VOL”就表示取得当天成交量的数值。
6、AMOUNT
含义:本周期的成交额
参数:无
单位:无
阐释:如果您选定的分析周期为日线,那么“AMOUNT”就表示取得当天成交额的数值。
7、ADVANCE
含义:本周期对应大盘内个股上涨家数
参数:无
单位:无
阐释:如果您选定的分析周期为日线,那么“ADVANCE”
就表示取得当天大盘内个股上涨家数的数值。
8、DECLINE
含义:本周期对应大盘内个股下跌家数
参数:无
单位:无
阐释:如果您选定的分析周期为日线,那么“DECLINE”就表示取得当天大盘内个股下跌家数的数值。
9、BUYVOL
含义:主动性买盘成交量,取得本笔成交主动向买盘成交量。当本笔成交为主动性买盘时,其数值等于成交量,否者为0。
限制:仅在分笔成交分析周期中对个股分析时有效,否则为0
参数:无
单位:手
阐释:测试原理
10、BUYVOL
含义:主动性卖盘成交量,取得本笔成交主动性卖盘成交量。当本笔成交为主动性卖盘时,其数值等于成交量,否者为0。
限制:仅在分笔成交分析周期中对个股分析时有效,否则为0
参数:无
单位:手
11、ISBUYORDER
含义:测试是否以主动性买盘成交,取得本笔成交量是否为主动性买单,当本笔成交为主动性买盘时,返回1,否则为0
限制:仅在分笔成交分析周期中对个股分析时有效,否则为0
参数:无
省略。。。。。。
EXPMA指标编写
三条均线多头排列
移动成本分布函数
威廉指标W&R编写
KDJ指标选股
公式应用及编写话题
公式应用及编写话题 (1)、实战与指标 实战与指标(一) 本文只是个人的在使用FXJ指标时的一点个人的心得和使用方法,并不一定正确,只是想给大家一个把指标用到实战上的参考。 一,输出并保留你所有的公式,重装分析家。(玩笑,别当真) 二,确定你的平时操作的习惯,我个人把它分为追涨型,抢反弹型,抄底波段型。这是因为现在世面上的指标实在太多,我个人统计了一下各类指标已超过千个以上,有实战价值的最多不过5%(也有水份)。大部份的公式往往都是作者本人都不用了或有更好的了,才发出来 的,(大实话,我自己也是这样)据我所知大多数的公式名人免费发出来的公式都是这样,反而是些新学编制指标的新人所制的指标价值高些,比有些大名鼎鼎的高手在网上有流传的东东要好得多(得罪人了,我晕,等下我会拍拍一些人的马屁,看看你在不在其中,不在的话再骂我吧),之所以要确定你的习惯是为了找到并组合一套你自己的实战指标,不用太多,20个公式足够。
ADL和ADR编写
RSI、WR、MACD指标选股
2、33 RSI指标选股 回顾公式基本买卖原则: 短期RSI值在20以下,由下向上交叉长期RSI值时为买入信号;短期RSI在80以上,由上向下交叉长期RSI时为卖出信号;短期RSI值由上向下突破50,代表股价已经转弱,短期RSI值由下向上突破50,表示强。 条件选股一:RSI上穿20 同样我们也有两种选择使用,为方便起见,我们选用第一种引用技术指标的方式,并使用默认参数: AA:=“RSI”; CROSS(AA,20) 条件选股二:相反的选择,沽出时机为RSI向下穿过80: AA:=“RSI”; CROSS(80,AA)
指标与实战
指标与实战(二) 很久没写关于指标方面的贴了,不是不想写,是因为没有好的心得体会, 这几天放了自己几天的假,就说说我在这几月中在使用分析家时的学到的一些东 西。 我发现我曾经走过这样几步路。(或许有很多人和我一样过) 一,学习编制。二,研究网上的公式。三,自己做公式。四,迷信公式,老是 想找高成功大信号的公式,遇上哪位公式大腕今天心情好,给了几个他自己早不 用的公式就开心不已。五,懂了点皮毛后开始自大,好贴图,贴的都是自己自以 为得意的公式图。(一个不留神就被人破了)六,把自制或网友的公式化入实战 (跌跟头吧,图好看不一定有用,大多数的贴出来的图都是精选的,而且把公式 都照图优化过,实战上根本没用)七,栽了跟头后开始找原因,,抄底我喜欢, 怎么一买就套啊,哦,我的选股信号是连发的,开始的信号都亏本,后面的才 全成功,啊呀,这个公式在追涨停时出的信号,我排队没买到,第二天高开没敢 追,等回调吧,没等到,得,进去吧,看看公式信号已显示成功了,我怎么连手 续费都还没跑出来。唉,抓突破吧,85的成功率,总不会这么到霉吧,盘中有了 信号,买进,收盘了一看不对,信号怎么没了,可刚才有信号的啊,唉,盘中预 警就是这样,只要价格到了就有信号,电脑可不管你收盘时还到不到刚才那个价 。八,吃过苦头了,还是迷信公式,想靠自己的聪明才智做出点实战上有用的东 西,成功率有80以上的公式左看右看不顺眼,前几天那匹大黑马就没选到,这种 大黑都选不出,这个公式有个屁用,等做出选得到这股的公式后一测试,我晕, 50%的成功都还不到。九,公式神话彻底破灭,心灰意冷,世界末日到了,我做 的公式大都没有用,我靠。十,从头开始,学习指标原理,怎么样KDJ才会交叉, 明天收哪个价是死叉,哪个价会金叉,为何会交叉,交叉代表什么。十一,广 读经典理论,找到适合自己的操作习惯和资金的思路,编制为自己的思路而编制 的公式,再也没有成功率。十二,靠实战来优化自己的思路和公式,成败得失皆 知原因。(我用的是测算主力成本的思路,靠盘后翻票后连续实盘观察,以分时 指标决定买卖点,很烦的思路,但实战效果还行)。十三,这是我现在想要做的 ,借句名言,就是看指标如用K线,成交量。以指标当坐标,以无招胜有招!!!
指标与实战(2)
实战与指标 六 朋友们好,先说点题外话,很久没有爬格子了,一直有朋友问为何不再写点 什么,我都推说没有好的思路,其实是因本人水平实在有限,实战与指标系列写 到五也实在是写不下去了,近日空仓后得闲,想起曾答应YD兄给他的坛子写点东 西,就写点东东交帐,算是表达我对YD兄一直以来对我在技术上的帮助的谢意,多 谢YD兄。 大家喜欢分析家的原因很大一部份是因为它的平台比较开放,开放的平台能 为我们平时的*盘提供方便,此文就说说利用分析家平台建立简单的指标系统来 识破主力骗线一些思路。 大多数的人看盘都用钱龙,营业部里大多按装的也是钱龙,就算不是,其指标 系统也类似于钱龙。这是因为钱龙集成了大多数经典指标,依此推理,主力常用 的骗线手法大多建立在钱龙指标系统上,最常用的是K线,MA均线,变种均线MAC D和EMA,随机指标KDJ,RSI,量能VOL和AMOUNT这几种,量能指标在一般系统上 只是采集了当日的成交信息,从成交信息上判断判断骗线有很大的难度且不易* 作,以下只是简单介绍一下。
自编公式实现Winner函数
自编公式实现Winner函数 CC := DYNAINFO(7); { 今日收盘 } ww := IF(L>CC, 0, IF(H<CC, 1, (CC-L+0.01)/(H-L+0.01))); { 每日获利盘 } Winner: DMA(ww, VOL/CAPITAL)*100; { 获利盘 } 感谢胡呵的WINNER算法(作者:girlkiller) 感谢胡呵提供WINNER算法,对照分析家WINNER和胡呵的WINNER(简称HUWIN)有以下微小区别; 1,HUWIN中的价格加减幅度对20元以下的股票设置为0.05时与WINNER实际值接近,按0.01HUWIN的数据一般<WINNER数据. 2,由于参考动态价格,使得HUWIN无法对历史的HUWIN保留当时的真实数据,具体可对照600608等股票,只能保持当天的HUWIN.因此,选股测试是用WINNER较好,因为WINNER对历史保留.
如何编制高成功率的实战公式
(18)、如何编制高成功率的实战公式 一.引子 1.公式是我们为了用电脑这个设备把依据自己投资理念(衡量我们投资理念正确与否,公式的成功率是重要的评判标准之一)想要选出的股票而编制的一种程序 2.公式的最终定型是为了实战,不允许使用任何可能导致未来数据的函数和超越单一日线的数据,如果不是这样,我们连飞机都可以制造但那是飞不上天的。 3.公式的编制属于预测范畴,由于市场的诸多不确定因素不可能达到100%。 二.思路(大盘背景以后再说) 1.首先我们要考虑的就是成交量。 成交量vol在使用中有一些弊病,它只能反映当天的成交多少,我们把它改为换手率使用比较科学(换手率=vol/capital*100)当日成交与流通盘所占的百分比. 换手率在公式中的应用必须要考虑的因素: A:股价在即将启动的时候换手率所表现的形式。 B:同样的形式与股价循环周期高低位的关系。 C:换手率在区域时间内的有效性。 D:阶段调整结束的标志。
点击阅读更多分析家公式编写教程