龙听期货论坛's Archiver

龙听 发表于 2018-1-1 19:38

国内外证券交易系统开发平台比较

1、MetaStock:
曾经是行业的标准, 但已经落伍, 徒有其表而已.
2、TradingBlox:
做期货必备. 在资金管理上是最强的. 优化功能也非常容易掌握. 不过它的语言功能较弱, 价格较高.
用户数太少,用户反馈太少。它内置的头寸调整策略应该都能在WLD里自己用代码实现。WLD已经过很多用户的锤练,相对比较成熟。
3、AmiBroker:
速度快, 功能强, 但BT设计有缺陷. 作者开发更新快, 前景看好.
(四)TradeStation
历史悠久的TS, 有人爱有人不喜欢. 无Portfolio Backtest 功能.
tradestation已经把基本面量化 在程式中可以引用

(五)Trading recipes
TR是DOS系统,很酷地。坚持不支持实时行情,只做盘后分析。
WINDOWS 版本遥遥无期 (不算其贵无比的MECHANICA). DOS版本在历史上是独步天下的. 但现在已经被TradingBlox 超越了.
Trading Recipes和Mechanica只支持EOD,不支持Real Time,有点遗憾。

(六)Wealth-Lab
WLD,只它的神经网络模块很厉害,用过它之后,才发现它的标准功能已经足够多了。
有种把其它那几个都丢掉的冲动,可惜还无法动态接收和处理数据
功能强大周到. 是目前可用来实战的软件. 值得学习. 不过就是太慢了.
基于金融产品历史数据发展和回溯测试交易策略并利用其自动化特征达到半自动甚至全自动交易的一款卓越外软,代表着系统化交易平台的最高级别。
1)首先,Wealth Lab Developer支持拖拽构建交易策略,初学者不用编程序,可以象搭积木一样构建自己的交易系统,测试各种想法。
2)其次,虽然是外软,但是,Wealth Lab Developer通过Web读取Yahoo的数据,可以覆盖几乎全球主要股票的行情。当然也包括大陆的A股、香港的H股。虽然Yahoo提供的行情数据 是延迟的,但是,对于分析研究来说,已经足够了。真要进行高频交易的时候,想必你也有实力来解决即时行情的问题了。Wealth Lab Developer的开发商已经被美国富达收购。去富达开户,满足一定条件,就会获得这个软件和即时的行情源。
3)虽然国内用Wealth Lab Developer的人不多,而且Wealth Lab Developer上手也很快。

易金宝 国内第一家免费提供公式平台数据接口的软件,
飞狐 公式系统相当强大,函数,代码工作原理
文华 函数公式系统还是比较的强大,基本上能够实现一般的应用了,但是文华的数据传输速度不敢恭维,根本时不敢用来看盘的。

有很多行情软件都可以自编函数、甚至自编策略,进行回顾分析。
很久以前用MetaStock,自己编程序,读钱龙的数据,转换进MetaStock,然后构建系统,进行分析。
后来,国内的软件纷纷增加了类似功能,就用分析家、飞狐、通达信等。它们自带的函数功能都不错。而且,再也不用很麻烦地导数据了。
文华财经的函数功能似乎也是与它们一脉相承,但相对原始。比如,到现在为止,文华财经还不能支持跨周期引用、跨品种引用

还有因为文华的代码时工作在后台,我们无法得知它的内部运行原理,所以我们也根本就无法知道我们写的代码到底时如何执行的,代码是不是按照我们的 思路意思得到了执行呢?我们根本就不知道,据分析,文华的代码应该是解释执行的,且只被执行一次,所以也就让代码能够在文华平台上高效运行,但是也正是因 为此,才导致文华在很多方面不能实现你的思路,就算你想无数的方法去实现你的思路,代码也就一大箩筐,弄到后面你自己都看的云里雾里,而且代码错误检查功 能也很弱。其实用文华来入门还是很不错的,它的代码函数什么的比较容易上手,也比较容易上门。
易盛 这个软件我只用过一次,破解过里面的一个加密的公式,感觉这个东西除了数据传输速度快点以外,其他的都和文华差不多,甚至还有些地方比不上文华。
交易开拓者(TB) 交易开拓者软件时我目前进场使用的一个期货软件,这个东东不错。
据考证,(TB)就是已经消失了的易金宝的核心团队,同样的是山寨了

这个软件有个不好的地方,就是对你的机器硬件要求非常高,因为它的代码是每价格变动一次,就重执行一次,为了减少系统开销,所以他们的价格变动也 是100毫秒价格变动一次,用这个东西来看盘的话还是有点吃力的,如果你的机器时256M内存和赛扬CPU的话你最好还是不要用,卡的死啊!
还有就是它的代码编写类似于VB语言,如果你对编程不是很了解的话,上手有点困难,当然,开拓者网站也提供了很多的代码编写实例,俺也写了几个教 程:从一无所知开始TB编程,我想这个东西对刚入门的朋友应该有点帮助的。另外就是它的画图功能还有点弱,比如不支持三色K线的输出,但这一切都不影响开 拓者在行业软件里面的“第一个”的地位啦。

