开发量化策略的流程及思考

Author: 小小梦, Created: 2016-08-29 17:44:47, Updated: 2019-08-01 09:52:18

开发量化策略的流程及思考

在 发明者量化 上开始写策略的时候,可能和很多新用户一样。感觉无从下手,的确是这样。会写字和会写诗完全是两个概念。但是要想写诗,那是必须会写字的。 所以有个硬性条件:需要会最基本的编程。 这里可能会问,“基本”到什么程度。 看下这个: 传送门 篇幅不长,内容很丰富,足够写策略了。

  • 下面我们切入正题: 一个策略的开发流程是什么样的呢? 大致步骤如图: img

你看! 编程只是其中一环。但是是重要的一环。

- 1、建模:
    我的理解是,你的想法应该是一个靠谱的好主意(我想没人愿意付出大量精力去验证一个错误的IDEA)。所以这个好主意不是胡思乱想出来的。是通过观察市场现象、行为。数据分析,数学分析等一些科学的方法设计出的完善的逻辑、数学模型。并且要通过论证。
- 2、编程:
    这个过程就如同拿到设计图纸后造车一样。当然实际写的时候会遇到各种在 模型中 没有想到的问题,需要反复调整。经过这个过程你会深刻的体会到: “想的简单”这几个字,也会知道 策略 和 策略源码 之间的距离。
- 3、回测:
    必不可少的一步。此刻不管策略代码作者多自信,这个时候的策略代码也只是残次品。 还要经过 “回测” 这个大熔炉 锤炼。回测是在历史数据中,舒舒服服的测试。主要验证程序的基本逻辑,基本功能,验证策略的基本正确性、可行性。这个过程往往会发现一批明显的BUG。
- 4、实时行情的模拟交易:
    在明显的问题通过回测检验,排除后。回测结果接近预期的设计(至少是策略有可行性)。开始让策略程序接受实时行情模拟交易的考验。这个阶段依然会发现不少问题,这些问题更加隐秘、难以查找。所以该阶段DeBug需要认真。找错误是个基本功。(甚至我个人感觉DeBug功力比写代码还重要)。如果这方面经验不足、粗心大意,会导致一个BUG,没处理对(甚至没找到,但是误改了别的地方),进而产生更多的BUG,这种情况我经历过,说体验就两个字:“抓狂!”。
- 5、实盘测试
    终于迎来最残酷的实盘测试,策略程序要经得住实盘各种问题的摧残(网络异常,超时,交易细节问题,响应速度,容错机制 等等)。 有些问题藏得非常之深。要经过长时间的实盘测试才能体现出来。找出这些问题的根源也是需要一番功夫的。

一个策略大概需要以上步骤。反复测试占据整个周期的大部分,编码只是一小部分。

  • 经验:

    • 1、我在写第一个策略的时候也是被折磨的不轻。并且通常不要奢望第一次写能完完整整写完。最好是先看一些简单的代码,去给这些代码写注释,明白每行的作用。
    • 2、模仿一些简单的策略代码。
    • 3、认真,这个是必须的。粗心大意简直是灾难。
    • 4、耐心,“BUG虐我千百遍,我待BUG如初恋!” 保持好心态。实在搞不定的时候,去看看电视,街上赏赏美女,再继续。
    • 5、在初学阶段用好注释,用好输出信息的函数(API),在 发明者量化 上就是用好Log()函数。可以这样写Log(“运行到这里,标记A”); 把这个加入到你代码的逻辑结构里面,方便知道何时程序进入有这个Log函数的流程。活用Log可以帮你定位不少BUG。 在实际写代码的时候,经常陷入各种死循环,然而却不知道程序死到哪儿了。
    • 6、别怕! 动手吧!

More