全部版块 我的主页
论坛 金融投资论坛 六区 金融学(理论版)
12304 11
2007-02-10
以下是引用irvingy在2007-2-7 1:07:00的发言:

我承认C/C++程序写好的,是一件不容易的事

我也在好几个地方看到你说,只要把模型告诉你,你就能编出好程序来,看来你对自己的编程能力还真有信心

但是实话说,能弄出模型来的,能把模型跟你讲清楚的,都会自己编程

我说编程不容易,因为是个熟练工种,只能靠长年累月积累,只靠在学校学是不够的,跟英文一样

换句话说,搞金融工程的,既不会另外请一个程序员,也不会另外找一个英文翻译

你说的我爱听............. 我就多说点吧

一个模型建立了,.......... 就要求解模型, 当然能求解这个模型的算法有很多...... 你知道哪个算法是最适合你这个模型的吗?

如果你知道了........ 哪个算法最合适你的模型, 你就要算法编程实现...... 当然这就设计到了具体的语言,你让matlab去做计算?

计算量大了, 可能它是算不出来的......我测试过C/C++的速度几乎是matlab的100倍, 再说就算你会用matlab, 我看到过很多人自己的程序,

matlab的基础是矩镇计算, 我看见还有人没有 X=zeors(n,m)就直接用X(i,j)当然这也行..... 可是这里的区别是什么呢?又有多少人知道呢?

不谈matlab了, 再说C/C++....... double a[]; 和 double *a=new doubel[][]....具体我的blog上有...有兴趣的看看吧.

还有  C/C++中的效率问题, 可能有的人编出来的C/C++的程序比matlab还慢... 他就说"....."

有人说SAS处理数据快, 你知道SAS对数据的列是有限制的, 还有,大量数据了 它会抽样..

软件解决问题,....., 这个软件越傻瓜式 操作起来越简单,. 他会为你作些处理.. 但是这些地层处理你可能不关心,那就没问题, 但是你要关心的话,.... 你知道它做的处理是你想要的吗?


我的结论是:你要学编程语言的目的是什么,我上面最要是给大家一个参考,看看你学的什么程度才能达到你的最初的目的..

[此贴子已经被作者于2007-2-10 17:54:11编辑过]

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2007-2-10 17:41:00

问题---->模型---->模型算法选择----->算法编程实现---->算法测试--->效率分析..... 如果有问题了, 还要改算法or模型,or程序问题 or ...

如果一个金融工程师在这几个方面都很NB,我就没话可说了

以后我也做金融工程的 现在主要还是做 模型算法, 算法实现.....

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-2-10 17:44:00

看看下面这个问题, 做投资组合的寸头

就是的随机数生成  不知道你们有更好的算法没有...

我以前搞类似的测试
今天写随机模拟的程序遇到了一个问题;
X1,X2,...,Xn均匀分布的随机数,Xi>=0;
X1+X2+.....Xn=1;
如何生成这样随机数的问题,假设n=5;
而且X1,..,X5 相互之间选取是公平的!!!

一开始,大家都会想到一个方法,
X1 从[0,1] 中随机取;
X2 从[0,1-X1] 中随机取;
......
X5 从[0,1-X1-..-X5].
我试了一下20个
0.3410 0.2842 0.0677 0.1643 0.0444
0.0097 0.3013 0.6653 0.0018 0.0135
0.2369 0.1436 0.3208 0.0177 0.2600
0.9462 0.0409 0.0027 0.0086 0.0012
0.4977 0.2503 0.2106 0.0100 0.0303
0.8153 0.1132 0.0377 0.0184 0.0097
0.8425 0.1087 0.0155 0.0201 0.0047
0.1197 0.2955 0.0655 0.4742 0.0046
0.7358 0.0235 0.0929 0.1437 0.0014
0.8553 0.1155 0.0127 0.0145 0.0016
0.0921 0.2226 0.2571 0.0888 0.2629
0.5569 0.1414 0.0450 0.0263 0.0640
0.3176 0.1832 0.4823 0.0063 0.0002
0.1323 0.7798 0.0608 0.0202 0.0032
0.1931 0.2242 0.1681 0.4143 0.0001
0.2613 0.5561 0.0190 0.1222 0.0039
0.1805 0.2741 0.0925 0.0702 0.0770
0.5199 0.4443 0.0165 0.0056 0.0119
0.6232 0.2762 0.0797 0.0141 0.0062
0.0348 0.8789 0.0478 0.0056 0.0113
和 8.3120 5.6574 2.7602 1.6471 0.8122
平均0.4156 0.2829 0.1380 0.0824 0.0406
这样做是有问题的,对于X5的期望几乎是X1的10倍.
我改用最保守的方法,X1,...X5 都是[0,1]上的随机数,
如果 X1+X2+.....Xn=1;我接受, 不等于就放弃
我编程试了一下 0.995<X1+X2+.....Xn<1.005
0.2172 0.4497 0.1591 0.0043 0.1728
0.1483 0.0999 0.1171 0.0322 0.6034
0.1638 0.2952 0.2006 0.3195 0.0179
0.1100 0.4344 0.1518 0.2466 0.0524
0.2527 0.3003 0.0051 0.3336 0.1055
抽了11176次才找到了5个合适的 0.00044739(概率)
如果变成取六个X1,...X5,X6
0.2980 0.0646 0.0746 0.0876 0.2419 0.2306
0.2805 0.0510 0.0425 0.3594 0.2662 0.0014
0.1765 0.0013 0.1578 0.4213 0.1302 0.1088
0.0405 0.4552 0.1629 0.1624 0.0277 0.1496
0.1266 0.0423 0.2186 0.1275 0.2813 0.1987
抽了 44661 0.00011195
这些只是近似统计...
改进...

针对这个问题,可以这样考虑(不知道能否满足你的要求):生成上面一个矩阵后再随机打乱(x1-x5)的顺序即可。请看下面代码:
a=zeros(100,5);
for k=1:4
a(:,k)=unifrnd(0,1-sum( a(:,1:k),2 ) )';
end
a(:,5)=1-sum(a,2);
%%%以下代码打乱顺序
for k=1:100
a(k,:)=a(k,[randperm(5)]);
end

sum(a)
ans =
18.5247 17.5005 23.6076 20.8922 19.4750
相差不大了吧?
如果不要求xi均大于0请参考一下:

扯远了,不好意思了!

[此贴子已经被作者于2007-2-10 17:55:34编辑过]

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-2-10 18:04:00

如果不换个讨论题目的话,实在有点扯远了.

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-2-10 18:08:00
以下是引用玫瑰猴在2007-2-10 18:04:00的发言:

如果不换个讨论题目的话,实在有点扯远了.


让有兴趣的人看看吧... 

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2007-2-11 00:38:00

国外基本是这样的

quant主要做数学模型这块 这方面数学要求比较高 一般由math/stat PhD完成

quant developer/IT developer主要完成编程这块

不过这两块在国内区别不是很大

会数学的人基本在证券公司里估计也是编程最好的人 所以就差不多了 哈哈

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群