使用现祥绝成的交易平台,学习交易系统的语法,将自桐宴码己的交易思路转换成公式,然后执局哪行。
使用CTP交易接口,使用C++将自己的交易思路转换成程序代码,然后执行。
pyctp,c++ ctp,梁皮还有c# ctp,我都用过一点,不过都是只做了一小部分工作。在我看来,各种语言核心逻辑部分的代码量都差不多。区别在于基础库的完善程度和语言本身带来的开发调试效率差别。
即使对c++很熟悉,开发效率依然比不上c#,因为将来做策略开发,会频繁的修改程序,然后运行,而c++的编译速度太慢。另外,c++语言和开发环境决定了其调试的代价过高,综合下来,c++开发ctp的效率要远低于c#。
我自己的感觉,用C#开发,绝大部分时间是用于业务逻辑,而C++很大一部分时升渣做间是用于解决语言和环境直接、间接带来的问题。
从吵衡效率方面来看,经过我的简单测试,相差不大(不超过20%),因为stl和boost范式鼓励在栈上创建对象,对象复制的开销很显著,而C#中传引用的方式则没有这个代价。此外C#中创建对象的代价要小于c++堆中创建对象的代价。
当然,相对与C++,c#的限制要多一些,比如跨平台(mono相对不成熟),c#模板、运算符重载的约束比较严格等。总的来说,我倾向于C#。
对于Python,我在写复杂系统的时候感觉比较吃力,尤其是在做面向对象的架构时(面向对象机制不完善,也没有函数重载)。没有静态类型检查,时间长了,代码反复修改之后,不知道会有什么陷阱。而且因为动态类型,编辑器的自动完成和提示也很弱,以前的函数要什么参数要看着代码想一会才能想起来,很影响开发效率。
所以,我现在又回到C#了。
我的建议是,除非对C++及开发环境用的很顺手,并且积累了完善的基础工具库,否则用C++的代价很高。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)