查看: 2045|回复: 0

高频交易系统开发的模型阶段-1

[复制链接]

11

主题

11

帖子

37

积分

新手上路

Rank: 1

积分
37
发表于 2014-4-23 13:19:06 | 显示全部楼层 |阅读模式
建模软件编程
  对开发人员来说,MATLAB、SAS和S-PLUS都是模型编程的理想工具。很多金融工程师使用Excel,但处理海量高频数据时却力不从心。如果你的模型要求极高的计算性能,那你要么升级硬件,要么自主研发一套系统来支持模型。自主研发一般使用C++或C#来开发具体的软件工具,用于高速处理文件和计算。
  一般来说,模型编程要与实施阶段的程序完全分离,由两组人来实施。第一组人由交易员、分析师和金融工程师组成,在金融建模功能工具(如MATLAB和SAS)上建立模型;第二组人由软件工程师组成,他们并不对模型本身发表意见,负责根据模型要求用C++和C#语言将模型付诸实施。这一过程中,要求建模阶段要迅速,金融工程师必须尽可能快地将各种要求、设计方案和实施方案整理出来。这种分工的理由是金融工程师在量化领域可能很有优势,但未必有足够的编程能力来撰写具有高稳定性和可靠性的,用于实时交易的代码。反过来,经验丰富的程序员也未必有足够的投资知识来产生交易策略。一些交易商喜欢雇佣没有任何金融背景的纯程序员,以便他们不会随随便地在实施过程中改变交易策略。
  另一种建模编程的方式叫做“进化型建模”。建模团队选择系统中的一部分进行建模,然后在这个基础上扩展形成整个系统。这样建模阶段的代码就不必舍弃。相反,这些代码会“进化”成实施应用程序,用于实时交易。换句话说,实施系统是一系列模型进化后的最终产物。这种建模编程需要在一开始就做出高质量的代码。这一过程要求团队有极强的管理能力,适合那些经验丰富有高度组织性的团队。进化型建模专注于系统中风险最高、难度最大的部分,明确项目中的最大障碍有助于评估项目的可行性。这种做法通常适合那些在金融领域和软件开发领域都有不错基础的小团队。对大型团队来说,适合采用一种按部就班的项目开发流程。团队一上来先建立一个简单的模型,然后由简到繁不断增加和集成其他的系统。像MATLAB这样的建模语言能够将代码转换成C++或C#的形式,可以重复利用模型代码,实现进化型建模。
  回测和优化
  回测的作用一是测试交易策略是否达到了设计文档中的要求,二是基于清理过的历史数据,在考虑交易成本和滑点的情况下,对策略进行模拟仿真,并统计分析输入和输出结果。一个交易策略只有在结果达到标准的情况下才被接受,否则将会重新回到研究阶段进行重做,或者直接舍弃。
  优化是通过改变交易策略参数达到最优结果的过程。设计人员必须发现并剔除那些在任何情况下都达不到标准的参数和交易规则。
  回测和优化可以在放两个阶段内完成:建模阶段和实施阶段。建模阶段的回测和优化是为了确立或推到交易系统的设计方案。研发项目在建模阶段后决定是否继续。实施阶段的回测和优化是为了验证模型实施的有效性和质量。(国海良时期货 唐冬旖)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表