股票方面放棄用MC,改用AMIBROKER了
本帖最後由 電腦人 於 13-8-28 16:55 編輯股票方面收集資料完了,但發現Multicharts真的是有夠麻煩
在匯入資料方面,不但很難自動化,而且更新資料也是一樣
光上市股票每天就要開QuoteManager來"手動"匯入資料874檔
而且找過沒有命令列可以自動匯入資料,想到就一整個煩
後來決定分開
期貨方面就交給multicharts
股票方面就交給amibroker
已經向mc原廠建議是否有命令列指令可以自動匯入資料,否則每一次都用手選更新,真的很累
另外又遇到一個很好笑的問題
輸入同樣的參數,下載股票日線資料後,居然有兩種格式
第一種
直接是"各日成交資訊(元,股)"
日期,成交股數,成交金額,開盤價,最高價,最低價,收盤價,漲跌價差,成交筆數
"的格式
第二種
先列出"288;本資訊自民國年月日起開始提供"
再列出"各日成交資訊(元,股)"
日期,成交股數,成交金額,開盤價,最高價,最低價,收盤價,漲跌價差,成交筆數
"的格式
第三種
當月份該日期沒有該股票交易資料時,傳回下列格式
"le>"
真的很搞笑,看來又要用程式去過濾掉這種雜訊了
這三種情況全部搞定後,就開始準備匯入AMIBROKER了
歡迎歡迎,多一個同好研究,互相分享 本帖最後由 電腦人 於 13-8-29 00:18 編輯
上市的剛完成
現在換櫃買的資料
櫃買的比較麻煩,需要用HTTP POST的方式來抓檔,而非用HTTP GET的方式
明天再來解決
我都滿喜歡自己動手做,比較安心,而且知道問題再哪
本帖最後由 電腦人 於 13-8-29 06:57 編輯
現在又發現另一個問題,在OTC的下載網頁中
(1)HTML網頁
http://www.otc.org.tw/ch/stock/aftertrading/daily_trading_info/result_st43.php
(2)CSV下載網頁
http://www.otc.org.tw/ch/stock/aftertrading/daily_trading_info/download_st43.php
只有(1)的方式,加上POST後的參數才有效
但是使用(2)的方式,無論是不是POST,都不會直接回傳CSV
有人有解嗎?
因為(1)傳回的方式為HTML網頁,後面處理還是很麻煩 我有寫一個喔,給你參考
http://www.coco-in.net/thread-26790-1-1.html 試試以下連結, 我自己沒用
Amibroker URLGet
http://www.amibroker.com/newsletter/06-2001.html
VisualWget
https://sites.google.com/site/visualwget/a-download-manager-gui-based-on-wget-for-windows 電腦人 發表於 13-8-29 06:55 static/image/common/back.gif
現在又發現另一個問題,在OTC的下載網頁中
(1)HTML網頁
使用(2)的方式和 POST Method,就可以抓回CSV。用Python 2.7,只要一行。
本帖最後由 電腦人 於 13-8-30 02:46 編輯
pythonist 發表於 13-8-29 12:59 static/image/common/back.gif
使用(2)的方式和 POST Method,就可以抓回CSV。用Python 2.7,只要一行。
謝謝,我想我找到問題了
是我自己搞錯了,用POST是沒問題的
原來是參數下錯了 {:4_142:}
不過用PYTHON程式碼真的是很簡潔
本帖最後由 電腦人 於 13-9-1 13:29 編輯
還有證交所(櫃買中心)會回傳空字串的問題解決了
建議解如下:
下載資料時,請間隔至少0.5~1秒再下載下一個檔
千萬不要一個迴圈就直接下載了
我觀察的結果是同一個時間有過多SESSION下載
導致自己的電腦無法負荷,導致SOCKET TIMEOUT
另外下載下來的檔案,要另外做一個錯誤檢查及下載LOG
我是多做了這兩個後,從LOG中才找到問題
基本上只要下載間隔在0.5秒以下,很容易漏檔,下載的東西都是空的
剛確實比對過許多次
證交所的程式會隨機亂回應 "288;本資訊自民國年月日起開始提供" 的格式
只要在程式中濾掉這一行就行了,其他資料都一樣
櫃買中心倒不會這樣做 本帖最後由 電腦人 於 13-9-3 07:16 編輯
現在是格式解析的時候
(1)證交所
裡面取得的資料,發現裡面是用逗號來分隔的
但如果數值超過一千,每三位數同樣也用逗號,該欄位資料另用" "夾起來
漲跌用 +- X 來表示
所以我的做法是
01.去掉 + X 等符號(只有負號需保留下來)
02." "取消
03." "裡面的逗點取消 (會跟分隔符號混淆)
04.日期轉成西元
例:
2498,102/08/30,"17,113,260","2,614,904,148",149.00,156.50,148.00,156.50,+8.50,"11,192"
(2)櫃買中心
櫃買中心的資料就很一致了
所有欄位都用 " "夾起來,不像證交所有的用" " ,有的又不用
超過三位數後,裡面還是有再加逗點
例:
"880507","1,143","14,337","12.40","12.80","12.10","12.50","0.20","340"
證交所資料裡面有這種格式的
101/08/01,0,0,--,--,--,--,0.00,0
整行要去掉,因為沒有交易資料,K棒跟本無法畫出
有點畫蛇添足 我沒有使用過
但MC 的Manual裡有提到
Map ASCII(在QM的File選項下)似乎可以一次Import很多個檔案
本帖最後由 電腦人 於 13-9-3 18:14 編輯
alexliou 發表於 13-9-3 13:19 static/image/common/back.gif
我沒有使用過
但MC 的Manual裡有提到
Map ASCII(在QM的File選項下)似乎可以一次Import很多個檔案
有啊http://www.multicharts.com/trading-software/index.php/Mapping_ASCII
全程仍然是要手動,而且步驟落落長
http://www.multicharts.com/pm/viewissue.php?issue_no=MC-342
還是要用手選 File / Map Ascii即可
最後還是要用手選,無法自動用SCRIPT包好
因為還是得選標的檔案
本帖最後由 alexliou 於 13-9-3 19:20 編輯
電腦人 發表於 13-9-3 18:12 static/image/common/back.gif
有啊http://www.multicharts.com/trading-software/index.php/Mapping_ASCII
全程仍然是要手動,而且步驟 ...
我剛剛試了一下
應該可以不必每次手動
只要第一次設定好(Symbol與它對應的ASCII File)即可
不過要一次要設定874筆 真是有點煩
Script 去抓證交所的資料然後更新ASCII files的內容(每個Symbol對應固定的ASCII檔名)
每次這個Symbol被reference到時
MC就會去對應的ASCII file抓資料