利用 Python 抓取資料導入 AB
之前在別的主題內討論了很多如何抓證交所、期交所的資料我把相關檔案放到這裡,有興趣的大大們可以參考參考。應該還有很大的修改空間
不過目前我自己用還蠻 OK 的
參考壓縮檔內的README.TXT 或以下文字
(1) TSE_CLOSE.bat 下載上市股票(不含權證)收盤資料
指令格式範例 C:\python33\python C:\盤後\TSE_CLOSE.py 3 C:\盤後\TSE\
(第一個是Python 執行檔的路徑)上述例子為 C:\python33\python
(第二個是Python Script 的路徑)上述例子為 C:\盤後\TSE_CLOSE.py
(第三個的數字是檔案下載的日數,以今日回算) 上述例子為 3 , 如果以 2013/6/9 看,數字3就是 2013/6/7 ~ 2013/6/9
(最後一個是輸出檔案的目錄) 上述例子為 C:\盤後\TSE\
執行後 在C:\盤後\TSE\ 會產生兩個次目錄 CLOSE 與 AB
CLOSE內存放證交所的原始資料
AB 是彙整後的資料 可以給AB import 用import 的格式如下 (參考 TW_STOCK.format)
# Format definition file generated automatically
# by AmiBroker's ASCII Import Wizard
$FORMAT Ticker, Date_YMD, Open, High, Low, Close, Volume, Fullname
$SKIPLINES 1
$SEPARATOR ,
$CONT 1
$GROUP 255
$AUTOADD 1
$DEBUG 1
(2) OTC_CLOSE.bat 下載上櫃股票(不含權證)收盤資料
指令格式範例 C:\python33\python C:\盤後\OTC_CLOSE.py 3 C:\盤後\OTC\
(第一個是Python 執行檔的路徑)上述例子為 C:\python33\python
(第二個是Python Script 的路徑)上述例子為 C:\盤後\OTC_CLOSE.py
(第三個的數字是檔案下載的日數,以今日回算) 上述例子為 3 , 如果以 2013/6/9 看,數字3就是 2013/6/7 ~ 2013/6/9
(最後一個是輸出檔案的目錄) 上述例子為 C:\盤後\OTC\
執行後 在C:\盤後\OTC\ 會產生兩個次目錄 CLOSE 與 AB
CLOSE內存放證交所的原始資料
AB 是彙整後的資料 可以給AB import 用import 的格式 (參考 TW_STOCK.format)
(3) IDX_15Sec_1Min.bat 與IDX_15Sec_Day.bat 下載指數類收盤資料
指令格式範例分別為 C:\python33\python C:\盤後\IDX_15Sec_1Min.py 1 C:\盤後\IDX\
C:\python33\python C:\盤後\IDX_15Sec_Day.py 1 C:\盤後\IDX\
(第一個是Python 執行檔的路徑)上述例子為 C:\python33\python
(第二個是Python Script 的路徑)上述例子分別為 C:\盤後\IDX_15Sec_1Min.py C:\盤後\IDX_15Sec_Day.py
(第三個的數字是檔案下載的日數,以今日回算) 上述例子為 1 , 如果以 2013/6/9 看,數字1就是2013/6/9
(最後一個是輸出檔案的目錄) 上述例子為 C:\盤後\IDX\
執行後 在C:\盤後\IDX\ 會產生兩個次目錄 IDX 與 AB
IDX內存放證交所的原始資料
AB 是彙整後的資料 可以給AB import 用import 的格式
檔案前置文字分別為 1Min_ 與 Day_ 代表 一分鐘K 與 日K
請注意:匯入AB 時 1Min 與Day 需要的DATABASE 格式不同 (分別參考 IDX_1Min.format 和 IDX_Day.format)
(4) TSE_Vol.bat下載加權指數類收盤資料
指令格式範例為 C:\python33\python C:\盤後\TSE_vol.py 1 C:\盤後\TSE\
(第一個是Python 執行檔的路徑)上述例子為 C:\python33\python
(第二個是Python Script 的路徑)上述例子為 C:\盤後\TSE_vol.py
(第三個的數字是檔案下載的日數,以今日回算) 上述例子為 1 , 如果以 2013/6/9 看,數字1就是2013/6/9
(最後一個是輸出檔案的目錄) 上述例子為 C:\盤後\TSE\
執行後 在C:\盤後\TSE\ 會產生兩個次目錄 1Min 與 1MAB
1Min內存放證交所的原始資料
1MAB 是彙整後的資料 可以給AB import 用import 的格式 (參考 TSE_vol.format)
(5) import.bat
因為不知哪個原因 如果利用工作排程 批次檔的指令建議如下
start "匯入資料 to AB" c:\python33\python C:\盤後\import.pyD:\AmiBrokerData\TWSTOCK\ C:\盤後\TSE\AB\ C:\盤後\TW_STOCK.format
(第一個是批次檔另開視窗指令)上述例子為 start
(第二個是視窗名稱)上述例子為 "匯入資料 to AB"
(第三個是Python 執行檔的路徑)上述例子為 c:\python33\python
(第四個是Python Script 的路徑)上述例子為C:\盤後\import.py
(第五個是要先用AB建立成功的的 DATABASE 路徑,)上述例子為D:\AmiBrokerData\TWSTOCK\
(第六個是匯入的資料檔案存放路徑)上述例子為 C:\盤後\TSE\AB\
(最後一個是AB使用的格式檔案) 上述例子為C:\盤後\TW_STOCK.format
執行後 所有在C:\盤後\TSE\AB\ 當原始資料會在匯入完成後移到C:\盤後\TSE\AB\BAK\ 下
日後如果需要 可以再搬回 C:\盤後\TSE\AB\
這樣不會重複進行同一檔案的匯入
感謝您的分享
感恩 期貨 選擇權
不多做說明 請參考 .bat 和 .py檔案
嘆為觀止,目瞪口呆,五體投地 本帖最後由 lwhuang 於 13-6-19 17:25 編輯
今天發現怪狀
http://www.twse.com.tw/ch/tradin ... myear=2013&mmon=06#
的成交量是65,566,737,458
但是calvinhorng大的TSE_VOL是去抓
http://www.twse.com.tw/ch/tradin ... ?chk_date=102/06/19
成交量是65,187
不一樣耶,我用2卷商的看盤軟體都是前1個數值
然後TSE_VOL今天的OHLC跟卷商看到的也不同
又發現第3個數字
http://www.twse.com.tw/ch/trading/exchange/FMTQIK/genpage/Report201306/201306_F3_1_2.php?STK_NO=&myear=2013&mmon=06#
成交量是66,364,752,234
本帖最後由 calvinhorng 於 13-6-19 21:13 編輯
lwhuang 發表於 13-6-19 17:10 static/image/common/back.gif
今天發現怪狀
http://www.twse.com.tw/ch/tradin ... myear=2013&mmon=06#
的成交量是65,566,737,458
加權指數的日Volume 我是用累積成交金額
http://www.twse.com.tw/ch/trading/exchange/MI_5MINS/genpage/Report201306/A12520130619.php?chk_date=102/06/19
所以 6/19 應該是 65187 百萬元
但是 他沒包括盤後大額交易吧
所以
http://www.twse.com.tw/ch/trading/exchange/FMTQIK/genpage/Report201306/201306_F3_1_2.php?STK_NO=&myear=2013&mmon=06#
66,364,752,234 元 這個金額應該含盤後大額交易
所以 這個比較準
lwhuang 發表於 13-6-19 17:24 static/image/common/back.gif
又發現第3個數字
http://www.twse.com.tw/ch/trading/exchange/FMTQIK/genpage/Report201306/201306_F3_1_2 ...
這個金額應該是比較準的
所以 要修改一下程式碼才行
lwhuang 發表於 13-6-19 17:10 static/image/common/back.gif
今天發現怪狀
http://www.twse.com.tw/ch/tradin ... myear=2013&mmon=06#
的成交量是65,566,737,458
我用 凱基全球理財王
用一分鐘Kexcel 輸出後再存 CSV 格式
和我的CSV 比 應該都一樣 (除了 9:00:00 的 OPEN)
請參考附件內兩個CSV 檔案參考一下
建議你也把卷商的資料輸出來比對一下
還有 用一分鐘K 我發現總成交金額也沒有包括盤後交易金額
所以 證交所的原始資料就有點xxxx了
可是open價也很重要呀 calvinhorng大這個TSEVOL_20130619.rar裡面沒有修改的原始碼呀 lwhuang 發表於 13-6-20 10:27 static/image/common/back.gif
calvinhorng大這個TSEVOL_20130619.rar裡面沒有修改的原始碼呀
我用的是第一訊息附檔 盤後.rar 內的TSE_vol.py
沒有修改過
你比對後如果有問題 方便放上來 我看一看嗎?
lwhuang 發表於 13-6-20 10:01 static/image/common/back.gif
可是open價也很重要呀
有點搞懂盤商的邏輯,證交所資料(如 http://www.twse.com.tw/ch/trading/exchange/MI_5MINS_INDEX/genpage/Report201306/A12120130620.php?chk_date=102/06/20)把昨日收盤指數當今日9:00:00 的開盤指數
但是盤商是把 9:00:15 的指數當作今日開盤指數
我覺得也是合理 所以改一下 Code
此外 我也把 最後總金額更正
試用一下 看看吧
本帖最後由 lwhuang 於 13-6-21 19:02 編輯
價位是跟券商一樣了,但是今天(6/21)的量還是跟富邦e01不同,不過大大的量跟證交所網頁上的一樣了 :) 我準備把他改成精準的數字,不是以億為單位,我是精準狂{:4_112:} lwhuang 發表於 13-6-21 18:25 static/image/common/back.gif
價位是跟券商一樣了,但是今天(6/21)的量還是跟富邦e01不同,不過大大的量跟證交所網頁上的一樣了 :) 我準 ...
我以前發現證交所有時候還會去改之前的數字
所以 還要偶爾對一對原始資料
{:4_195:}
頁:
[1]
2