程式交易Day1-下載dukascopy歷史交易記錄
十多年前曾幫一個客戶做過台指期的程式交易,他有招收會員,並要即時通知會員下單。那時我用excel vba作為客戶端的操作介面,搭配DDE即時取得券商資料源,最後再用html+javascript+php,作為會員端的顯示介面,那是個麻煩但又有趣的開發經驗…今天就來回味一下,先從去dukascopy下載歷史交易記錄開始吧。
Dukascopy
杜高斯貝是創立於瑞士的線上交易平台,著重在外匯、商品期貨,及CFD交易。服務全球客戶,也有中文版的網頁。2004年成立,受英國、歐盟、日本等多國金融機構監管,相當值得信賴,看看下方圖標它每年得到的獎章:
歷史交易記錄下載
杜高斯貝提供的商品範圍並不廣,但歷史資料下載的參數倒是很細。比方說 AUD/USD 從2004年至2019年的 1 hour 時線資料,就有近十萬筆,也能改成任何分線來下載,資料量更大,作為程式邏輯的測試數據,可說是相當充足。
下載位址:杜高斯貝歷史記錄(要註冊登入會員)
下載參數說明
左邊欄是資料分類,Forex(外匯)、Commodities(商品)、Indices(指數)、Bonds(基金)、Stocks(股票)、ETF(指數型股票基金)、Crypto(加密貨幣)
Candlestick:資料單位,比方說 2 day、1 hour、15 minute、30 second 等等,看個人分析需求。不過,資料單位越細,後面下載的歷史區間就越短,要分多次下載。
Offer side:由於銀行要賺價差,交易資料有分 Ask 賣價和 Bid 買價,所以資料通常會和市場成交價有1~2點的誤差,但實際交易時本來就有「滑價」的誤差問題,應不致影響交易邏輯,所以這問題可以忽略。我都選擇 Ask 賣價。
From date To date:選擇下載的歷史區間,這不用解釋。但要注意的是,資料起始日最久可以到什麼時候,杜高斯貝沒有特別註明,要自己去試,要不然匯出的時候會當掉。像AUDUSD可以從2004年開始,AUDCHF就只能從2007年開始。
Filter Flats:要不要過濾掉沒有交易的0記錄,比方說週末,這我都是選 All。後面是成交量的單位,看你選擇的資料類型及單位來決定,像AUDUSD 1 hour 這累積交易量通常很大,就選 Millions。
Day start time:時間起始標記的單位,通常我是選 UTC 和 Local,會和自己的看盤軟體比較一致。
點選 Download 後,它就會開始匯出,沒出錯的話(中間停很久就是出錯了),它會給你兩個按鈕,一個是存檔,一個是看圖。總之,這沒有使用限制,可以隨意改參數多多嚐試。
開發後記
足夠的數據,是驗證程式交易邏輯最重要的開始,要這麼大和詳盡的數據資料,其實不好找,杜高斯貝真的是佛心來著。如果有其它好的歷史資料來源,也希望網友能推薦,謝謝。
因為疫情有空出來的時間,突然想開發一個程式交易平台,能讓大家分享並測試自己的交易邏輯。
Day1是起步,希望有朝一日可以完成。
預定的程式交易平台網址:https://giimii.com/
開發相關資料:DiiMii的程式交易