📈 台灣上市上櫃股票價格擷取(Fetch Taiwan Stock Exchange data)含即時盤、台灣時間轉換、開休市判斷。
.. image:: https://travis-ci.org/toomore/grs.svg?branch=master :target: http://travis-ci.org/toomore/grs
.. image:: https://img.shields.io/pypi/dm/grs.svg?maxAge=2592000 :target: https://pypi.python.org/pypi/grs
.. image:: https://img.shields.io/pypi/v/grs.svg?maxAge=2592000 :target: https://pypi.python.org/pypi/grs
.. image:: https://img.shields.io/pypi/wheel/grs.svg?maxAge=2592000 :target: https://pypi.python.org/pypi/grs
.. image:: https://img.shields.io/pypi/l/grs.svg?maxAge=2592000 :target: https://pypi.python.org/pypi/grs
主要開發擷取台灣股市(TWSE)股價資料
證券交易所網站 <http://www.twse.com.tw/>
_ 。證券櫃檯買賣中心 <http://www.otc.org.tw/>
_ 。:Authors: Toomore Chiang :Version: 0.7.0 of 2016/09/11 :Python Version: Python 2.7 :Docs: http://grs-docs.toomore.net/
簡單計算
::
from grs import Stock
stock = Stock('2618') # 擷取長榮航股價
print stock.moving_average(5) # 計算五日均價與持續天數
print stock.moving_average_value(5) # 計算五日均量與持續天數
print stock.moving_average_bias_ratio(5, 10) # 計算五日、十日乖離值與持續天數
擷取 12 個月份資料
::
stock = Stock('2618', 12)
輸出 CSV 檔
::
stock.out_putfile('/dev/shm/2618.csv')
擷取上櫃股價資訊
::
from grs import Stock
stock = Stock('8446') # 擷取華研股價
print stock.moving_average(5) # 計算五日均價與持續天數
print stock.moving_average_value(5) # 計算五日均量與持續天數
print stock.moving_average_bias_ratio(5, 10) # 計算五日、十日乖離值與持續天數
如果已確定該代碼為上市或上櫃股票,可以直接指定參數跳過查表動作。
::
stock = Stock('2618', twse=True) # 擷取長榮航股價
stock = Stock('8446', otc=True) # 擷取華研股價
適用於其他時區查詢台灣當地時間。
::
from grs import TWTime
what_time = TWTime()
what_time.now() # 顯示台灣此刻時間
what_time.localtime() # 顯示當地此刻時間
::
from grs import TWSEOpen
from datetime import datetime
open_or_not = TWSEOpen()
open_or_not.d_day(datetime.today()) # 判斷今天是否開市
# 回傳 True or False
open_or_not.d_day(datetime(2012, 12, 22)) # 判斷 2012/12/22 是否開市
上市即時資訊
::
from grs import RealtimeTWSE
realtime_stock = RealtimeTWSE('2618') # 擷取長榮航即時股價
realtime_stock.raw # 原始資料
realtime_stock.data # 回傳 type: dict
上櫃即時資訊
::
from grs import RealtimeOTC
realtime_stock = RealtimeOTC('8446') # 擷取華研即時股價
realtime_stock.raw # 原始資料
realtime_stock.data # 回傳 type: dict
::
from grs import RealtimeWeight
realtime_weight = RealtimeWeight() # 擷取即時大盤資訊
realtime_weight.raw # 原始檔案
realtime_weight.data # 回傳 type: dict
回傳上市股票代碼與搜尋
::
from grs import TWSENo
twse_no = TWSENo()
twse_no.all_stock # 所有股票名稱、代碼 type: dict
twse_no.all_stock_no # 所有股票代碼 type: list
twse_no.all_stock_name # 所有股票名稱 type: list
twse_no.industry_code # 回傳類別代碼 type: dict
twse_no.industry_comps # 回傳類別所屬股票代碼 type: dict
twse_no.search(u'中') # 搜尋股票名稱,回傳 type: dict
twse_no.searchbyno(23) # 搜尋股票代碼,回傳 type: dict
twse_no.last_update # 回傳列表最後更新時間(非同步)type: str
適用於設定 cache 時間。
::
from grs import Countdown
countdown = Countdown(hour=14, minutes=30) # 預設為 14:30
countdown.nextday # 下一個 14:30 日期
countdown.countdown # 到數秒數
countdown.exptime # 下一個 14:30 日期時間(type: datetime)
countdown.lastmod # 前一個 14:30 日期時間(type: datetime)
判斷乖離轉折點
::
from grs import Stock
stock = Stock('2618')
data = stock.moving_average_bias_ratio(3, 6)[0] # 取得 3-6 乖離值 type: list
# 計算五個區間負乖離轉折點
check_data = stock.check_moving_average_bias_ratio(data, sample=5,
positive_or_negative= False)
print check_data # (T/F, 第幾轉折日, 乖離轉折點值) type: tuple
判斷是否為技術分析的四大買賣點,條件成立,回傳條件結果,判斷結果僅供參考!
::
from grs import BestFourPoint
from grs import Stock
stock = Stock('2618')
result = BestFourPoint(stock)
result.best_four_point_to_buy() # 判斷是否為四大買點
result.best_four_point_to_sell() # 判斷是否為四大賣點
result.best_four_point() # 綜合判斷
全部上市股票檢視
::
from grs import BestFourPoint
from grs import Stock
from grs import TWSENo
stock_no_list = TWSENo().all_stock_no
for i in stock_no_list:
try:
best_point, info = BestFourPoint(Stock(i)).best_four_point()
if best_point: # 買點
print 'Buy: {0} {1}'.format(i, info)
else: # 賣點
print 'Sell: {0} {1}'.format(i, info)
except: # 不作為或資料不足
print 'X: {0}'.format(i)
當原有的月份資料不夠時,不需要從頭抓取,只需要給予增額月份值即可。
::
from grs import Stock
stock = Stock('2618') # 預設為抓取3個月份資料
stock.moving_average(60)
IndexError: list index out of range # 資料不足
len(stock.raw) # 回傳 51 個值
stock.plus_mons(1) # 在抓取一個月資料
len(stock.raw) # 回傳 66 個值
stock.moving_average(60) # 計算成功
grs.twseno.ImportCSV.get_stock_list
)grs.twseno.ImportCSV.get_stock_comps_list
)grs.fetch_data.SimpleAnalytics.CKMAO
to be classmethod.realtime
str format.basestring
.櫃台買賣中心 <http://gretai.org.tw>
_ )grs 文件 <http://grs-docs.toomore.net>
_.stock_no
, RealtimeStock no
必須為 string.
Issues #9 <https://github.com/toomore/grs/issues/9>
_