楼主: lolo525
23624 66

[其他] 论坛中的金融人有懂C语言的么? [推广有奖]

21
irvingy 发表于 2010-1-7 20:58:52
玫瑰猴 发表于 2010-1-7 17:33
lolo525 发表于 2010-1-7 14:37
7# 玫瑰猴


虽然我没学过计算机,但是我从生活中至少明白一个道理:那些说语言不行的,其实是你自己不行
我好象没说那个语言不行吧.  怎么听成那样的呢?

C 跟 C++ 虽然用同一个 C 字,它们出生的时候就不一样呀.
C# 也用了个C字, 它出生的背景是 Java 之后. 也不尽相同, 估计你没明白我的意思吧.  不要比我个人水平,说说理由看看,不在交流吗?

好象针对我个人意见多, 为了不误解,  我再加多几句吧:

             C 来自原始的计算机语言, 对于写控制,写接口, 底层次(low-level)的指令,会比较方便. 但由于他比较旧,  不利于先进的软件开发思想(啥是先进的开发思想?). 用起来不方便. 特别写商业应用程序(business application , 除了商业应用程序外,通常还有啥?).
             C++ 是来自于面向对象思维出现之后的语言, 走向了新的发展思路. 只是名字上维持了 C 字.(为什么面向对象思维那么重要? 以前的思维是咋样子的?)

             在 .NET 平台出现之后, 微软 有 用 C# 取代 C++ 的意思, 除了他的技术文档里有描述以外,你会注意到 它有 c#. net  但没有 C++.net,  只用了个临时的东西代替(名字忘了). (. NET 是用来干什么的? 除了它,这世界上还有啥类似/同功能的东西?)

             几种语言出生日期有先后,通常一种会取代另外一种.取代的意思除了用的人越来越少以外,支持它的东西,比如支持它的开发环境越来越少, 或者工具越来越少等等, 那通常都可以说是在被淘汰. (汇编语言被淘汰了没有?)

             以上是作为这语言的祖宗,微软为代表的, 在这语言上的思路.  是纵向地看. 如果横向呢, 怎么看,我留给大家讨论.

             别针对我个人,针对论点.
1) C也可以OOP,有objective-C,另外OOP不是必需的,只是适合处理某些类型的问题,有时候procedural programming是更好的选择
2) C++除了OOP还有STL和template, C#开始的时候没有template,现在有generics,只是模拟了C++ template的一小部分
3) C#没有multiple inheritance
4) C#强制garbage collection,比较安全,但是降低程序性能
5) Visual C++.NET从.NET出来的第一天就有,从来没被什么临时性的东西代替
6) 微软不是什么编程语言的祖宗,.NET绑死在windows,小打小闹可以,稍微有点规模的都在*nix上,顺便说一句,windows不完全兼容POSIX标准,linux的kernel一直都是纯C写的
7) C#和.NET是微软一家开发的,换句话说,万一哪一天他不想继续了,你别无选择

22
玫瑰猴 发表于 2010-1-7 22:12:18
如我说的,跟 irvingy 朋友同时说到的地方有差别, 特别是关于C++ 跟.NET 的关系和寿命, 也许查查就知道了.  

   补充几句,  
    "学" 跟具体去 "用", 应该不是同样一个事情. 这个是目标问题,应该清楚.
     语言里,所包含的思维方式很重要. 包括上面提到的,类似于继承性之类. 但一些次要的东西, 有跟没有,效率好些,坏些,  现在有还是, 以后补上,通常对学习来说, 不是重要问题. 而且各自都在变,都在发展.其实别说学习,就公司导入开发系统, 也会这样考虑.
     优秀的计算机语言的确可以单独存在计算机科学里, 历史上就有过好多"好"语言. 但由于没有足够的商业环境, 都事实上名存实亡. 也就是说, 计算机语言,还是要跟着商业的领头走,计算机语言生存不在乎谁发明, 在乎的是,谁带着它走完它的一生.  这个人就是它的父母.  因为附带的环境决定它命运.跟它本身好优点缺点不一定是直接的关系. 更别说它本身就会吸收改进. 如果知道 Novell 跟 NT 的关系,就是很好的类似的例子. 还有 Netscape 和 IE,,,,,, .
     至于 .NET 是"小打小闹"问题, 早就是个见仁见智问题, 我倒看到它的威力. 近10多年的历史轨迹其实也应该是说明他在蚕食着其它份额,至于何时能到你所说的 "大吵大闹", 估计你也是主要指金融,运输等等基干业务做主要平台的意思吧. 那我只能说, 我还是非常看好它. 但这是提外话了,不是语言问题, 是分散处理的系统平台问题,严格来说,跟语言本身的直接关系不大.