ATS,是我目前见过的最好最牛逼的一个国内“全市场”程式化自动交易系统,而且是我见到的唯一一家嵌入了资金管理的模块的!

为什么称得上国内真正的策略化系统呢?因为它的编程模版上功能实在时太丰富了,基本上能够实现你心中的任何思路,包括头寸控管、资金管理、风险控 制什么的,尤其交易策略的决策模块!这一切都源于ATS的代码执行流程,ATS的代码执行是在我们眼皮下执行的,我们非常清楚它时怎么样去执行我们的代码 的,并且它的输出功能和回测功能也相当完善,完全能够让你对交易策略的执行流程做到心想事成!

最近它还加上了货币宏观外部数据。

至于其它的软件的自动化交易功能,俺一直都没有用过,不敢啊,这可毕竟时真枪实弹的玩意儿,出问题可要致命的,所以也就不好多说了,但是凭借代码执行流程,我私下认为全自动交易功能ATS应该是最出色的!

我总结了一下,程式化交易系统必备模块:
1:平台。飞狐,大智慧,这样的
2:数据。实时的,全面的,权威的数据,最好能准确到TICK级,还能在1分钟,2分钟,5分钟正常。
3:技术指标和技术分析系统。
4:资讯(包括外挂)、或F10
5:财务模块
6:风控模块,包括仓位、头寸等组合性质的资金管理系统
7:策略或决策管理模块
8:交易下单功能。
前面的所有的都是侧重分析软件,但离交易软件还有距离。象老大说的,太多人执迷于分析和数据,和图形的好看,根本没理会软件的最终目的是为了更好的交易。各种交易指令,自动下单的流畅快捷,反倒被人忽视。

比较了tradestation, metastock, ninjatrader, TradersStudio, MultiCharts, wealth-lab, RightEdge, openquant等几种在elitetrader.com最多的平台。

Tradestation和Metastock都有大量的现成代码,使用人较多(其中有很多资历很老或者是职业trader),其编程语言相对简单,强项在于开发各种指标很方便,但做Backtesting的功能就比其他弱一些。

其他几种平台都有相对较强的Backtesting功能,各有所长。
OpenQuant, Wealth-Lab 5, NinjaTrader, RightEdge都基于.NET, 使用C#语言
Wealth-Lab 4采用类Pascal语言
MultiCharts采用和Traderstation的EZ Language相兼容的Power Language
TradersStudio使用类Basic语言
Amibroker和MetaStock比较相似,采用基于数列的formula language,Amibroker的语言介于C和Basic之间,似MT4

相对于这些平台AmiBroker有如下这些我比较青睐的优势:
运行速度快。我多次看到的一些用户说AB是他们使用的软件中速度最快的,尤其是做Backtesting时的性能,是所有软件中最快的。我在VM中装了 NinjaTrader和AB,其中NT装入的速度明显慢很多,而且已经有几次中途没有响应的情况。AB的装入速度非常快。
数据源极其灵活。这也是我非常喜欢的,目前我已经实验了用FXCM, QuoteTracker, IB作为数据源,效果都不错。使用AmiQuote下载EOD也非常方便。曾经一度犹豫是否要使用NinjaTrader,但是看到NT的数据源太不灵活 了。至少是没有像AmiQuote这样方便的数据。不能使用DDE数据源,所以FXCM或者其他的数据源也就不太可能。
作为快速开发和测试环境。我看到一些老手说他们用AB快速地实验很多策略,由于AFL基于数列,所以操作起来比基于.NET的那些语言方便快捷很多。我也 看到一些代码的比较,NinjaTrader和Amibroker相比就复杂很多。看到一个老Trader抱怨说NanjaTrader基于C#的语言对 于非程序员来说实在是太难。注:AmiBroker好像是在EOD测试上比较强,不太清楚使用日内数据做测试的情况。更新:V5.2甚至可以在Tick上 做backtesting和scanning。
集成接口很方便。今后如果要使用AB生成交易单的话,可以有很多种方法。是否能发邮件倒是没有注意。



