25w行行情数据~运算出资金曲线 总共7组参数进行优化 花了40多分钟才完成 我的策略是非常非常简单的 这种运算速度正常吗? 是我写的回测程序太复杂还是数据量太大的问题? 运行的时候matlab一点也不卡~CPU占用也只有20%左右 有无办法让matlab占用其他80%的cpu把速度提高?
谢谢楼上的回复 matlab不是可以处理大数据吗? 25万行交易行情数据~应该不算非常大的数据吧? 我想请教处理过几十万行以上时间序列数据的朋友几个问题 matlab运算慢有当然可能是我写法有问题也有可能软件本身运算速度只能这样 问题1 处理过几十万行以上时间序列数据的朋友~你们的速度是否跟我一样? 问题2 如果你们的速度一般可以比我快的话~你们是用什么办法提升运算速度的?我看了些matlab处理bigdata的东西~预分配变量空间~少矩阵运算~我都试过了~但还是觉得速度慢~matlab只占用了我20%左右的CPU~有无办法让matlab占用我100%的CPU全速跑运算??
我系统回测,tick数据2w条约0.6s,按照你的20w约6s,即一个参数组合是6s,总时间是多少看你组合参数多少。当然,我用的c#。按照以前做过的测试,c#比matlab快10~100倍以上,你估算下看是否快这么多。
其实matlab运行效率还凑合吧,不像很多人想象那么差。 多从算法上找原因。不要用cells之类的复杂类型;矩阵操作多用系统函数变换实现,尽量不要自己写循环处理。等等方法,自己开profile研究一下,一般不难搞定。 实在要求效率就转c++,不过运算效率上去了,估计研究效率会降下来,总的来看还未必划算,除非模型稳定了。 数据量如果真的太大,就考虑引入数据库,我用mysql觉得基本够用。 另外还有个思路,如果你的算法前后关联不大,而仅仅是要处理的数据大,那可以引入分布式处理。