期货和证券程序化交易系统的设计与实现
更新时间:2023-03-19 16:25:01 阅读量: 人文社科 文档下载
- 期货程序全自动交易系统推荐度:
- 相关推荐
专业硕士学位论文
期货和证券程序化交易系统的设计与实现
Design and Implementation of Futures and Securities
program trading system
作者:董振强
导师:李明楚
北京交通大学
2014年7月
学位论文版权使用授权书
本学位论文作者完全了解北京交通大学有关保留、使用学位论文的规定。特授权北京交通大学可以将学位论文的全部或部分内容编入有关数据库进行检索,提供阅览服务,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校向国家有关部门或机构送交论文的复印件和磁盘。
(保密的学位论文在解密后适用本授权说明)
学位论文作者签名: 导师签名:
签字日期: 年 月 日 签字日期: 年 月 日
中图分类号:TP311 UDC:004.41
学校代码:10004 密级:公开
北京交通大学
专业硕士学位论文
期货和证券程序化交易系统的设计与实现
Design and Implementation of Futures and Securities
program trading system
作者姓名:董振强 学 号:10135148
导师姓名:李明楚 职 称:教授
工程领域:软件工程 学位级别:硕士
北京交通大学
2014年7月
致谢
本论文完成之际,我要衷心的感谢我的导师李明楚教授,从开题一直到论文完成,李明楚教授给我提出了大量宝贵的意见,指导我逐步完善论文的各项工作,在校学习期间李明楚教授在学习上和生活上都给予了我很大的关心和帮助,他严谨的治学态度和科学的工作方法将激励我在将来的学习和工作中严格要求自己,精益求精。
还要感谢在校期间所有的任课老师,两年来他们不辞辛苦的教学使我增长了大量的知识和技能,在与老师交流和学习的过程中深化了我对各项课程的理解,这些宝贵的经历都将为我将来的学习和工作打下坚实的基础,再次对各位老师表示衷心的感谢。
另外还要感谢家人,是家人的的理解和支持使我能够在学校专心完成学业。 学业即将结束,在此期间的学习经历让我终身难忘,在此感谢所有曾经关心和帮助过我的老师、同学和朋友们!
中文摘要
程序化交易是期货和证券行业的一种重要交易方式,近年来,期货和证券市场的交易量的逐年增加,计算机和网络技术迅猛发展,用户对程序化交易软件的需求量迅速增加。但目前市场上的程序化交易软件不能满足广大程序化交易用户的实际业务需求,因此,本文目的是要设计并实现一套领先于目前同类软件的程序化交易系统,为用户提供更简洁的方法实现其交易策略。
本人参与完成了如下工作:本人在系统研发过程中通过对众多专业的金融投资者的访问,听取专业人士所反馈的重要建议,通过深入的需求分析,对系统各大主要功能模块进行设计和实现,最终形成了一套易学、易用、实用的优质程序化交易系统。本文对市面上已有的程序化交易软件功能进行了改良和重新设计,创造了若干实用的指标函数,改善了高频程序化交易、套利交易等程序化交易功能的实现性和易用性。本文的成果亦对期货和证券行业的其他软件研发人员提供良好的研发范本和参考依据,对行业发展具有重要意义。
本人依据模块化和分层架构的设计思想,结合期货和证券行业的特殊性,使用C/S(Client/Server,客户端/服务器模式)架构对系统进行整体设计,将系统分为前端显示层,中间应用层和数据处理层,三层结构清晰,层与层之间,各个功能之间采用模块化设计,这样既可以使每一层的功能更加独立,又便于日后系统的扩展和维护,在研发过程中还便于多个程序员同时对系统进行编程,提高系统实现效率。
关键词:程序化交易;期货;证券;模块化设计;C++ 分类号:TP311
Abstract
Program trading is an important trading of futures and securities industries, in recent years, the year-on-year increase in trading volume of futures and securities markets, computer and network technology rapid development, the rapid increase in the demand of the users of the program trading software. But program trading software in the market can not meet the real business needs of the majority of program trading user, therefore, the purpose of this article is a leader in the similar software program trading system to be designed and implemented to provide users with more concise way achieve their trading strategies.
I participated in the following work:I access many professional financial investors in the system development process, listen to feedback recommended by the professionals, through in-depth needs analysis, design and implementation of the major functional modules, eventually forming a sets of easy to learn, easy to use, practical, high-quality program trading systems. Improvement and re-design of the commercially available program trading software functions to create a number of practical indicators function to improve the realization of high frequency program trading, arbitrage trading, program trading functionality and ease of use. The results of this article are also well developed templates and reference the futures and securities industries other software R&D personnel, is of great significance for the development of the industry.
Pursuant to the modular and layered architecture design ideas, combined with the particularity of the futures and securities industries, the overall design of the system using the C/S structure, the system is divided into a front-end presentation layer, an intermediate application layer and data processing layer, three clear structure, between the layers, each functional modular design and function of each layer so that both can make more independent, and easy future expansion of the system and maintenance in the R&D process also facilitates plurality of programmers simultaneously programming system, and improve the efficiency of system implementation.
KEYWORDS:Program trading; Futures; Securities; Modular design; C++ CLASSNO:TP311
目录
中文摘要 ................................................................................................................. iii Abstract .................................................................................................................... iv 1
绪论 ............................................................................................................. 1 1.1 1.2 1.3 1.4 2
2.1 2.2 2.3 2.4 2.5
研究背景及意义 .................................................................................. 1 国内外现状 .......................................................................................... 3 课题研究内容 ...................................................................................... 5 论文结构 .............................................................................................. 6 期货和证券程序化交易系统介绍 ...................................................... 7 Microsoft Visual C++介绍 ................................................................... 7 EasyLanguage语言介绍 ...................................................................... 8 C/S架构介绍 ....................................................................................... 9 交易平台介绍 ...................................................................................... 9 2.5.1 期货交易平台 ............................................................................. 10 2.5.2 证券交易平台 ............................................................................. 10 2.6 2.7 3
3.1 3.2
操作系统介绍 .................................................................................... 11 本章小结 ............................................................................................ 11 客户端目标分析 ................................................................................ 12 客户端功能分析 ................................................................................ 13 3.2.1 系统交易 ..................................................................................... 14 3.2.2 数据管理 ..................................................................................... 14 3.2.3 技术分析 ..................................................................................... 14 3.2.4 策略研究 ..................................................................................... 14 3.2.5 增值开发 ..................................................................................... 14 3.2.6 系统管理 ..................................................................................... 15 3.3 3.4
服务器端功能分析 ............................................................................ 15 硬件和系统要求 ................................................................................ 15 3.4.1 服务器端硬件和系统要求 ......................................................... 15 3.4.2 客户端硬件和系统要求 ............................................................. 15
系统概述和相关技术 ................................................................................. 7
需求分析 ................................................................................................... 12
3.5 4
4.1 4.2 4.3 4.4 4.5 4.6
本章小结 ............................................................................................ 16 客户端分层设计 ................................................................................ 17 系统网络架构 .................................................................................... 18 用户权限 ............................................................................................ 18 数据结构 ............................................................................................ 19 业务流程 ............................................................................................ 20 功能设计 ............................................................................................ 21 4.6.1 系统交易模块的设计 ................................................................. 21 4.6.2 数据管理模块的设计 ................................................................. 24 4.6.3 技术分析模块的设计 ................................................................. 26 4.6.4 策略研究模块的设计 ................................................................. 27 4.6.5 二次开发环境的集成 ................................................................. 30 4.6.6 系统管理模块的设计 ................................................................. 32
客户端系统设计 ....................................................................................... 17
4.7 5
5.1
本章小结 ............................................................................................ 33 系统交易模块 .................................................................................... 34 5.1.1 交易登录 ..................................................................................... 34 5.1.2 闪电下单 ..................................................................................... 35 5.1.3 图表程序化交易 ......................................................................... 36 5.1.4 后台程序化交易 ......................................................................... 36 5.1.5 策略程序化交易评测 ................................................................. 37 5.1.6 套利交易 ..................................................................................... 38 5.1.7 多账户交易 ................................................................................. 38 5.1.8 止损止盈 ..................................................................................... 39 5.1.9 交易相关设置 ............................................................................. 39
系统实现和测试 ....................................................................................... 34
5.2 数据管理模块 .................................................................................... 40 5.2.1 行情接收 ..................................................................................... 40 5.2.2 数据下载 ..................................................................................... 41 5.2.3 本地数据管理 ............................................................................. 41
5.3 技术分析模块 .................................................................................... 43 5.3.1 分析周期 ..................................................................................... 44 5.3.2 多框架 ......................................................................................... 44 5.3.3 画线系统 ..................................................................................... 44
5.3.4 板块指数 ..................................................................................... 45 5.3.5 自定义报价画面 ......................................................................... 45 5.3.6 区间统计 ..................................................................................... 46 5.4
策略研究模块 .................................................................................... 47 5.4.1 指标系统 ..................................................................................... 47 5.4.2 全局变量 ..................................................................................... 47 5.5 5.6 5.7 5.8 6
二次开发环境 .................................................................................... 48 系统管理模块 .................................................................................... 49 系统测试 ............................................................................................ 51 本章小结 ............................................................................................ 54
结论 ........................................................................................................... 55
参考文献 ................................................................................................................ 56 作者简历 ................................................................................................................ 57 独创性声明 ............................................................................................................ 58 学位论文数据集 .................................................................................................... 59
1 绪论
本文介绍了课题的研究背景和意义,介绍了国内外程序化交易的现状和本课题的主要研究内容,还阐述了国内程序化交易软件的发展现状,说明了研发期货和证券程序化交易系统的紧迫性、可行性及重要意义。
1.1 研究背景及意义
证券和期货是金融行业中的重要分支,从世界第一只股票的发行到现在已有四百多年之久,在这数百年的历史长河中,金融行业业得到了迅猛的发展,在当今世界的舞台上,金融业扮演了越来越重要的角色,“金融”二字已不再只是专属于华尔街金融大亨们的词汇,它越来越多的渗透到各行各业,无论是信用活动还是货币流通,无论是现货交易还是金融衍生品,甚至是制造业、农林业等几乎所有行业都不同程度的受到金融业的影响和作用。
金融对当今国家经济乃至世界经济起到了深远的影响,也正因如此,金融领域吸引了大量的专业投资者以及中小散户投资者,参与者的增长增加了市场交易的活跃度,计算机的普及和网络的发展及应用进一步推动了证券和金融衍生品市场的爆发式发展,尤其是近年来,证券和金融衍生品交易量逐年迅速增加,全球各地主要证券和期货交易所的品种总市值不断攀升,现在一个证券市场的一天的交易量甚至超过了过去全球所有市场的交易总量。伴随着交易量的增加和市场的扩大以及交易频率的提高,大量的专业机构投资者和较为专业的中高级散户投资者发现传统的手工交易方式已经不能满足日益增长的市场交易需求,他们需要借助计算机的高级运算能力和先进的程序化交易软件来协助其完成交易。
程序化交易模式比起传统的手工交易模式有着显著的优势。
(1) 速度优势。对于从事高频交易和套利交易的投资者来说,程序化交易比手工下单在速度上要快成百上千倍,手工交易的时间精准度最多达到秒级别,但是通过软件程序可以使时间精准度达到毫秒甚至是微秒的级别,一个普通人进行一次交易的时间,程序可能已经进行了成百上千次的交易,这种速度优势在实盘交易过程中有着不可估量的好处。即使是在普通的下单交易过程中,程序化交易仍能借助计算机的高性能处理能力抓住更优的价格来实现成交,以增强盈利能力。
(2) 避免了人为的主观性。进行交易的交易人员不可避免的存在人为的主观性反应,例如随着市场品种价格走势的变化,交易人员的情绪会随之波动,而这种波动极有可能造成不理性的交易,这种违规的交易或将影响全盘的交易策略,因
此这对交易是非常不利的。虽然不可否认有一部分非常优秀的投资者根据自己多年的交易经验在期货和证券市场的交易中获得了巨大的利润,但是,更多的投资者的主观性在交易过程中往往是不合理的,该进场的时候退却,该离场的时候却犹豫。采用程序化交易可以避免这些不恰当的主观性操作对交易过程的影响,通过程序化交易,投资者最后获得的利润可能会低于优秀交易员的利润,却会大大高于普通投资者的收益。
(3) 分散投资风险。期货和证券市场的交易更多的是争取概率事件中的胜率,无人能确保每笔交易都是盈利的。现在已经上市的公司有数千家,用于期货交易的品种也有数百个,这还只是单单统计了中国国内证券和期货市场,如果算上全球市场,恐怕上万家也不止,那么面对这么多的品种,投资者如何能够找出优秀的交易对象,并将资金有风险控制的投入到每个交易对象中去呢?显然,如果利用手工交易已经无法实现对如此多个品种进行处理,只有利用专业的程序化交易软件才能高效、便捷的在同一时间对多个不同交易对象进行关注和交易,这样可以将风险摊薄到多个交易对象,为获得交易胜率博取到更大概率。
(4) 高效低成本的优势。程序化交易软件可以借助计算机高速运算的特性对大量的数据进行处理,利用这种高效性可以将整个交易过程的成本大幅降低,原先手工交易时,一个交易人员只能关注几只股票进行交易,若想同时对更多的股票进行关注,则需要增加大量的人力物力来实现,如果通过程序化交易软件进行交易则不同,软件程序可以在计算机性能和网络允许的情况下同时关注成百上千只股票,并对它们实施交易,而且这种自动化的交易方式具有更好的效率和准确性。
(5) 交易模式系统化。程序化交易的买卖决策完全决定于系统化、制度化的逻辑判断规则,这种逻辑判断规则是经过科学的分析和系统的量化得出的,具有逻辑的完整性和严密性,从而可以保证获得最优的交易成果。
(6) 交易方法一致性。程序化交易是严格遵循的操作纪律及基本的交易本原则,利用电脑将已有的操作规范、获利以及风险管理等条件写成程序语言,依程序发出买卖信号。由于交易方法的一致性,这样就可以实现一个投资团队成员之间的密切配合,无论是哪一个团队成员接手,交易都有章可循,交易方法的一致性使一些长时间跨度的交易策略可以得到严格的执行,还可以避免策略实施过程中因人员的变动更替而产生交易方法的变化,保障交易总是沿着正确的方向运行。
(7) 长时间交易。例如外汇从每周的周一到周五连续开盘,在进行外汇交易时,需要交易人员24小时全时关注外汇市场变动情况,在这样的情况下单凭个人的体力和精力是无法实现的,程序化交易软件则不同,它可以安装在24小时运行的服务器中,长年累月不间断的运行,从而实现无人值守的长时间交易。
综上所述,程序化交易模式比传统的手工交易模式拥有明显的优势,它可以
提高资金的利用率、保证交易盈利的长期稳定、大幅降低交易成本和分散投资风险,还可以避免人为的主观性缺点,因此非常有必要研发出一套专业、高效、低成本的程序化交易系统平台来服务于证券和期货交易,为投资者从传统的手工交易模式转化为科学高效的程序化交易模式提供帮助。
1.2 国内外现状
程式化交易,起源于美国1975年出现的“股票组合转让与交易”,随着计算机系统技术的发展和应用,用户可以实现股票组合的一次性买卖交易,即用户可以通过计算机与证券交易所直接互联,来实现股票组合的一次性买卖交易。由此,金融市场的交易实现了计算机和网络化。80年代程序化交易发展的非常快,各品种交易量急剧增加,因为各类计算机程序化功能的介入,放大了市场的方向效应;90年代,出现了利用程序化交易为主要竞争手段的经纪公司,这些公司具有丰富多彩的投资组合方式,比如FOLIOfn公司就有做多种组合:投资风格、风险订做、指数、跨区域套利等,满足不同客户的要求。程序化交易是当今ETFs和各大机构的主要交易方式,这引起了各国监管部门的重视,各国从法规上进行规范和引导,在技术上进行投入和开发。
程序化交易自70年代产生以来,历经多年洗礼而有了今日的成就。1975年,SEC(Securities and Exchange Commission,美国证券交易委员会)颁令禁止固定交易佣金(Fixed Commission on Transaction),证券交易终于进入寻常百姓家。 电子信息网络(Electronic Communication Networks,ECNs)在70年代迅速兴起。1978年,SEC又一纸法令,催生了ITS(Inter-market Trading System)。ITS是以网络为基础,使证券交易在全美各市场之间互联。ITS/CAES(Computer Aided Software Engineering,计算机辅助软件工程)以及各个ECNs,组成了全美国的电子交易网络平台。计算机技术和网络的发展,给程序化交易创造了条件。随着量化基金近年来的迅猛发展,程序化交易得到了更多的应用。根据NYSE(New York Stock Exchange)的统计数据,2010年7月12日至7月16日股票交易量为23.01亿股,其中28.7%是通过程序化交易方式产生的,根据NYSE网站统计,近年来纽交所程序化交易量所占比例基本维持在30%左右。
美国2010年6月21日-2010年7月16日每周程序化交易数据(资料来源:New York Stock Exchange),如表1.1所示。
表1.1美国2010年6月21日-2010年7月16日每周程序化交易数据
NYSE 2010.7.12-7.16程序化交易量占比,如图1.1所示。
图1.1 NYSE 2010.7.12-7.16程序化交易量占比
Fig.1.1 The NYSE 2010.7.12-7.16 program trading volume proportion
随着计算机技术的快速发展,程序化交易成为金融投资与IT(Information Technology,信息技术)技术的完美结合点。由于完全依靠交易人员的经验以及手工交易的资产管理模式受到了资金规模扩大、市场风险加剧、波动频繁等诸多问题的挑战,只有引入程序化交易系统才可以解决操作效率、风险管理等难题。因此,各大专业机构投资者纷纷投入研究并开发专业的程序化交易系统,这就使程序化交易在决策分析、交易执行等方面发挥了巨大的作用。借助程序化交易系统的分析功能,投资者可以对庞大的历史数据进行数据挖掘,从而发现新的投资机会,进一步增强了证券和期货的价格发现功能。金融业发达的国家在程序化交易系统方面的研究己经相当成熟。在美国,程序化交易量占总交易量的比重从1988年的10%上升到现在的30%左右,几乎所有的高级投资者都使用程序化交易系统来进行资产管理和交易。
程序化交易系统在中国起步相对较晚,尤其是在期货领域的应用更是不多,无论是在交易系统研究还是软件应用方面的成果都较为缺乏。不过,由于我国近年来信息技术的快速发展,新投资理念源源不断的被地引入中国,各大交易所也适时推出了套利交易指令,市场上各软件公司开发了大量程序化交易系统,虽然市面上很少见到成熟的商业化交易系统出现,但底层程序化交易和应用平台已经较为完善。对于国内的期货市场,由于成交量巨大,市场流动性好,各品种之间套利机会众多,程序化交易的发展空间十分广阔。
程序化交易在国内外都将是未来的大趋势,程序化交易量将进一步增加,程序化交易系统将不再只是由大机构投资者专用的系统工具,它将更为广泛的传播和应用到广大中高端投资者的投资过程中去,投资者对程序化交易系统的需求日益强烈,因此,本课题的研究方向有非常广阔的发展前景。
目前,我国的证券和期货等资本市场也在积极推广应用各类程序化交易软件,此时研发出一套高水平、高质量的程序化交易系统对国内程序化交易的研究和应用都有着重要的意义。
1.3 课题研究内容
通过本课题的研究,要实现创建一套高水平、高质量的程序化交易系统平台的目标。该系统平台主要面向于从事期货和证券交易的中高端专业个人和机构投资者,旨在帮助其完善并实现交易思想,降低交易成本和负担,降低投资风险,提高资金利用率和盈利水平。
在本课题研究过程中,需要将大量的精力投入到产品的需求分析上,对传统手工交易和程序化交易流程做充分细致的了解和对比,深入调研投资者对软件系统功能的要求,根据交易流程对系统进行合理的设计,在软件的总体框架基础上实现各项必要和重要的功能,例如行情接入系统、指标函数的构造、多账户下单的支持、各类套利交易的支持、技术分析、策略研究、扩展开发支持等,完成设计后,程序化交易系统具备的众多功能最终将服务于系统交易,主要目的是增强投资者交易思想的实现性并确保程序化交易顺利实施。
目前,市面上已经出现了大量的手工交易软件和少量的程序化交易软件,但这些已有软件要么不能实现程序化交易,要么不能良好的实现程序化交易,因此,专业投资者急需一款具备高水平、高质量、高实现性的程序化交易系统来实现其交易策略。我们将在研究大量调研结果的基础上对各项系统功能和模块优化和创新。例如,系统对指标函数支持,通过调研我们得知,当前市面上的软件所提供的函数不能良好满足投资者的需求,而我们将根据用户需求和交易流程加以深度
分析和研究,通过创新优化,增加函数支持量,这样将极大的降低用户的指标编写难度,提高交易策略的实现性。
1.4 论文结构
本文共包括六章,各章节主要内容如下所述:
第一章介绍了课题的研究背景、研究意义以及国内外现状,并概要说明了课题主要研究内容。
第二章对期货和证券程序化交易系统进行整体介绍,并对在设计和开发过程中所涉及到的相关技术做介绍和说明。
第三章对客户的各类需求进行详细完备的需求分析,为后面的系统设计提供可靠依据。
第四章对期货和证券程序化交易系统进行详细的设计。 第五章详细讲述了系统的实现和测试。
第六章作为本文的总结,概括本文主要内容并提出下一步研究内容。
2 系统概述和相关技术
本章重点介绍了程序化交易系统的概念和性质,对系统研发过程中使用到的编程技术、研发工具、系统架构及期货和证券行业的通用指标语言进行了简明介绍,还对系统运行环境的选取和交易平台的选取做详尽说明和介绍。
2.1 期货和证券程序化交易系统介绍
交易系统是系统交易理念和思维的物化,在证券和期货市场它体现为对行情价格的判断和分析,通过对价格运动观察和研究,得出其中有价值性的价格变动规律并应用于未来的实际交易过程中,交易系统是全面反映了交易过程中的交易对象、交易资本和交易投资者的这三大要素。
将实践证明能够获得长期、稳定收益的交易规则通过计算机语言实现的自动化交易系统,即为程序化交易系统。程序化交易是交易系统的一种实现手段,它将交易思想与计算机相结合,通过网络等现代科技手段使整个交易过程严格遵循之前制定好的交易系统,剔除各类投资干扰因素,使投资者的交易行为变得尽可能的科学和严谨。
本文所研究的期货和证券程序化交易系统将可以同时实现期货和证券的交易,可以查看多种市场行情和历史数据,还应实现多种套利交易、多账户下单、银期转账、银证转帐、收盘作业、数据管理以及各类与程序化相关的设置和函数配套功能,系统最终设计和实现后,用户可以在该系统中实现完整的程序化交易,在整个交易过程中无需人工值守。在使用过程中,运维工作量少,系统运行完全依靠程序自身,只需在例行维护时进行少量人工干预即可。整个系统架构、网络结构并不复杂,主要工作量集中在客户端实现,众多需求分析和调研工作才是系统实现的关键。
2.2 Microsoft Visual C++介绍
Microsoft Visual C++(简称Visual C++、MSVC、VC++或VC)是美国微软公司推出的开发Win32环境程序,是一款面向对象的可视化集成编程系统。它不但具有程序框架自动生成、灵活方便的类管理、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2,WinSock(Windows Sockets)网络、3D(Three Dimensions,三维)
控制界面。
它以拥有“语法高亮”,IntelliSense(自动编译功能)以及高级除错功能而著称。比如,它允许用户进行单步跟踪,远程调试等。还有允许用户在调试期间重新编译被修改后的代码,而不必重新启动正在调试的程序。其编译及建置系统以预编译头文件、最小重建功能及累加连结著称。这些特征明显缩短程式编辑、编译及连结的时间花费,在大型软件计划上尤其显著。
VC++经过20年的发展和演变,其功能变得更加完善和稳定,是许多大型软件的首选开发工具,目前VC++2010是最新的稳定版本,我们也将利用该版本作为开发工具进行系统的开发。
系统开发的语言我们将选择采用C++。C++由美国AT&T(American Telephone & Telegraph)贝尔实验室的本贾尼·斯特劳斯特卢普博士在20世纪80年代初期发明并实现(最初这种语言被称作“C with Classes”)。C++是具有国际标准的编程语言,C++是一种静态数据类型检查的、支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。
根据经验,我们知道在开发小型项目时(原代码不超过三万行有效代码))选择使用Java或者C#的开发成本是比较低的,因此,小型项目的研发语言往往选用JAVA或C#等语言。但是随着软件规模和复杂度的增加,系统功能逐渐增加,源代码量和复杂度也会逐渐增加,如果源代码行数超过三万行,甚至是达到数十万行、数百万行时,C++的系统特性开始显现效力,C++相对于JAVA和C#等语言的优势将会变得越来越明显。C++是比JAVA和C#更为底层性的语言,因此用C++开发出来的系统运行速度、扩展性能远胜于其他语言。我们可预见将来需要在现有源代码量的基础上不断增加新代码,源代码行数将会变得越来越庞大,我们选择C++作为开发语言将是最佳选择。
2.3 EasyLanguage语言介绍
EasyLanguage是TradeStation证券公司所开发的程序化语言,内建于TradeStation 交易平台中。该语言主要被用于建立指标和建立算法交易逻辑。
EasyLanguage简单、易学、易懂,即使是未曾受过专业程序开发训练的交易员,也能够轻松编写个性化的交易策略指标,该语言大多由一般具可读性的英文单词所组成,语法规则类似于日常的交流语句,这使得 EasyLanguage比一般的开发语言更加易学。所以,虽然当初EasyLanguage是被设计来给 TradeStation使用的,但其他的交易平台逐渐开始支持用EasyLanguage作为各自的指标脚本语言,
这使得EasyLanguage的兼容性大大提升,EasyLanguage几乎变成了期货和证券行业内指标编辑的通用性语言。
因此,本文也将使用类似EasyLanguage的脚本语言模式进行设计,这种语言不但具有良好的被理解性和被学习性,还能够保障系统指标在行业内具备良好的兼容性,显著降低了用户从其他程序化交易平台迁移交易策略的成本。
2.4 C/S架构介绍
常用的系统架构有B/S架构和C/S架构两种。
B/S架构是Brower/Server的缩写,或称为浏览器/服务器模式。客户机上只要安装一个浏览器(Browser),如微软的Internet Explorer,服务器上安装Oracle、Sybase、Mysql或 SQL Server等数据库。客户端浏览器通过互联网同服务器上的数据库进行数据交互。
C/S架构是Client/Server的缩写,或称为客户端/服务器模式。服务器通常采用高性能的PC(Personal Computer)、服务器等,并采用大型数据库系统,如Oracle、Sybase、Mysql或SQL Server等数据库。客户端需要安装专用的客户端软件与服务器端程序进行通讯。
B/S架构优点就是可以在任何地方进行操作而不用安装任何专门的软件。只要有一台能上网的电脑就能使用,客户端维护成本几乎为零。
C/S架构的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器,客户端的运算量不会都集中到服务器端进行处理。对应的优点就是客户端响应速度快。
使用C/S架构有着独特的优势,但是也存在许多缺陷。这种模式可以使服务器端以较轻的负荷进行运转,但是后期维护成本去比较高,C/S架构在分布式数据管理上也处于劣势。但是由于期货和证券所处的行业特性,我们必须采用C/S架构对软件系统进行开发才能满足实际业务中的速度、运算量和安全性需求,因此,我们选择使用C/S架构对软件进行设计。
2.5 交易平台介绍
目前国内有数百家期货和证券公司,参与金融服务的还有银行和基金等机构,不同的机构或公司所使用的交易平台各不相同,目前国内期货和证券市场主流的交易平台有以下几种:
2.5.1 期货交易平台
金仕达交易平台,是由SunGard Data Systems Inc.公司所研发的老牌交易系统,绝大多数主流的期货公司都配备了金仕达交易系统,该系统为第三方软件的交易接入提供了标准接口。
恒生交易平台,是由恒生电子股份有限公司所研发的交易系统,该系统也是目前主流的期货交易系统,近半数的主流期货公司都配备了恒生交易系统,该系统为第三方软件的交易接入提供了标准接口。
上期综合交易平台(Comprehensive Transaction Platform),简称CTP,是由上海期货信息技术有限公司所研发的一套较新的交易系统,该系统是目前主流的期货交易系统,国内半数以上的期货公司均配备了CTP,该系统为第三方软件的交易接入提供了更加规范和优质的标准接口。
在上述交易平台中,CTP交易平台的标准接口信息最为规范,系统并发处理能力强大,委托性能超过2000笔/秒,软件本身可达8000笔/秒,支持同时在线客户并发数为1万个客户/秒,且可以通过增加前置机进一步扩充。只要完成对一家期货公司CTP的接入研发工作,那么对于其他已经配备CTP的期货公司来说,不需要再做重复开发即可使用,这样就有利于快速打通各家期货公司的交易平台,因此我们首选CTP作为期货交易的接入平台。
2.5.2 证券交易平台
上面一节中所提到的金仕达交易平台和恒生交易平台除了为期货公司提供期货下单服务,它们还为许多证券公司提供证券下单服务,众多券商也配备金仕达交易平台和恒生交易平台作为自己的证券交易平台。除此以外,主流的证券交易平台还有钱龙证券交易平台、通达信证券交易平台、同花顺交易平台、大智慧交易平台等。
关于证券交易接入平台的选取,我们引入FIX接口作为证券交易的接入方式。FIX接口全称是“金融信息交换协议(Financial Information exchange)”,FIX协议是适用于实时证券、金融电子交易开发的数据通信标准。 它是由国际FIX协会组织提供的一个开放式协议,目的是推动国际贸易电子化的进程,在各类交易参与者之间,包括买卖双方,投资经理、经纪人,建立起实时的电子化通讯协议。Fix协议的目标是把各类证券金融业务需求流程格式化,使之成为一个个可用计算机语言描述的功能流程,并在每个业务功能接口上统一交换格式,方便各个功能模块的连接。
采用FIX作为证券交易接入方式,可以以一种规范化的方式实现对证券交易平台的接入,第三方交易软件通过FIX接入时,不需要进入证券公司的核心交易层面安装中间件,因此FIX是证券公司较为能够接受的一种接入方式,相对于直接接入证券交易柜台,FIX在IT安全性上要好许多,而且在效率上并没有多少损失。不同证券公司的交易系统各不相同,甚至同一家证券公司的不同营业部的交易系统都存在不同,如果按照传统直接对接交易系统的方式来接入证券交易系统是非常耗时耗力的,所以我们选择FIX作为证券接入方式,只要某家证券公司或其营业部提供FIX接口,直接套用已经开发好的交易模块即可,这样也有利于本系统在各大证券公司中快速普及。
2.6 操作系统介绍
当今世界主流的操作系统有Windows家族产品和Linux家族产品两大阵线,甚至还有强大的android系统、Ios系统等移动操作系统。鉴于程序化交易系统对运算量、长时间自动运行、安全性、稳定性以及多功能性等有较高需求,因此不能够选择移动平台作为运行环境。
目前,大部分用户对Windows家族的操作系统较为熟悉,因此,我们将采用Windows操作系统作为运行环境,我们默认选取Windows server 2003或更高的服务器系统作为服务器运行环境,我们以XP、WIN7、Vista作为客户端运行环境,并且同时支持以上系统的32位和64位版本。
2.7 本章小结
本章对程序化交易系统进行了概要介绍,还介绍了相关技术、相关行业知识等信息。
系统开发语言,我们将选择VC++做为开发语言,鉴于行业的特殊性和系统功能的特殊要求,我们将把系统服务和通信架构设计为C/S(即客户机/服务器模式)模式,服务器端的主要功能是为客户端提供行情服务、数据服务、用户认证等服务;客户端的主要功能是面向于最终用户,帮助用户将交易策略转化为指标语言,然后借助于程序化交易系统所提供的众多功能,最终实现全自动运行的程序化交易。
3 需求分析
需求分析是软件系统设计过程中的一个重要环节,尤其对于期货和证券市场的行业性软件,需求分析工作的优劣将决定系统实现后能否具备优良的功用。本人根据长期调研结果,对软件做了详细的需求分析。
3.1 客户端目标分析
用户进行程序化交易的基本流程如图3.1所示。
图3.1程序化交易基本流程图
Fig.3.1 The basic flow chart of the program trading
作为程序化交易软件,用户直接接触客户端程序,客户端程序将用户的所有操作封装成可以被服务器端程序识别的信息流,然后通过互联网与服务器端进行通讯,系统所要实现的绝大部分功能都集中在客户端来实现。
客户端程序要实现的最基础的功能是下单交易,为了实现最基础的交易操作和更高级的程序化交易操作,客户端程序必须实现若干配套功能与之配合,只有这样才能最终帮助用户实现其策略的程序化自动运行,主要的目标任务可以概述为以下几点:
(1) 系统必须运行稳定、高速,能够适应长期24小时连续运转,为用户从事国内外各类金融产品交易提供强大支持。
(2) 系统需要提供众多函数支持,为程序化交易策略的实现提供极大的便利性,使复杂的策略通过较少的代码即可实现,极大的降低研发人员的工作量,提高策略的可实现性。
(3) 系统需要提供国内股票、国内期货、外盘等多市场的行情或交易功能,为用户实现内外盘套利、期现套利、跨期跨品种套利等提供实现的方法。
(4) 系统需要提供优秀的多账户交易功能,为用户使用多个账户同时交易和管
正在阅读:
期货和证券程序化交易系统的设计与实现03-19
西游记1-100回练习(答案) - 图文01-27
生肖文化02-19
施工组织设计 - 图文04-13
2018年中国金属网制品行业分析及发展趋势预测(目录)09-02
高考语文试题类型及应试策略(新课标版)03-30
医保不用选也能报销的北京市医保定点专科和A类医院名单10-10
第四届中小学文化艺术节声乐展演获奖情况特04-26
邮箱使用通知08-22
- 粮油储藏基础知识
- 论文范文(包括统一封面和内容的格式)
- 经典解题方法
- 综合部后勤办公用品管理办法+领用表
- 学生宿舍突发事件应急预案
- 16秋浙大《生理学及病理生理学》在线作业
- 四分比丘尼戒本(诵戒专用)
- 浙江财经大学高财题库第一章习题
- 九大员岗位职责(项目经理、技术负责人、施工员、安全员、质检员、资料员、材料员、造价员、机管员)
- 旅游财务管理习题(学生版)
- 德阳外国语高二秋期入学考试题
- 投资学 精要版 第九版 第11章 期权市场
- 控制性详细规划城市设计认识
- bl03海运提单3国际贸易答案
- 2010-2011学年湖北省武汉市武珞路中学七年级(上)期中数学试卷
- VB程序填空改错设计题库全
- 教师心理健康案例分析 - 年轻班主任的心理困惑
- 民间借贷司法解释溯及力是否适用?
- 三联书店推荐的100本好书
- 《化工原理》(第三版)复习思考题及解答
- 程序化
- 期货
- 实现
- 证券
- 交易
- 设计
- 系统
- 高中政治哲学框架图
- 镍铝层状双氢氧化物正极锌镍电池充放电性能
- 2015年凉山会东县教师招聘资格复审及面试公告
- 聪明人是怎样思考问题的
- 客厅尺寸篇
- 基于ZigBee无线传感器网络的森林火灾监测系统
- 国海证券2012年报(金融服务资产营运)国海证券股份有限公司财务管理_九舍会智库
- 1三(下)数学分层学案设计
- 中山大学博士试题解剖学汇总1998-2013年
- 2019-学年第一学期《混凝土结构课程设计》任务书(09级路桥).doc
- 基于集团序的高等教育与区域经济差异性评价
- 各类月饼的做法
- 3-第三方物流的优点_第三方物流的缺点
- 专利申请文件翻译
- 2011年环境保护目标责任书执行情况汇报
- 大连理工大学网络安全与密码学 chap4-对称密码
- 现代教育学01试题
- 柔远卫生院健康宁夏全民行动目标责任书
- 宁德市金港名都房地产项目推广策略报告65页-2007年-3.7M
- 论农业土地制度变迁的美国式道路