用64位软件做系统测试和自动交易,大家对硬件有何建议?

Discussion in 'General Topics on Software and Data' started by cat, Jul 20, 2010.

  1. 以前内存不便宜,只能用几十,几百兆内存去虚拟一个硬盘,然后很多I/O操作太频繁的东西放在上面运行。现在内存便宜了,虚拟1G,2G都没有问题。RAMDISK的免费版本只能虚拟到4G内存,使用更多内存的版本要收费,不过我现在觉得2G都很奢侈了,哈哈 :D

    把VMware的虚拟机工作目录放到内存硬盘上面之后感觉还是很明显的,快很多。毕竟是在内存里面,硬盘的速度和内存简直就是蜗牛和兔子比。

    使用内存硬盘唯一的缺点是突然掉电之后就完蛋。关机前必须把上面需要保留的文件拷贝回硬盘,要不一关机就全部消失了。

    内存硬盘的另外一种用途是作为pps, pplive, emule这些P2P软件的工作目录,减少非常多的硬盘读写。
     
  2. 如果你google “RAM disk"的话,会有很多,其中很多收费的,但其实性能还没有免费的RAMDISK好。

    我用的是这个RAMDISK
    http://memory.dataram.com/products-and-services/software/ramdisk

    下面有一个12种RAM DISK的I/O性能比较链接,你可以看到免费的这个RAMDISK (第6个)非常不错:
    顺序读写速度比普通硬盘(7200RPM)至少快20倍
    512K块读写读写速度快45-60倍,
    4K碎块读写速度快230-520倍!

    这种速度上的差异,再加上amibroker的话,做系统回测可以说是最完美的组合。
    内存硬盘应该也可以和其他基于.net的平台一起使用,速度也可以提升,但是没有实验过,不知道具体效果。


    参考:12内存硬盘软件性能比较
    12 RAM Disk Software Benchmarked for Fastest Read and Write Speed
    http://www.raymond.cc/blog/archives...benchmarked-for-fastest-read-and-write-speed/
     
  3. 将工作目录放到内存硬盘,是个好主意。
    但是,工作内存的东西都不保存吗?手工另存会不会不方便。
    那一些工作目录放到内存会较好?
     
  4. 看了一下,一般也就: RAMDisk is also great for storing frequently accessed data such as temp files, page files and database index files.
    这些比较适合内存硬盘,
     
  5. 是啊,我有时backtest一次,要20-30分钟,如果用内存硬盘,应该会飞快吧!:eek: 过两天把系统设置起来。

    对了,expresso老兄,我看到你以前推荐用twsstart来自动启动tws,我刚刚就下载了一个试试,可是居然搞不明白在自动启动twsstart之后,它如何自动去启动tws??要自己写个简单脚本吗?还是在程序里面的哪个选项里设置一下?:confused::confused:
     
  6. 是的,当然指自动。
    受本贴的启发,想在上海找一个VPS,让连上海期交所的速度提高,也稳定些。
    但不知用虚拟机的VPS性能如何,网络延时增加多少。
    要是虚拟机造成的网络延时,造成连上期所的延时和远程连差不多,那VPS的意义就不大了。
     
  7. twsstart会自己启动TWS,不用写任何脚本,你仔细看一下那些设置。

    另,我现在彻底不用twsstart了,都是用IB gateway,这玩意不错,占用资源明显少,而且不会自动退出,我现在都是让它运行一周,周末重启VPS。这样比较简单。:)
     
  8. 哦,转用gateway了,同时可以login多少个client啊?最多也是8个吗?我看到有人提到这个,不过还没试过。具体细节怎么样,给个链接好吗?谢谢!
     
  9. BG兄,我的回答比你快一点 :D
     
  10. :D:D:D:D 老了!
     
  11. 64b 比 32b 高效是肯定的。其他条件不变的话,字长大,效率高。

    SSD IO 比普通硬盘强多了,寿命目前来说也不是问题,唯一的问题是价格。

    2G 虚拟盘跑 xp 也太那个了,只能装些小软件玩玩。


    backtest 长,一般来讲,和你策略的算法和数据量有关,和硬盘 IO 基本无关。别指望换了 SSD 甚至 RAM 盘能有多大提升。

    另外, win7/2008 的缓存机制已经很好了,完全不用 ramdisk+xp 之类的解决方法。你 ami 回测时,最多第一次回测系统加载数据时 IO 比较大,稍慢些。其后的回测,基本上数据被系统缓冲在内存里了,你内存足够的话。现在,2-4G 内存现在很普遍了,ami 回测的历史数据有多少?几百个 M ?还是几个 G 的 tick?。
     
  12. VPS的性能取决于很多因素,比如主机(host)的性能,主机上面有多少VPS,每个VPS使用CPU, 网络等程度。一般VPS提供商都有一个“fair use"的政策,就是同一个主机上的VPS平分CPU和网络资源。内存和硬盘空间则是各个VPS独占。这自然是内存越多越好,硬盘空间到是够用即可。

    网络延时?不知道你指什么,使用VPS最大的一个优势应该就是网络连接吧,这取决于VPS提供商所在机房的网络环境。不过这种服务器级别的机房网络应该比家用互联网的连接要更稳定吧。VPS的另外一个优势就是可以7x24运行。
     
  13. IB gateway我没有具体的链接,就是下载最新tws安装之后就能看到IB gateway的启动图标了。设置也很简单。最多多少个链接我还真不知道,我现在只有一个连接 ;)
     
  14. 谢谢你!twsstart自动启动tws平台的事儿我刚刚google了一些英文资料看了一阵,搞定了,原来是在task manager里面启动twsstart的时候要加参数/A。

    我同时连接IB的程序有7-8个,所以有那么一问。IB gateway的讨论,我在elitedaytrader也找到一些。不过没觉得有太大的好处,就是省掉一些资源而已,对吧?内存我倒是不缺,用这个GATEWAY仍然是要启动一个中间软件嘛!IB就不能跟别的broker一样,让我们的程序直接连接他们的gateway吗?:mad:
     
  15. :confused: 没看懂。如果你用IBgateway的话,你的那一堆程序就直接去连gateway了,根本不需要再启动tws的。gateway又去连接IB的那一堆usfarm, data farm去,这个你都不用管的。
     
  16. 谢谢espresso的指教。
    我说的网络延时,大致就是ping值。
    我在广州ping上海的下单服务器,同样是电信,要3,40几ms。我是希望如果在上海找到合适的vps,这个ping值在10ms以下就好了。

    而这个vps下的ping值应该是物理网络到物理机器的ping值加上虚拟机和虚拟路由里面的延时? 我对虚拟机的延迟没有数值概念,所以请教一下。
     
  17. 你还别见笑,我就是那些nnCORE,nnnGB, nTB的东西见多了,所以爱好有点跑偏,现在比较喜欢在XP上鼓捣点小软件和VBA。;)

    如果你见到全部cpu都在100%冒着烟运行着,你会发现读任何一个文件都很慢。为什么?每次I/O操作也需要cpu去调度,甚至去等待,本来cpu已经很忙,却还要去照应象蜗牛一样慢的硬盘,是不是没事找事?同理,很多回测都是非常占cpu资源的,回测的时候通常都是cpu在100%的用,任何涉及磁盘读写的操作(包括在page file上的换入换出)都只会让系统更慢。如果这个所谓的磁盘就是一块内存空间的话,那就避免了任何物理I/O,这就不会给已经很忙的cpu添乱,是否同意?

    至于你说的缓存机制很完善,再完善的缓存最终要写回磁盘,这也是任何操作系统都离不开磁盘缓存的原因,unix上有swap分区,windows上有page file。最主要的是,我不能保证amibroker每次回测是把一个交易品种的历史数据全部读入内存,还是分段读入内存(从AFL的工作原理来看,一次读入的可能性是有的),但是做多品种,10年以上的策略测试时,肯定存在大量磁盘读写。另外,回测过程中我发现其实一直都有很多磁盘读写,生成了临时文件,并且测试结果也要写回磁盘......

    不过我还是比较尊重事实和数据的人,尽管我是感觉把XP放在ramdisk上面明显快了很多,但还是缺乏可比较的数据。等我有空的时候,把以前那个运行6个多小时的回测翻出来运行一下,看看到底ramdisk是否真的能加速回测,能快多少。