一.架构
我设计的架构图大概如下:
二.参考
<海龟交易法则>
vnpy
期货职业资格考试丛书
<量化投资策略与技术>
三.开发前思考
1.计算机-金融-数学,知识比重为1-3-6
2.用java还是python写都可以,架构方面没太大区别,java的interface用python的abc库一样可以实现。但是java的库比较少
3.对于CTA交易,策略最重要,性能、代码不太重要。高频交易,性能比较重要.策略需要集中信号管理型和资金管理型的优点.
4.经典的策略,比如Hans123和海龟交易法则及其优化方式,需要非常熟悉
5.机器学习只是锦上添花,可以不考虑。
6.实盘交易盈利的策略实现程序化才有价值.
7.没有经历过几次爆仓的交易员是成长不起来的.
8.谨记三条:第一,及时止损;第二,资金仓位管理;第三,纪律最重要,心态就是纪律.
9.回测必须覆盖单边上涨,单边下跌,区间震荡三种走势
10.策略在实盘使用前最好找历史上和期货的最近几天走势类似的回测下
四.开发后思考
1.回测框架怎么设计,兼容不同的第三方数据来源,不同的策略回测,下单交易引擎,不同的第三方实盘交易所,不同的数据存储方式
2.回测框架需要考虑稳定,已读,扩展性。
3.均线,海龟,多周期,多种指标信号,布林海盗系统,各种策略最好都回测一遍,熟悉内部实现。
4.交易前需要判断当前是趋势还是震荡盘,趋势需要追涨杀跌,盘整盘做高抛低吸,策略正好相反。
5.趋势盘是容易程序量化抓住的。盘整盘怎么做,比趋势难把握。
6.选择合适的交易周期,1分钟线会频繁的交易,虽然大部分交易是盈利的,但是高昂的手续费会吞噬掉盈利,三分钟
或者长一点的周期,根据交易品种判断,不是一致的。
7.根据哪种指标做动态止盈,绝对值还是,均线,kd,需要考虑。
8.资金管理根据技术信号做,还是固定手数,差别挺大的。建议固定手数。
9.回测是否覆盖了牛市,熊市,猴市。大的震荡,小的震荡。
10.同一时间,多个指标发出买入信号,是否同时加仓,控制加仓过快的问题。
11.最麻烦的,回测数据来源的问题。RQData,JQData,Wind,还是EMQuantApi,数据的质量,脏数据是很头疼的问题。
12.交易系统和券商交易软件计算出来的指标值不同,需要手动算下是数据的问题,还是计算方式,周期不同的问题。
13.语言是用java,c++,还是python,R。大部分量化平台的接口,策略会给python,c++的接口,建议二选一。
14.做CTA,Alpha选股还是套利,高频,需要一步步升级打怪,从易到难.