Marketcetera --- 一个投入400万美元开发的开源自动交易系统

Discussion in 'FIX Protocol' started by Aming, Feb 2, 2010.

  1. 安装版文件包大小和源代码文件大小怎么差别那么大?源代码就15m多,而安装文件包185m多。
     
  2. 比marketcetera好的C#系统没有开源的。一个可以看看的是 http://opentrader.codeplex.com/

    如果你说的standalone的运行策略,确实没必要这样做。但我说的企业级、高性能、混合策略、前中后台统一管理,那这样的设计就是必须的了。何况,KDB不合适作为反面的例证,因为它已经具备了我说的那些体系特征。

    FIXATDL有三个层面:strategy definition/gui rendering/flow control。你说的描述仅仅是其中之一而已。实际上FIXATDL只是类似方案中的一种(还不是主流),VENDOR和BROKER都有自己的策略实现模型(多也是基于XML SCHEMA)。这种模型的存在实际上推动了DSA(direct strategy access)的产品化和产业化,其价值和意义是不可低估的。
     
  3. 恩,受教了,大哥不仅德高望重,而且很博学,小弟的佩服刚刚的~~
    但真理越辩越清楚,我还是想补充一点,请多赐教


    1) marketcetera很尴尬,用来做大系统太小(小弟一直是做back office的,随便拉一个子系统都比整个marketcetera都大几倍),用来做小系统太大(一想到随便算个index还要从MySQL或其他RDBMS拉几个GB的数据回来我就头痛)。

    既然海友们都是搞个人系统玩玩得,实在没有必要去学marketcetera,真的浪费了。WLD很好

    2)FIXATDL真的有必要么?我理解schema的表述力很强大,逻辑变动时候集成很方便。但是schema拗口的语法和低下的开发效率真的值得投资么?我们真的有那么多机会去频繁变动逻辑么?
     
  4. 算指数怎么还要拉几个g的数据?
    你的个人系统定义不科学,在一些领域,机构丝毫没有优势,对冲和个人则有;wld有很多弱项。

    逻辑变动依赖于策略属性。要看你采取什么策略。
    (另外你非专业语句的英文,这种中英夹杂我看起来有点儿晕。写英文吧,大家都看得懂的:)
     
  5. 恩,我只是举个例子,一天的tick数据很容易就上G了,我还见过80GB的内存数据库(对,就是内存),一天就填满了。你在marketcetera里面随便算个东西就把MySQL给拉垮了。

    很赞成kuhasu,个人系统的优势就是策略多变并且没有监管,因此完全没必要在backoffice上和机构比可靠性扩充性。一个tick data source + in memory analyzer +order execution IO 就行了,费劲学marketcetera做啥
     
  6. 现在有的服务器已经支持1T的内存了
    而且从03年开始,有了非易失性内存,256G,512G一条。
    不过目前似乎只是面向美国军方,老美这方面有管制,不卖给华人。
    如果能有那样的东西就好了。

    我是想,以前一直有个想法,就是平台策略和多市场对冲的问题,这个肯定是需要上面提到过的框架的。marketcetera应该算是个选择。但是要评估真实实施,还需要多了解才行。
     
  7. 其实还有其他优劣势的问题,这里不跑题了就。难得一个不错的主题。
     
  8. 1)我只用过1.0版。印象里sql是用来存放order的,没有做行情数据的存储,这是MC不能做backtesting的原因(当然如果FIX行情网关提供历史数据下载可以解决这个问题)。如果你想在MC里拉数据是无处可拉的;
    2)使用一个平台不仅是为了实现一个具体策略,也是一种投资:经验/效率提升将在未来策略的开发中收获。我在还没有掌握任一门编程语言的时候就锁定了QD平台的前身,然后从头开始自学C#。尽管当时的一些想法在分析家的脚本上就可以实现,但如果没有早期的超前投入,就不可能在后来做一些更复杂的业务。如果你有使用KDB的环境,我认为哪怕最简单的东西你也要用它写,而不是去再弄个WLD。;
    3)海洋上有专业人士,并不都在干个人系统。我一半以上的精力也在干企业的东西;
    4)FIXATDL本身不包含策略的实现逻辑,复杂程度不高,目前多用在交易执行领域(sellside),作为投资者其实无需关注,直接使用就完了。换言之,它不是投资者自己的策略定义工具(尽管可以这样用)。
    5)MC的真正价值在于它是一个完整的、普通人可以免费获得的OMS,而不是简单的策略平台。就这一点而言,海洋上还没有替代者(包括QD在内)。
     
  9. 非常清楚,谢谢解答。:)
     
  10. 你指的QD有没有包括QuantDataCenter和QuantEngine?如果没有包括,QD的功能并不完整;如果包括的话,请解释一下为什么不能替代MC?谢谢!

    这里有QuantEngine和QuantDataCenter的介绍:
    http://www.quanthouse.com/?q=run+strategies

    顺便问一下,OMS是什么的缩写?
     
  11. OMS 在这里是 Order Manager System?
     
  12. 以前完整版的qd就包括qd、datecenter和cats,后来商业化不公开后的版本应该又有扩展了。
     
  13. 受教了,老大就是老大
     
  14. 请教老大,这里的MC是什么?:confused:
     
  15. zwz

    zwz

    MarketCetera:p
     
  16. 唉,我狂晕啊 ;)
     
  17. in memory analyzer 有哪些可以推荐的? 谢谢
     
  18. tom_sh:
    看了MarketCetera里的那个Order Routing Server可能就是我想要的实现的Order Manager System,有些问题想问问, 它和保存委托订单信息的sql(DB)之间不是采用轮询(timer loop)吧?好像一般的委托服务器好像还都是采用轮询(timer loop)方式。是不是采用MESSAGE QUEUE?还是采用其他方式?

    是不是可以支持条件单等委托指令?而不只限限价单

    是不是Order Routing Server一定要将order messages转成FIX messages?不支持FIX的交易所是不是就不支持了?还是需要自己将交易所的接口转换成FIX?

    谢谢
     
    Last edited by a moderator: Feb 10, 2010
  19. order routing是OMS的一个部分(OMS其他重要的部分还包括order life cycle管理等)。MC使用JAVA MESSAGE QUEUE做内部通讯总线,与broker/exchange的连接(仅)使用FIX。所以MC不能直接连接其他类型的交易/行情接口。
    由于MC采用的是FIX(包括FIXATDL),原理上只要broker/exchange支持,任意类型的条件单都可行。当然作为一个策略平台,任何条件单也都可以在MC客户端本地编程实现。