有任何問題歡迎透過 Gitter.im 詢問。
twstock 台灣股市股票價格擷取
擷取台灣證券交易所之股價資料 重新製作 toomore/grs 之功能
資料來源:
(請注意,TWSE 有 request limit, 每 5 秒鐘 3 個 request,超過的話會被 ban 掉,請自行注意)
Documentation
Requirements
- Python 3
- lxml
- requests
Install
By PyPi
$ python -m pip install --user twstock
By Source
$ git clone https://github.com/mlouielu/twstock
$ cd twstock
$ python -m pip install -e .
By Source & install
$ git clone https://github.com/mlouielu/twstock
$ cd twstock
$ python -m pip install --user flit
$ flit install
CLI Tools
$ twstock -b 2330 6223
四大買賣點判斷 Best Four Point
------------------------------
2330: Buy 量大收紅
6223: Sell 量縮價跌, 三日均價小於六日均價
$ twstock -s 2330 6223
-------------- 2330 ----------------
high : 215.0 214.0 210.0 210.5 208.5
low : 212.0 211.0 208.0 208.5 206.5
price: 215.0 211.5 208.5 210.0 208.5
-------------- 2337 ----------------
high : 16.2 16.8 16.4 16.75 16.75
low : 15.8 16.1 15.15 16.3 16.25
price: 15.95 16.25 16.25 16.6 16.7
Update Codes
當你第一次使用 twstock 時,你可以更新 TPEX 跟 TWSE 的列表,可以使用兩種方式更新:
- By CLI
$ twstock -U
Start to update codes
Done!
- By Python
>>> import twstock
>>> twstock.__update_codes()
Quick Start
分析計算
from twstock import Stock
stock = Stock('2330') # 擷取台積電股價
ma_p = stock.moving_average(stock.price, 5) # 計算五日均價
ma_c = stock.moving_average(stock.capacity, 5) # 計算五日均量
ma_p_cont = stock.continuous(ma_p) # 計算五日均價持續天數
ma_br = stock.ma_bias_ratio(5, 10) # 計算五日、十日乖離值
擷取自 2024 年 3 月至今之資料
stock = Stock('2330')
stock.fetch_from(2024, 3)
基本資料之使用
>>> stock = Stock('2330')
>>> stock.price
[203.5, 203.0, 205.0, 205.0, 205.5, 207.0, 207.0, 203.0, 207.0, 209.0, 209.0, 212.0, 210.5, 211.5, 213.0, 212.0, 207.5, 208.0, 207.0, 208.0, 211.5, 213.0, 216.5, 215.5, 218.0, 217.0, 215.0, 211.5, 208.5, 210.0, 208.5]
>>> stock.capacity
[22490217, 17163108, 17419705, 23028298, 18307715, 26088748, 32976727, 67935145, 29623649, 23265323, 1535230, 22545164, 15382025, 34729326, 21654488, 35190159, 63111746, 49983303, 39083899, 19486457, 32856536, 17489571, 28784100, 45384482, 26094649, 39686091, 60140797, 44504785, 52273921, 27049234, 31709978]
>>> stock.data[0]
Data(date=datetime.datetime(2017, 5, 18, 0, 0), capacity=22490217, turnover=4559780051, open=202.5, high=204.0, low=201.5, close=203.5, change=-0.5, transaction=6983)
台股證券編碼
>>> import twstock
>>> print(twstock.codes) # 列印台股全部證券編碼資料
>>> print(twstock.codes['2330']) # 列印 2330 證券編碼資料
StockCodeInfo(type='股票', code='2330', name='台積電', ISIN='TW0002330008', start='1994/09/05', market='上市', group='半導體業', CFI='ESVUFR')
>>> print(twstock.codes['2330'].name) # 列印 2330 證券名稱
'台積電'
>>> print(twstock.codes['2330'].start) # 列印 2330 證券上市日期
'1994/09/05'
使用 Proxy (基於 requests proxies)
# 單一 Proxy
>>> from twstock.proxy import SingleProxyProvider
>>> spr = SingleProxyProvider({'http': 'http://localhost:8080'})
>>> twstock.proxy.configure_proxy_provider(spr)
# 多個 Proxy
>>> from twstock.proxy import RoundRobinProxiesProvider
>>> proxies = [{'http': 'http://localhost:5000'}, {'http': 'http://localhost:5001'}]
>>> rrpr = RoundRobinProxiesProvider(proxies)
>>> twstock.proxy.configure_proxy_provider(rrpr)
# 變更 Proxy 表
>>> another_proxies = [{'http': 'http://localhost:8000'}, {'https': 'https://localhost:8001'}]
>>> rrpr.proxies = another_proxies
四大買賣點分析
from twstock import Stock
from twstock import BestFourPoint
stock = Stock('2330')
bfp = BestFourPoint(stock)
bfp.best_four_point_to_buy() # 判斷是否為四大買點
bfp.best_four_point_to_sell() # 判斷是否為四大賣點
bfp.best_four_point() # 綜合判斷
即時股票資訊查詢
import twstock
twstock.realtime.get('2330') # 擷取當前台積電股票資訊
twstock.realtime.get(['2330', '2337', '2409']) # 擷取當前三檔資訊
使用範例
Contributing
twstock was created by Louie Lu <git@louie.lu>.
Contributing were welcome, please use GitHub issue and Pull Request to contribute!
歡迎協作,請使用 GitHub issue 以及 Pull Request 功能來協作。
Release files for twstock 1.5.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| twstock-1.5.1.tar.gz | 637.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| twstock-1.5.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.2 MB
Release files / twstock-1.5.1.tar.gz
| Download URL | twstock-1.5.1.tar.gz |
|---|---|
| Size | 637.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e0105d5ee8717672269b5beb0fb08e27472ff9ed831cdf2dadc9f8e77216c3e9
|
|
BLAKE2b-256 checksum How to use checksums |
723327064d83104d6c702d84f1ac51f6a404bd7fbd4631b2f24fb60ec1f07eda
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / twstock-1.5.1-py3-none-any.whl
| Download URL | twstock-1.5.1-py3-none-any.whl |
|---|---|
| Size | 571.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e6f445b24b3c4f8f880369363742b4d48b423faa53ace14fdd4b86c0a102abe4
|
|
BLAKE2b-256 checksum How to use checksums |
ec80084ed74418bbc7fa739383964e473ca889feaba5399690751579b02d6dcb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|