很多人写CTP都是为了自动交易。
费好大劲,CTP接口写好了,该往策略方面靠了。
有同学说:“那简单,把文华的策略翻译到CTP里去。”
姑且不论这么做是否可行。我这篇文章要说的,不是这么简单的一个东西,而是一个综合性的平台——
对多个策略进行历史测试、实盘运行;
能随意编写策略,想改就改,想加就加;
测试时,要能随意选择合约、周期、时间范围、参数范围,能随意设置滑点量、手续费、盘口差、保证金率。还有,要有组合测试,我要多合约、多周期、多策略、多参数的任意组合。测出来,不管是单个还是组合,我要看到:盈利值、回撤值、胜率、盈亏比、资金占用等等指标。
实盘运行时,要和历史测试一致,就是说在同等走势、同等参数、同等滑点的情况下,实盘盈亏与历史盈亏几乎是相等的,其误差在可接受范围内,所谓可接受范围就是说让我相信历史测试结果能够代表“假如在历史上这么做了就确实会赚这么多。”
实盘运行还要有风控——漏单了怎么办,套利瘸腿了怎么办,账户持仓与策略不一致怎么办,停电了怎么办,死机了怎么办……都要有应对措施。
有同学说“这是公司用的东西啊”,对就是公司用的,我在广州的一家基金公司当技术总监干的就是这个。但个人也不排除有这样的需求。公司或个人有以下想法时,简单的程序化软件就无法满足要求了:
1.不想交年费或手续费给某些服务商;
2.不想策略泄密;
3.策略多,同时做的品种或周期多,对组合、风控的要求高。
那我先展示一下,一个自制的程序化软件能达到什么程度。这不是我给公司做的软件啊,我先说明一下,这是我自己用的。
历史测试:
策略是自由修改的:
可以搞参数优化:
可以搞组合测试:
实盘出信号、下单:
实盘看资金曲线:
实盘监控:
甚至支持套利:
那么这样的软件是怎么做出来的,下面分几节课来讲。