程序化交易开发者的重要经验

Discussion in 'Philosophy and Strategy' started by mashall, Feb 14, 2013.

  1. DSL功能能否详细介绍下, 哪些语言具备DSL功能。 百度找不到详细的,我是语言盲啊
     
  2. DSL 指的是不是 Domain-Specific Language?

    如果是的话,我想你可以用Visual Studio DSL Tool.
     
  3. 结合espresso过去的帖,我觉得espresso要表达的"代码与策略分开"指的是"策略"和实现的"平台(代码)"相互独立,"策略"可以是某种可"描述语言"来表述.
     
  4. 同意,不过那和伪码有什么区别呢?
     
  5. 其实关键就是 如何合理地分层分级的实现有效的 分类 和 组合。
     
  6. 就是Domain-Specific Language
     
  7. 从“简化“和“杠杆“的原则来看,你的这个方向和方法还是有点复杂了。测试的话,Amibroker, eSignal, Multicharts, TS都挺不错的,虽然要花点钱,但是很值。如果你还是觉得自己搞个回测平台,那么建议你使用 Excel,Matlab这类平台。如果你选择用C++,Java,.Net的话,希望你是一头真正的大牛,并祝你成功!:)
     
  8. 嗯。我现在系统就是运行在VPS里面,7x24,最多周末重启一次,
    机房里面的服务器不论从电源,网络稳定性和安全性,都比家里面的PC要好得多。
     
  9. 其实是有点像用某种语言去描述,和novaavon说的“伪码”,Toby提到的“DSL”差不多意思,
    怎么去实现是细节上的问题,不过大方向是这样的,
    策略是策略,驱动策略的引擎是另外的东西,
    这样分开之后的好处很多.......

    例如,一个好处之一:
    论坛里面很多人发愁程序员实现策略的时候就知道了细节,
    在我说的这个框架下面,几乎没有这种担心,
    做引擎,做策略几乎各不相干,互相不关心(也没法知道)对方的细节。 :D
     
  10. It is remarkable, rather the helpful information
     
  11. 框架方面,现有的平台不都是策略和引擎分开的么,如果你比人家的优秀,愿意分享就提出来供大家作个参考。一般的规律是平台用到的语言越简单,该平台实现的功能越少,执行效率越低。写策略用 DSL?伪码???既要马跑得快,又要马不吃草!别意淫了,学学语言吧。嫌难学学简单的,简单的都难,就请人帮你写算了。
     
  12. 看来espresso兄倾向于多使用现有的技术,减少开发周期。而我感觉c++开发个只给自己用的回测平台,也不一定会做得太复杂,好处是完全可控而且灵活。当然也可能遇到预料之外的问题,究竟如何只有自己试试看了

    有时候一路闷头做下去会忽略许多东西,感谢espresso兄对“简化方法”这一点的提醒,中途停下来换个角度审视一下,也许就会找到更好的方案
     
  13. 这种方法有的基金以前用过,不过后来发现即便是单独开发一种语言,也是会被解译的,所以就换其他方法了;而因为要有一个编译器来编译策略代码部分,其实也是将策略代码放入堆栈,也会存在相对的效率问题。:)
     

  14. "现有的平台不都是策略和引擎分开的么" ,这个,倒是真没有看出来,
    我们说的似乎不是同一个东西。 :)

    大家不是就在这个帖子里面交流经验和想法了么?

    构架,设计思想这些东西看着很虚,但是确定了很多东西的大方向。
    大方向不对,够你多忙好几年。
    不过这些东西说多了用处也不大,大多数人不可能去做一个自己都不知道的东西。
     
  15. DSL, 伪码的确是解决“策略”和“代码”分开的方法之一,所以说大方向是对的,
    但是具体实现的话,再设计一种语言大可不必,我是最不喜欢重新造车轮的人。

    发布一套这样的系统可能比长篇大论构架和思想更能解决很多人的问题,
    但是现在还没评估好把这种系统发布出来的利弊,
    之后打算在海洋做个咨询和调查再决定。:)
     
  16. 代码和策略分开,或者说用脚本解释器跑策略,这意味着要事先建设不少常用的功能库用于脚本调用。如果是下单通道,数据源,订单管理的接口偶认同;如果是用于策略开发,偶觉得这只够用于计算性能没多少要求的场合,流行商售程序交易平台就是针对这种需求;如果策略对计算性能敏感(不一定是高频交易),那么开发基础模块再用脚本调用,反而工作量更多些吧。所以这里有个前提:自己的策略开发真不需要计算性能吗?
     
  17. 不知道您是否已经把这样的系统作出来了?从我的角度上说,这样的系统即使有,也是华而不实。用户层次上的易用和该系统的内部编码层次的复杂性是成正的。伪码之类的东西不是说做不出来,而是编码很复杂,而且能写得策略和现有的easylanguage之类的没有什么本质上的区别。做不了复杂的策略,又没有性能上的优势,仅仅是为了分开策略和代码,何苦呢??况且,策略和代码不可能分开,也没有必要(分开有啥优点,分不开又如何??),要想分开最好的方式就是你写策略,另一个人写代码;)
     
  18. 这点我比较赞同。作为本贴的标题“程序化交易开发者的重要经验”,作为开发者,前提是会写代码,而不是对代码进行封装,变成伪码,供不会写程序的写策略。
     
  19. espresso兄量化开发多年,经验丰富,愿意分享他的架构设计思路还是很不错的:)