期货程序化交易源代码怎么开发

期货程序化交易源代码怎么开发,第1张

使用现祥绝成的交易平台,学习交易系统的语法,将自桐宴码己的交易思路转换成公式,然后执局哪行。

使用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++的代价很高。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12286560.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存