对于分析和测试平台的一些考虑
在网上看了一些其他工具的评估:
NinjaTrader (NT) 从其运营的模式看还是和交易商的联系比较密切,数据源不开放是很大的缺点。有人评论说NT的方向是做交易平台,而在开发和测试方面,基于.Net的NT5 太耗费资源了。这也是我使用NT5的感觉,每次装入都很慢。NinjaTrader不用考虑。
• Wealth-Lab和RightEdge都是基于.Net和C#的,但Wealth-Lab主要是做测试和实验用,并不是一个完整的交易平台,数据源, Brokerage,自动交易接口都不是built-in的。而且最近Wealth-Lab的美国部分市场被Fidelity收购。WL4和WL5的差别 也较大。从这个角度来说,Wealth-Lab是不用考虑的。
RightEdge根据评价说是还没有OpenQuant那么全面,所以也暂不考虑。
OpenQuant是QuantHouse(针对机构) Quant Developer的一个零售版(原来是SmartQuant Technology 被Quant House收购了)。也是基于.NET和C#的,我看了一下其文档,发现结构组织很好。而且OpenQuant提供头寸,资金控制等方面的功能,并且有 Brokage的接口,可以做自动交易。我看到一个使用Amibroker的Trader说他用Amibroker做快速开发和测试,然后在 OpenQuant上面做更细致的分析,部署及交易。看到一些 代码,个人感觉代码工作量还是很大的。另附一个人的评论(Pasted from <<A href="http://www.hylt.net/vb/showthread.php?t=3797>" rel=nofollow target=_blank>[url]http://www.hylt.net/vb/showthread.php?t=3797&gt[/url]; ; ):
感觉不好使啊。从MetaProject工程建立Strategy似乎太累赘。一套Strategy分成market、entry、exit、money、risk等部分,有点像原版海龟介绍的
“market:买卖什么?entry:何时介入?”标准格式。每部分写成一个类似.NET里组件,然后再合成一套Strategy。这有点像TS5.0的形式,不过看上去用纯OOP写Strategy非常地复杂、烦琐、无关的代码特别多。
此款软件面向的对像是程序员或者是程序设计爱好者,特别是.NET的程序员。目前还不确定今后是否要评估和考虑OpenQuant



读后多数人意见如下:

觉得AmiBroker对编程的要求还是比tradestation和metastock要高一些,毕竟功能强了不少。不过相比那些基于.NET, c#的平台来说是简洁太多了。

比MT4也简洁很多。我原来用MT4就开发了一套框架,但是实验不同的策略时还是不够快捷。

AmiBroker,这个软件数据处理非常快,数据接口齐全,用的人也比较多。个人觉得唯一的缺点,是在全自动交易部分。如果通过IBC与IB互连,进行下单的控制那代码量就比较大。并且比较困难,非要下点苦功。
QD:面向是骨灰玩家级用户。有两种用法:一种直接在QD的界面下面写交易系统,另一种是利用QD的API自己开发属于自己的交易软件。即便是不用QD的 人也可以安装下QD,看下QD的帮助文档,对于开发交易系统都大有帮助。缺点在于,QD的没有后续的服务(假如你用D版,一般个人都用不起正版。),当 Broker的API更改,需要修改相关程序的时候就比较麻烦了。QD能够支持IB的顾问账户,但目前还有些问题。
OQ:对于IB单独账户跑已经成形的交易系统,是再好不过的了。得益于利用事件的处理机制。和QD相比,OQ没有QD灵活,QD功能更强大。

当前众多的交易平台有以下几种主要应用类型:
* 第一、看盘平台。内幕信息和盘口分析驱动交易决策,典型用户群体为大户室成员,对数据源质量敏感性高,对界面、图表和指标计算功能敏感性低,典型软件有钱龙及其仿制品、早期的宏汇;
* 第二、技术分析平台。技术分析信号驱动交易决策,其基本特征是K线数据的线性计算或模式识别,典型用户群体为MACD成员,对界面、图表和指标计算功能敏感性高,对数据源质量敏感性相对低,典型软件有分析家、飞狐、同花顺、通达信、TS2000;
技术+自动下单
* 第三、头寸/风险管理平台。不同于其他平台之处在于该平台的核心管理对象为头寸/风险决策,而非交易决策。典型软件为MECHANICA。此外,体现系统 交易思想的WLD、trading blox builder、TS/RINA、QD等是技术分析平台和头寸/风险管理平台的一个综合,本身还不能成为一个独立的平台类型。
* 第四、统计分析平台。统计分析信号驱动交易决策,统计数据覆盖面比技术分析型要宽,例如可能包括盘口数据、横截面数据和基本面数据。典型用户群体为对冲基 金,对数据源质量敏感性非常高,有特殊的界面、图表和指标计算功能要求,软件平台定制为主,常用的开发工具包括C、JAVA、MATLAB、专用数据库;
国内公募基金和部分重视反战的券商研究所,大多数囿于此范围。
* 第五、做市/套利平台。套利分析驱动交易决策,典型用户群体为银行交易室,对数据源质量敏感性非常高,对界面、图表和指标计算功能敏感性低,典型软件有X_Trader。

页: [1]