電腦人 發表於 13-8-28 16:47

股票方面放棄用MC,改用AMIBROKER了

本帖最後由 電腦人 於 13-8-28 16:55 編輯

股票方面收集資料完了,但發現Multicharts真的是有夠麻煩
在匯入資料方面,不但很難自動化,而且更新資料也是一樣

光上市股票每天就要開QuoteManager來"手動"匯入資料874檔

而且找過沒有命令列可以自動匯入資料,想到就一整個煩

後來決定分開

期貨方面就交給multicharts
股票方面就交給amibroker

已經向mc原廠建議是否有命令列指令可以自動匯入資料,否則每一次都用手選更新,真的很累

另外又遇到一個很好笑的問題
輸入同樣的參數,下載股票日線資料後,居然有兩種格式

第一種
直接是"各日成交資訊(元,股)"
日期,成交股數,成交金額,開盤價,最高價,最低價,收盤價,漲跌價差,成交筆數
"的格式

第二種
先列出"288;本資訊自民國年月日起開始提供"
再列出"各日成交資訊(元,股)"
日期,成交股數,成交金額,開盤價,最高價,最低價,收盤價,漲跌價差,成交筆數
"的格式


第三種
當月份該日期沒有該股票交易資料時,傳回下列格式
"le>"

真的很搞笑,看來又要用程式去過濾掉這種雜訊了

這三種情況全部搞定後,就開始準備匯入AMIBROKER了

lwhuang 發表於 13-8-28 21:39

歡迎歡迎,多一個同好研究,互相分享

電腦人 發表於 13-8-29 00:16

本帖最後由 電腦人 於 13-8-29 00:18 編輯

上市的剛完成

現在換櫃買的資料

櫃買的比較麻煩,需要用HTTP POST的方式來抓檔,而非用HTTP GET的方式

明天再來解決
我都滿喜歡自己動手做,比較安心,而且知道問題再哪

電腦人 發表於 13-8-29 06:55

本帖最後由 電腦人 於 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網頁,後面處理還是很麻煩

lwhuang 發表於 13-8-29 08:10

我有寫一個喔,給你參考
http://www.coco-in.net/thread-26790-1-1.html

lantis 發表於 13-8-29 08:19

試試以下連結, 我自己沒用

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

pythonist 發表於 13-8-29 12:59

電腦人 發表於 13-8-29 06:55 static/image/common/back.gif
現在又發現另一個問題,在OTC的下載網頁中

(1)HTML網頁


使用(2)的方式和 POST Method,就可以抓回CSV。用Python 2.7,只要一行。





電腦人 發表於 13-8-30 02:45

本帖最後由 電腦人 於 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:24

本帖最後由 電腦人 於 13-9-1 13:29 編輯

還有證交所(櫃買中心)會回傳空字串的問題解決了

建議解如下:

下載資料時,請間隔至少0.5~1秒再下載下一個檔

千萬不要一個迴圈就直接下載了

我觀察的結果是同一個時間有過多SESSION下載

導致自己的電腦無法負荷,導致SOCKET TIMEOUT
另外下載下來的檔案,要另外做一個錯誤檢查及下載LOG

我是多做了這兩個後,從LOG中才找到問題

基本上只要下載間隔在0.5秒以下,很容易漏檔,下載的東西都是空的

電腦人 發表於 13-9-1 19:30

剛確實比對過許多次

證交所的程式會隨機亂回應 "288;本資訊自民國年月日起開始提供" 的格式

只要在程式中濾掉這一行就行了,其他資料都一樣

櫃買中心倒不會這樣做

電腦人 發表於 13-9-3 06:40

本帖最後由 電腦人 於 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"

電腦人 發表於 13-9-3 11:19

證交所資料裡面有這種格式的
101/08/01,0,0,--,--,--,--,0.00,0
整行要去掉,因為沒有交易資料,K棒跟本無法畫出
有點畫蛇添足

alexliou 發表於 13-9-3 13:19

我沒有使用過
但MC 的Manual裡有提到
Map ASCII(在QM的File選項下)似乎可以一次Import很多個檔案

電腦人 發表於 13-9-3 18:12

本帖最後由 電腦人 於 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 18:40

本帖最後由 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抓資料

頁: [1] 2 3 4
查看完整版本: 股票方面放棄用MC,改用AMIBROKER了