对了, irvingy 朋友, 上次见你出没的时候,  应该是金融危机之前的事情了, 这一年半2年来, 你提过的策略还在赚钱吗? 经得住了金融危机的考验?
比起你对计算机语言怎么看, 我倒更想知道的是这个.

23
irvingy 发表于 2010-1-7 23:27:16
我说的小打小闹,你想自己做个交易系统,交易自己的帐户,用Excel做界面,需要处理一定规模的数据,需要一定的实时计算,发现VBA不能满足要求,需要自己写个dll,C#.NET再合适也没有了

我说的有点规模,在CBOE和ISE对1000多个股票的期权报价,往少了估计,每个symbol有4个月份,只报near the money附近的10个,也就是说大概每个symbol40个option的样子,需要实时计算价格和风险,没有人是用C#的,这个是真刀实枪,不是什么见仁见智的问题

exotic option desk需要经常calibration和做Monte Carlo,没有人是用C#的,当然你写个GUI然后调用C/C++的库那是另外一回事

金融上高性能的计算,其实任何领域都是,LAPACK,BLAS,MKL,NAG都是用Fortra或者C写的,C++ template programming可以达到接近的性能,C#和java在可预见的将来都不可能取代Fortran/C/C++,C#的卖点是windows下面容易上手,java的优势在平台无关,牺牲性能是不可避免的

24
irvingy 发表于 2010-1-7 23:31:28
我的外汇帐户在危机中被抹平了,股票帐户发达了
我时常在这儿混,你大概没注意

25
玫瑰猴 发表于 2010-1-8 00:30:23
其实在我的认知里. 语言跟平台(可以简单表达成 Windows/Unix)选择是两回事情.虽然相关.
另外,基干业务通常是:  数据分散, 处理分散, 用户分散 同时再加上 庞大处理量(transaction volume), 例如, Exchange 的核心部分 .  

不觉得你对计算机部分的回答不对.
语言选择问题, 我没说过见仁见智(这个词我是是说平台选择的时候提的), 语言具体使用的时候选择,跟学习的时候选择不一样, 当然不能独立看. 有历史原因, 已经有的系统的兼容问题,开发人的知识,习惯原因,包括你说的,处理效率,开发成本,维护成本甚至包括一些政治性的问题等等来决定的. 你上面说的,不管我知道不知道的,都认同. 但不认为是个  因此, 所以 这平台或语言  如何如何的依据.
另外,其实你所提到的那些例子的地方, 明摆着就是这10多20来年 *NIX 就是最被 windouws 蚕食的主要部分之一.

我非常认同你所指出的, 这些地方, 毫无疑问, 语言上, 仍然还是C/C++的世界.
我也很清楚地听到你说的 :                " C#和java在可预见的将来都不可能取代Fortran/C/C++ "  

我觉得通过这样的讨论, 这个问题, 跟其周边的问题, 都已经看得比较清楚了.达到了交流目的.
===================================================================

听过你说你有外汇策略, 现在才知道也有股票策略。那恭喜你.有机会透露点,让我也能跟着发达一点点.
如果下来几个月经济,股票市场, 真来个 double dip , 希望你也准备好了!!!!!


你的跟贴总是让我学到东西.  谢谢

26
magicstory 发表于 2010-1-8 09:08:26
我是学软件,工作也是搞软件,这段时间却对金融非常感兴趣,能给我指点条路不?软件和金融还可以结合起来么?

27
534818383 发表于 2010-1-8 12:55:59
会了总比不会好。我是金工的,学了就是为了考二级证,目前还没有发现实用的地方,不过编程大概东一下还是挺好的,希望能帮到你,
生活过的开心就好,不要想太多的压力。。。。

28
zhangdingban 发表于 2010-1-8 15:24:15
哎,太难懂了啊

29
wentinglin 发表于 2010-1-8 15:32:56
混合人才是最需要的

30
abelus 发表于 2010-1-9 10:49:37
C++最好能用点,不少金融方面的library是这个语言做的。
不过如果不是偏计算机的,还不如精通Matlab、R\S、Python之类的,做原型开发和backtest的时候更加小巧便利点。

话说回来还是数理基础上的金融理论掌握最为关键吧。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群
GMT+8, 2026-1-9 15:58