(一)前言
相信各位在使用Multicharts都有共同的經驗,每當啟動圖表的時候,往往會碰到開啟圖表非常久,畫面一直停留在"連線中"的問題,如果只有一兩張也就算了;若您圖表一多,等到開完圖可能都快睡著了。針對這樣的問題,有沒有辦法讓它變得更快呢?答案是有的!!這個方法便是透過所謂的RAMDisk來加速。
RAMDisk,顧名思義就是把RAM(隨機存取記憶體)模擬成硬碟的意思,由於RAM不像硬碟有磁碟、軸承等等物理因素的限制,而是採用電子訊號來讀寫資料,所以速度上具有絕對的優勢;不過缺點就是,一旦關機斷電之後,資料就無法再儲存了。
早期的RAM報價昂貴,容量又小,所以給作業系統及軟體可能都不敷使用了,RAMDisk的想法無異於癡人說夢。不過目前的RAM,不僅時脈快,容量動輒好幾G,報價又相對便宜,利用RAMdisk可將多出來的空間模擬成硬碟,給像Multicharts這樣需要不斷讀取資料的軟體使用,將快取及資料庫等相關資料放在RAM中,利用RAM存取速度快的特性,不僅可以加速軟體讀取資料的速度;同時也可以保護硬碟磁軌,減少來回讀取資料對於硬碟的傷害,可謂是一舉兩得。
本篇文章,就是跟各位分享,如何透過RAMDisk,來幫助Multicharts加速,您將可看到您的Multicharts透過RAMDisk之後,存取速度將擁有開外掛般的提升,圖表不會在一直出現連線中了,對於使用Multicharts的用戶而言,非常的具有實用價值。
(二)建構自己的RAMDisk
要進行Multicharts的調校之前,必須要先建構RAMDisk,這有兩種方式,您可以直接到坊間購買所謂的RAMDisk,它是用多條的RAM直接透過ATA/SATA建構成硬碟;當然,大多數人和我都一樣應該都沒有上述的東西,就只能透過軟體,將現有運行的Ram中規劃出一點空間出來模擬成硬碟使用。
目前,市面上有多款RAMdisk的軟體,有免費也有付費的,這邊我們先示範一款Dataram公司所提供的RAMdisk軟體來建構RAMDisk。
#下載位置
您可到以下網址來進行安裝。此軟體有提供個人使用及商業使用版本,個人免費版有4G的容量限制。http://memory.dataram.com/products-and-services/software/ramdisk
#安裝過程:
1.將下載後的軟體放到桌面,按Next執行。
2.點選” I Accept the license agreement“後按”Next”。
3.輸入個人資料,點選”Next”執行。
4.您可以按”Browse”修改安裝資料夾,或者直接點按”Next”執行。
5.點按”Next”後進入安裝程序。
6.程式安裝中,下方會有進度顯示。
7.安裝完成,點選”Finish”完成安裝。
#建構一個虛擬RAMDisk磁碟槽
1.在您安裝好RAMDisk之後,按開始會出現”Dataram RAMDisk”的安裝資料夾,您可以點按”RAMDisk Configuration Utility”進行相關設定。
2.點按”Settings”的頁籤,您可以調整Disk Size來設定RAMDisk空間,同時可以選擇FAT16或者FAT32的硬碟格式,設定好後可按”StartRAMDisk”執行。
3.作業系統會出現安裝訊息,點選”安裝”。
4.此時畫面右下方,會出現設定RAMDisk的進度棒。
5.設定完成後會出現”RAMDisk Started successfully”。
6.這時候,您可以看到出現自動播放的選項。
7.同時”我的電腦”中將會出現一個新的磁碟代號。
#進行RAMDisk備份設定
有了虛擬的RAMDisk之後,在前文中有提及,RAM有關機後斷電的特性,所以在關機後資料會消失不見。若您需要開機後把資料留存下來,就必須要在關機前將RAMDisk的資料將寫到硬碟中備份起來,重新開機後再重新寫回RAMDisk。
1.開啟”Dataram RAMDisk Configuration Utility”,進入”Load/Save”,分別勾選”Load Disk Image at startup”以及”Save Disk Image on Shutdown”,並可在”Filename”中選取儲存及讀取映像檔的資料夾位置。
2.按視窗右上角的”關閉視窗”後,會跳出是否儲存RAMDisk的設定,點選”是”。
3.由於已經啟用了RAMDisk,這時候會跳出”設定將會在下次啟用後生效”的提醒視窗。
到這個階段,建議您先將RAMDisk關閉,再重啟一次;就可以在開關機之間不必擔心RAMDisk會因為斷電造成檔案遺失的問題了。
(三)利用RAMDisk作為Multicharts加速利器
#搬移Multicharts快取到RAMDisk中
在這個階段,您應該已經擁有一個RAMdisk,同時也具有備份的功能了。接下來要回到我們的正題,就是幫Multicharts加速。由於Multicharts過去在開啟檔案時,必須要將價格資料先放到一個空間去作為快取,過去這個部分都是由硬碟來擔綱,您可以在Multicharts開啟圖表時,去預設的資料夾users\USERNAME\AppData\Local\TS Support\Multicharts\Cache中觀察,便可以看到裡面存在一些Storage*等等的檔案在裡頭。(USERNAME為您自己的使用者名稱,若您是券商版,您的資料夾TS Support後面會接券商版的名稱,例如Capital Multicharts或者Yuanta Multicharts,若您是x64版,Multicharts的資料夾名稱會變成Multicharts64)
現在,我們只要將這個快取的位置變更到RAMDisk上,就能享受到Multicharts加速的功能了。
1.到”開始”的地方,選電腦按右鍵,畫面會出現”管理”,點選左鍵進入。
2.選擇您的RAMDisk磁碟機代號,按右鍵點選”變更磁碟機代號及路徑”,再按左鍵進入。
3.此時畫面會出現”變更代號路徑”對話框,在左下方處按下”新增”。
4.畫面會出現路徑,點選”掛在下列空的資料夾”上。
5.您可按下瀏覽鍵,點選剛才原本的硬碟快取資料夾,再按確定就大功告成了。
6.為了確認是否掛載成功,您可以使用MC開啟一個新圖表,同時在RAMdisk的磁碟中,可以看到快取檔案已經在裡面了。
同時,享受一下開取圖表的快感吧!
#搬移Multicharts資料庫檔案到RAMDisk中
看到這裡,想必您已經開始享受開圖表加速的快感了!我們索性一不做二不休,也把資料庫整個移到RAMDisk試試看。一般而言,與資料庫有關的檔案有三個,您可以在C:\ProgramData\TS Support\Multicharts\Databases中找到這幾個檔案分別為:FBPORTFOLIO.GDB、TSCACHE.GDB、TSSTORAGE.GDB(若您是券商版,您的資料夾TS Support後面會接券商版的名稱,例如Capital Multicharts或者Yuanta Multicharts,若您是x64版,Multicharts的資料夾名稱會變成Multicharts64)。
同樣的,我們也要把它丟到RAMdisk中(此時請先check一下資料夾的大小會不會超過RAMDisk空間喔)。在此之前,建議您先將這三個檔案做個備份放在硬碟中,以備不時之需,同時檢查一下RAMDisk是否已經做了備份的設定,以免一開機所有的東西都不見哦!
1.先將上述那三個檔案搬到您的RAMDisk槽。
2.點按下方的視窗工具列,在下方的空白框打上”regedit”,進入”登錄編輯程式”。
3.您可在畫面中,找到以下的路徑HKEY_LOCAL_MACHINE\SOFTWARE\TS Support\Multicharts\DataBases\Portfolio,找到登錄的字串值Path,同時 會發現它指向前文提到的路徑(這裡是用64位元做示範,所以資料夾名稱為Multicharts64,若您是券商版,Multicharts的安裝夾會變成券商的名字,例如Capital Multicharts或者Yuanta Multicharts)
如果您在64位元的作業系統上安裝多套Multicharts,登錄的相關機碼有可能會改到HKEY_LOCAL_MACHINE\SOFTWARE\Wownode6432\TS Support裡面,若您真的找不到資料夾,可以到檔案的編輯-->尋找裡面搜尋相關的機碼及字串值位置)
4.找到字串值後,更改裡面的內容,將畫面中的Path路徑,指向RAMDisk的檔案位置。
5.仿造4,HKEY_LOCAL_MACHINE\SOFTWARE\TS Support\Multicharts\DataBases\Storage的地方,分別針對兩個值做修改。
到這裡的話,就大功告成了。您可以開啟Multicharts圖表,選按新的商品,同時再把它關閉,再到RAMDisk的資料槽中,確認資料的修改日期是否有更新,便可知道設定是否成功了!!
(三)測試結果發表
為了讓大家了解使用RAMDisk前後的差異,小弟這裡也進行了一些些簡單的測試,來比較搬移Cache以及DB到記憶體後的差異。
測試平台:windows7,8G Ram,1G Ramdisk
測試資料期間:tick Data,EC1 (20010701~20121101),TXF1(1998/7/22~2012/11/01)
測試流程:每次開啟MC前先將快取清掉,模擬第一次啟用沒有快取的狀況。每個
測試進行三次取平均值。Normal為原始MC的安裝環境,Cache為使用
記憶體作為Cache來源,Cache+DB則是同步搬移Cache及DB到記憶體。
(四)後記
使用RAMDisk之後的MC,再將快取檔移到RAM中時,速度會明顯提升,反而是移動資料庫相對就覺得沒有那麼有感。但不論如何,若您的RAM夠大,這樣的優化的確能避免每次一開啟Multicharts都會等很久的問題。只是也要提醒您,當RAMDsik的空間調整過大,或者RAM本身容量不足時,這樣的設定反而會拖慢整體效能,欲速則不達哦!建議您視記憶體空間及電腦配備等因素做適度調整,才能打造一個最好的電腦效能。
一時之間忘了把結論打上去...呵
1.以相同資料來看,所有的數據都顯示:將cache與DB移到RamDisk中能夠確實有效的提升開圖時間。 其中又以啟用Cache的影響對反應時間的減少貢獻最多。
2.MC灌在不同版本的作業系統,就比較感覺不出差別,甚至有些像TXF1的部分64位元還相對落後於32位元版本。 這部分也許還可以再深入了解一下。目前的理解是,64位元是連線到公司測試的,32位元是在家裡測試的; 有可能是多開了一些軟體例如msn,或者遠端登入的時候所造成的。
我的電腦是 MC8 X64 + W7 + i7 + SSD + RAMDISK ( cache + TSCACHE.GDB 不含主資料庫 )
開三個工作底稿,30個圖表視窗,每個圖表是開秒線,大約每個圖是 90天~120天左右
從無到有的啟動,只要 15 秒,中間有1~2秒的時間是滑鼠去點兩次的確定
對於SSD的使用者,可能只會快一點點
但是好處是SSD就不會因為 CACHE 而浪費寫入次數(壽命)
對於非SSD的使用,改善就會蠻明顯的
想請教:
如果我的ramdisk不勾選備份還原,而且只設cache在ramdisk中,這樣重開機後運作會不會有問題呢?
(因為我是使用SSD,主要目的是為了保護SSD的壽命,而主資料庫還是存在C:\底下)
謝謝您!
不會有問題。
會分享這篇的主因就是........RAM實在太便宜啦!大家快救救台灣的DRAM業。
依DRAM的特性,拿來放這種暫存檔是最好不過的了。
再加上現在RAMDISCK寫得都很好(有定時、即時或關機回存),就算放資料庫也是不用擔心。
整個做完,等於是策略執行時,完全不會有IO的動作,可以說是快到不能再快。
請問哪位大大
在RAMDISK Configuration中 Basic Setting
如果硬碟格式是NTFS
要如何勾選
那邊選的,並不是你現在使用硬碟的分割模式,
而是ramdisk裡面的分割模式,用fat32就可以了啦。
如果只搬Cache檔到ramdisk的話,那平常接收報價進來跟策略的執行運算上是否會加速呢?
1. cache 關掉MC就會被刪掉了,所以還沒到關機它裡面就沒有檔案了,所以不用另外存東西
2. 至於即時模式時的加速問題,基本上會有一點點點的幫助,但是應該是感覺不出效果
請問對策略最佳化及PB回測之速度 是否也有幫助
對於最佳化應該沒幫助
對PB多商品,會有幫助
本來只有 8G 的RAM,切3G來當 RAMDISK,沒辦法開 5點K棒,從20010101到最近一天
所以,昨天去訂了一條8G的RAM,不到一千元
剛剛試了一下,把RAMDISK設到5G,終於可以用RAMDISK來開 12年的TICK級資料了
可見,若沒有使用RAMDISK的話,它要先在 HD 中挖出接近 5 G 的檔案空間
再去產生K棒,這樣看來,使用TICK級的長時間資料
對SSD 是會比較傷一點
PS:它開完資料(TICK)後,會自已整理(5點K),刪掉一些東西(TICK),最後RAMDISK中的空間還剩下2.7G,但是過程中它最多會吃到 4G以上,不到 5G
前天有人問到精密回測的速度,我用印象中的數字回覆他 所以今天我還是再做了一下測試
開一個台指期 5分K的畫面,上面放了 布林通道 LE 及 SE 再放一個訊號去記錄時間 程式碼如下
once print(currenttime_s); if LastBarOnChart then print(currenttime_s);
第一次先跑 沒有開精密回測 + 沒有IOG 的時間 101648.00 101649.00
花費 1秒完成
第二次再跑 打開精密回測 + 沒有IOG 的時間 101915.00 101941.00
花費 26秒完成
第三次再跑 打開精密回測 + IOG 的時間 112323.00 112324.00 112325.00 112331.00 112334.00 112554.00 112831.00 112831.00 112831.00
跑第三次時才發現我的電腦因為升級到 MC 8.5 的版本,所以之前的RAMDISK
CATCH 功能沒有了 所以就重新設定了一下
另外又發現這樣的時間記錄是錯了,它沒有記錄到精密回測的讀檔時間 所以只好給它先跑一下 TICK LOG,再重開工作底搞 去看整體時間
112334.00 這是前一次最後的結束時間 112554.00 這是開始RUN程式的時間 112831.00 這是程式跑完的時間
所以讀TICK精密資料時間是 25:54 - 23:34 = 2分20秒 程式(BB LE + BBSE + 秀時間)的IOG執行時間是 28:31 - 25:54 = 2分37秒 所以 合計花費時間是 5分鐘不到
請問:您的16G RAM現在如何分配使用?應該要留多少給win7系統呢?另,如果把pagefile設定到ramdisk中,對策略最佳化回測之速度 是否會有幫助?THX
我設 8G的 RAMDISK,空很多,之前設 5G 就夠了
pagefile 是RAM不夠用時才去吃HD來當RAM
目前RAM都用不完了,基本上pagefile是沒有功能的
用到它只會讓 系統變慢
我是用元大版~為什麼都找不到版大所說的那些資料夾??
客服一號 您好
我的NB規格 I5 + 4G Ram + 128 SSD,
想請問您,如果我也用ramdisk 切成1G 或2G的情形下,來做上述User的動作,如回補10年以上的TICK資料、開20個以上的圖形
、回測最佳化及盤中自動化交易等動作的話,此NB規格是否夠用呢, 謝謝。
請教客服:
有辦法設定MC寫Cache檔的路徑嗎?
因為我裝了Ramdisk後 在我的電腦中看得到(H:) 也能寫檔案 但是在磁碟管理中找不到?
因此無法照文中方法 用新增方式 把 Cache路徑指定過去
在網路上查了一些 也還是找不到問題所在
因此反過來 想問看看 是否能在MC中設定Cache路徑 我再把它指定到Ramdisk的H:
感謝!~
真專業,是個好方法,趕快來試試~
>> 因此無法照文中方法 用新增方式 把 Cache路徑指定過去
不知道是不是 OS 本身不支援此功能
你用的作業系統是什麼版本?
我是使用XP
後來換了另外一套Ramdisk的工具還是一樣
在磁碟管理中 就是無法看到Ramdisk的虛擬硬碟出現(但在我的電腦中可以看到)
所以無法做變更磁碟機代號及路徑的設定
把機碼找了一遍也找不到可以設定MC Cache Path的地方
因此才卡住了 不知道該如何將MC的Cache移到Ramdisk上去 @@
已經自行解決了 謝謝客服~
我到網路上找Ramdisk較早期的版本來安裝後 就可以了
不過還是想知道 MC是否有辦法設定Cache的路徑呢?
請教:
1. 安裝Ramdisk, 將MC cache及資料庫都移到Ramdisk. 對於未來MC版本更新或修復, 會不會無法做呢? 會不會有後遺症?
2. 我之前照您的設法都弄好了, 後來要刪除MC, 重新安裝, 竟然刪不掉, 也無法重新安裝, 也修復不好! 不知是哪裡出問題?
3. 若Ramdisk都弄好了, 要移除, 重新安裝MC, 要怎麼做呢?
謝謝您!
祝 交易大賺!
請問 MC9的Catch資料夾似乎不一樣?
有什麼方法可以讓Ramdisk work ?
謝謝!
我也找不到那些資料匣
不知是改名了?還是什麼的
求救求救
9.0 版就更方便了,不需要搞那麼多 Windows 的設定,裝好 RAMDISK 後,直接修改 MC 內的目錄指向就好了。
謝謝老大的撥冗回覆
人多必有白痴,搞不定。
二次重灌MC9.0專業版了
不過先試用了專業版的一部份功能
專業版用了真的好過癮
六十個策略分六個工作底稿
一目了然…
這樣就了用來統計策略的多空了…(好白痴)
關於這部份,公司這邊一定要有一個統一、方便、快速的解決方法
不然像我很願意自力救濟
但這部份靠我自已還是獨力無法完成
今天有點災難
之前弄的快取不知為何不見
無法開機就只好又把試用版mc9.0殺了重灌,重覆二次
所以現在只好用一般的方式
一張底稿9策略自2009年起3-5分K不等
開一底稿10+分鍾
八底稿70支以上策略,我要開X小時??
看來只有自廢武功只開2015.01.01起
以後要看任何MDD都要重設起訖