測試時,其實用哪個MT4平台無所謂,只要包含足夠的歷史數據即可。
(metaquotes自己的那個歷史數據服務器就挺好。)
實際交易時最好用live賬號,這樣確保MT4裡面的數據是準確和實時更新的。
導出MT4數據
首先,你連接的MT4平台要有足夠多的歷史數據。
然後,設置MT4把這些數據全部都裝入到內存中,否則它只會導出當前裝入內存中的數據。
MT4設置窗口有一個頁是設定裝入多少bar的,我通常要把它改到最大值,比如9999999,
這樣MT4才會裝入所有的bar,當然佔用內存會比較多。
接著按F2,打開歷史數據窗口,選擇一個貨幣對,選擇時間,如果使用1分鐘bar的話,
下面的統計是導出文件的大概大小。根據你要開發的策略所需要的數據精度,
比如,我通常是倒出5分鐘的bar,這樣導出文件會小很多,10年數據大約50MB以內。
================================================== ======================
Max# BAR in History (1 minute chart)___導出文件大小___數據時間
9999999(900萬)___________________170MB_______至1999年(至1999年的BAR為300多萬)
499999(49萬)_____________________23MB________18-20個月
199999(20萬)_____________________10MB_________6-7個月
99999(9萬)_______________________5MB__________3個月
================================================== ======================
注意: 導出文件名必須和AB裡面設置好的ticker名稱相同。例如: EURUSD.CSV
(我也忘記AB是否能改Ticker的名字,但是為了方便,我每次都是導入前改好)
導入數據到AB
然後打開AB,切換到要導入數據的數據庫,比如你剛才使用的FXCM那個。
以EURUSD為例,先刪除這個ticker。 (菜單 Symbol -> Delete ...)
然後有兩種方法導入,都在菜單File 下面
1) Import Wizard..
2) Import ASCII..
1) 是一個嚮導,一步一步地按照做就可以。最後有個選擇可以保持你導入的設置。
2) 是我常用的,比較方便。它是使用預先設置好的值(這個文件可以由Import Wizard生成)
這裡面有個地方比較tricky,就是MT4數據的時間和你實時數據源的時間可能不一樣!
比如MT4歷史數據和一些實時MT4數據相差7個小時,
下面就是我自己使用的一個Import Wizard生成的文件。
你可以直接拷貝下面的內容,然後在AB的目錄下創建這個文件即可。
注意,你還要同時修改import.types這個文件,在裡面增加一行:
MT4 Export (-7hr) (*.csv)|*.csv|mt4_shift_-7hr.format
這樣就可以在使用“Import ASCII..“這個方法時直接從導入類型裡面選擇"MT4 Export (-7hr)",
然後選擇剛才從MT4裡面導出的那個EURUSD.CSV文件。
導入完成之後,就能從AB裡面看到歷史數據了。
導入這個過程,可以多試幾次,我也是試了很多次才摸索出來。大不了就刪了重新導入。
設置DDE數據源
然後設置DDE,請參照官方的指南,有一段提到和MT4集成。
DDE DATA PLUGIN
http://www.amibroker.com/dde.html
最後關鍵一步
注意!到這裡還沒有完,就算歷史數據進去了,DDE也配置好。你看到右下角顯示“綠色”,表示連接正常。
但是你的EURUSD還是不會被實時更新。
最後一步,選擇菜單View -> Symbol Information,會打開一個窗口,
顯示每個ticker的一些關鍵配置信息。在"General"大類下面裡面有一項叫"Use Only Local Database",
每次刪除Ticker,再導入之後,這個值都是“YES“,即表示只使用local數據。
必須改為”NO”之後,AB才會將實時的tick寫到這個數據庫中,這個時候數據庫是local + real-time混合模式。只有這樣才能同時包括歷史數據,並且接收實時數據。
兩個文件的內容:
C:\Program Files\AmiBroker\Formats\mt4_shift_-7hr.format
Code:
# Format definition file generated automatically
# by AmiBroker's ASCII Import Wizard
$FORMAT Date_YMD, Time, Open, High, Low, Close, Volume
$SKIPLINES 0
$SEPARATOR ,
$CONT 1
$GROUP 1
$AUTOADD 1
$DEBUG 1
$TIMESHIFT -7
C:\Program Files\AmiBroker\Formats\import.types
Code:
Default ASCII (*.*)|*.*|default.format
MT4 Export (-7hr) (*.csv)|*.csv|mt4_shift_-7hr.format
MT4 Export (*.csv)|*.csv|mt4.format
Yahoo's CSV (*.csv)|*.csv|yahoo.format
AmiQuote Historical (*.aqh)|*.aqh|aqh.format |