[金字塔教程十]程式化交易测试和优化
(2014-01-18 17:42:35)
标签:
程序化交易金字塔教程期货股票 |
分类: 金字塔决策交易系统 |
10.1完整交易系统的组成
“交易系统是完整的交易规则体系”,首先一套最简单的完整的交易系统,包括最基本的交易点组成的框架,也就是由两个点组成,一个是买入点的切入和卖出点的切出,整个的交易系统就是围绕着这两个基本的点形成的循环,整个的交易系统的确立、测试和优化,简单讲只是围绕这两个基本点的确认而展开。
但是,一个交易系统绝对不只是局限于得到两个点的工作,买入和卖出的有机结合,交易资金的合理分配使用,根据市场状况的变动相应的调整以适应新的变化等等后期的跟踪和再优化,以及保证交易循环的连续性都是一个“完整的交易规则体系”的要求。
一个完整的交易系统由以下的步骤组成:
(1)交易策略的提出
(2)交易对象的筛选
(3)交易策略的公式化
(4)交易系统的统计检验
(5)交易系统的外推实验
(6)交易系统的实战检验 (包括前期的实时行情模拟和小仓位实盘)
(7)交易系统的检测与维护
实际上,简单的讲来就是将一些的经验和方法首先通过量化和公式化,变成计算机可以识别的语言,并且在历史的数据中进行统计和成功率检验。首先通过了不同的市场,不同的历史环境的数据检验后付之实战,最终在实践的考验中不断完善和进步。
无论是指标、条件选股,或者交易系统的编制,都是一个循序渐进的过程。这一点在交易系统中表现得尤为突出,从一个方案的提出,到量化,编制公式,然后在以后的不断的检验--历史数据下的静态检验,当前数据下的动态检验,实战检验,任何其中的一个环节如果发现有不合理的,不准确的的地方都需要我们对整个公式系统进行修改,使之更加完美,也许可以将之称为“优化”。
在金字塔1.90的版本中,突出了这个功能的实现,可以通过测试平台对所有的公式化分析工具或者交易工具进行全方位的测评,并提交一份详实可信的测试报告,在以下的几节中,我们将通过融合测试平台的使用对指标、条件选股以及交易系统的公式进行优化。
10.2测试平台的基本内容和架构
在金字塔中为技术指标、条件选股以及交易系统建立了统一的测试平台。在【交易】栏中选“程式化交易评测”,或按Ctrl + F7。
假设我们选择了技术指标当中的MA进行测试,在设定好一定的买入条件和卖出条件以及测试的市场模型之后即可对任意的指标、公式等进行测试。金字塔中提供了两种不同的测试模型,一种是针对全部信号的单个股票测试,另外一种是为了最佳的模拟真实的买入和卖出条件,以及参与市场的投资策略的测试模型,具体的内容和区别请看后面的说明。
开仓信号,选择模型和分析周期。
入场规则,入场条件设定测试时段,也即测试的时间区间,金字塔默认的区间为20000101到当前。如果默认的入场规则无法满足您的要求,可以在模型当中编制您的入场条件。
出场规则,金字塔提供以上7种平仓条件,包括卖出指令和止损指令:
目标周期为终点,到时自动平仓,20周期以后的收盘价平仓;
目标利润为终点,到时自动平仓,10%帐面盈利以后的收盘价平仓;
以及5类止损平仓:分别设定不同类型下的规避风险条件。
交易费用:按证券和期货,根据成交额和成交量计算佣金。
市场模型:金字塔提供两类市场模型供测试分析。
10.3金字塔的图表程式化交易和后台程式化交易的结构
10.3.1前台图表交易
金字塔前台图表交易是将交易系统指标放在图表上进行显示和下单交易的,金字塔图表交易适用ENTERLONG,EXITLONG,ENTERSHORT,EXITSHORT这四种交易信号来分别表示多空头的进出场描述.
除此之外,金字塔还提供了功能更为强大的新交易系统函数,可以使用BUY,SELL,BUYSHORT,SELLSHORT,函数,对介入价位和仓位进行精确的控制,可以对譬如海龟交易法的头寸管理.金字塔的新交易系统函数,用户可以在公式函数列表的“交易系统”组里找到.但是需要注意的是金字塔的新交易系统,是不能与旧的交易系统比如ENTERLONG混用的.金字塔的新交易系统采取的虚拟仓位和资金再图表做显示和模拟交易的,使用之前用户需要在公式属性里将资金和费率设置正确,以确保能更加贴近实战.真实自动交易时,系统将根据交易指令发出的交易类型和价格以及数量进行下单交易.
10.3.2后台程式化交易
金字塔的后台程式化交易在金字塔公式系统里用户可以在“后台程式化交易”函数组里找到,后台程式化交易是基于预警模式进行工作, 由于后台程式化交易是金字塔在后台进行,不需要图表打开不占用过多的资源,由于只需要最后一个周期的信号,所以原则上公式不要多余计算,故效率高,便于对多个品种同一个策略进行轮循监控.用户前期编写的自动交易策略是需要先在图表上和程式化交易评测上通过后才可以放到后台去执行程式化交易。为了让用户更快的编写和熟悉金字塔的后台程式化交易,金字塔的程式化交易函数,前面都在交易系统函数名称前加 T 字母,比如BUY改为TBUY, 使用方法大致相同.户仔细注意查看函数的使用说明。与图表显示的交易系统函数不同的是,后台程式化交易的函数都使用的实际的用户持仓和资金.
10.3.3金字塔程式化交易的特点和与TradeStation等软件的不同点
金字塔为了满足不同层次用户的需要,提供两种程式化交易,前台图表程式化交易和后台程式化交易.
前台图表自动交易是为基础用户所设立,即可使用ENTERLONG,EXITLONG,ENTERSHORT,EXITSHORT这4种传统的交易信号,也可使用交易系统函数来实现下单.交易过程是基于图表之上的,用户事先将交易信号的公式添加到图表上,然后再来启动交易.
后台程式化交易是基于后台的预警模式,金字塔提供了一系列的功能和众多交易函数,可以在不影响用户前台图形操作情况下,可以高效与预警系统一起工作来实现自动交易,并且可以一个交易策略同时交易几个品种。而TradeStation是必须在图表上才能实现交易的.
TradeStation程式化交易时,图表上只有最后一个周期走完才发出交易指令,而金字塔提供了两种模式,一种是基于预警轮询模式,在一个K线周期内会被多次执行交易判断(频率取决于预警时间间隔这个选项),这样可以保证在出现信号时能够以最快速度的发出交易指令,但是用户不用担心一个周期内多次重复交易问题,因为金字塔可以自动防止此现象(可以使用ALLOWREPEAT控制符允许反复开平仓)。另外金字塔也提供K线走完再发信号这种工作模式,与TradeStation保持了一致.
由于程式化交易模式不同,所以用金字塔做自动交易时应特别注意几个问题:①②
(1)使用了即时发出预警信号选项时,自动交易不局限于最后的K线走完,所以可能会导致中间发出信号,而价格变动后信号消失
(2)使用了即时发出预警信号时,预警时间间隔控制轮询的频率,用户应该根据交易公式所用到的周期合理的分配间隔时间,防止由于间隔时间不合适而导致例如上传下破等指标信号漏掉的情况。
10.3.4使用金字塔自动交易的常见问题和注意事项:
(1)前台图表ENTERLONG控制指令和BUY等图表显示函数是不能放在后台做监控交易的,但是将"允许程式化交易"勾去掉后单独做预警是可以的。
(2)不带T的交易系统所有函数,均不能与ENTERLONG等传统的交易系统混用。
(3)只有少数的带T的后台交易函数允许使用在Enterlong和BUY前台图表交易策略中. Tholding, TAVGENTERPRICE,Taccount, Tasset,但是金字塔强烈不建议使用,因为这样会造成图表上的交易信号与实际的下单记录不符。
(4)金字塔的后台交易部分,使用手工闪电下单的记录,将无法通过比如TENTERPRICE等与交易记录有关函数中得到结果,但可以通过程式化交易监控中的手工下单干预功能完成此项目的。
(5)金字塔的后台交易,查询持仓和资产均为用户当前的实际数值,如果多个策略同时多一个品种或通一个帐户进行操作会产生相互干扰现象,解决办法就是通过使用交易系统使用虚拟持仓和资金,这样就完全可以避免这种共振现象,但是推荐高级用户使用,因为需要很多技巧需要处理。
(6)传统的交易信号ENTERLONG虽然功能较弱,但是由于不需要头寸管理,故金字塔可以使用公式的特殊算法达到高效运行,故在不需要介入点和仓位控制的策略中,尽量避免使用BUY等新交易系统,尤其在使用了BUY的新交易系统的策略中,使用未来函数更会导致效率下降。同样如此,如果在同一个策略中使用TBUY和BUY函数,也会导致在后台自动交易时的效率下降。
(7)用以图表显示的交易系统和后台程式化交易的交易指令函数,参数有明显的不同,用户不能简单的将BUY函数加个T就可以直接后台交易,使用前应该将鼠标放在TBUY函数上认真看看函数说明。
同名交易系统函数与程式化交易函数的差别:
|
前台图表交易模型 |
后台交易系统 |
开多 |
BUY |
TBUY |
平多 |
SELL |
TSELL |
开空 |
BUYSHORT |
TBUYSHORT |
平空 |
SELLSHORT |
TSELLSHORT |
其中TYPE:次周期限价 |
LIMIT |
REF(条件,1),LMT |
TYPE:本周期限价 |
LIMITR |
LMT |
TYPE:次周期停损 |
STOP |
REF(条件,1),STP |
TYPE:本周期停损 |
STOPR |
STP |
TYPE:次周期市价 |
MARKET |
REF(条件,1),MKT |
开仓百分比 |
30% |
KCS:= intpart(tasset*0.3/MULTIPLIER/close); |
语句 |
语句 |
T语句 |
函数 |
可在图表上显示 |
不能在图表上显示 |
总之,通过函数列表,了解他们的细微差别。
10.4程式化交易的前提、步骤
(1) 有良好的交易策略,最好程式化交易前能够基本稳定盈利;
(2)根据交易策略,进行量化,建立交易系统,年回报率可能降低,但可以扩大规模,提高绝对收益;
(3) 用交易系统函数建立交易模型,按步骤,选定有关规则,进行交易评测;
①
②
③
(4)可使用前台图表程式化交易和程式化交易函数替代模型相关的几个交易系统函数,使用模拟账户进行实盘模拟测试和调试,经过一段时间的自动交易模拟,如果仍能取得稳定盈利,恭喜你,你离成功更近了;
(5) 拿出资金的一小部分,进行实盘测试和和调试;
(6) 使用规模资金,进行实盘测试和和调试,稳定后数钱就是,恭喜你成功了!
当然能够成功的只是少数,但你可能就是其中一员。
在使用金字塔程式化交易之际,我们特别提醒:任何一个交易策略如果测试结果过好,都可能存在某些不易发现的纰漏,一定要慎重,金字塔和CTP提供了极接近实盘的模拟账户,请您一定要经过一段时间纸账户的运行,确保万无一失,再进行真实账户操作。为了您和家人,保护好您的财富。
另外不要过度优化,要保持相对稳定性,但使用过程中仍要注意交易系统的适用性,经过一段时间正常运行,若某些交易标的的特征明显变化,需做相应调整,其分寸较难掌握到火候,应逐渐积累经验。
当然也可以实现全自动无人值守。
也就是说:用金字塔,可以进行纯主观的手动交易(如炒单使用闪电下单等)、系统信号加主观过滤的交易、程式化交易加主观干预的半自动或准自动交易、全自动交易等多种交易方式,完全可以满足各类交易员的需求,也可供交易员自身转换手法。
使用金字塔还有一种非常灵活的方式
-----良好头寸管理下的主观交易模式
利用一套具有良好头寸管理的交易策略,进行主观交易。
(1) 启动该交易系统,在程式化交易过程中,暂停系统运行;
(2) 根据有关图形和交易盘感进行交易;
(3) 开仓后,再启动该交易系统;
(4) 系统自动加码、止损、获利平仓;
(5) 直至有盘感手工开仓,。。。,再启动,。。。
充分发挥主观能动性和头寸管理系统的长处,做到人机合一,达到更高境界。
用金字塔制作交易系统,就像飞行员、驾驶员的自动导航仪,特殊情况一定要经验丰富的人来驾驶,但到典型情况,如天气良好、路况很好可以暂时交给电脑自动导航,稍事休息、放松一下、听听音乐、看看电影。