台湾股票实时开放数据-twstock

twstock的Python项目详细描述


Travis Build StatusAppveyor Build StatusCoverage StatusPyPI versionDocumentation Status

有任何問題歡迎透過 Gitter.im 詢問。

twstock 台灣股市股票價格擷取

擷取台灣證券交易所之股價資料 重新製作 toomore/grs 之功能

資料來源:

(請注意,TWSE 有 request limit, 每 5 秒鐘 3 個 request,超過的話會被 ban 掉,請自行注意)

Documentation

Requirements

  • requests
  • Python 3

Install

By PyPi

$ python -m pip install --user twstock

By Source

$ git clone https://github.com/mlouielu/twstock
$ cd twstock
$ pipenv install

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

分析計算

fromtwstockimportStockstock=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)# 計算五日、十日乖離值

擷取自 2015 年 1 月至今之資料

stock=Stock('2330')stock.fetch_from(2015,1)

基本資料之使用

>>>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)

台股證券編碼

>>>importtwstock>>>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>>>fromtwstock.proxyimportSingleProxyProvider>>>spr=SingleProxyProvider({'http':'http://localhost:8080'})>>>twstock.proxy.configure_proxy_provider(spr)# 多個 Proxy>>>fromtwstock.proxyimportRoundRobinProxiesProvider>>>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

四大買賣點分析

fromtwstockimportStockfromtwstockimportBestFourPointstock=Stock('2330')bfp=BestFourPoint(stock)bfp.best_four_point_to_buy()# 判斷是否為四大買點bfp.best_four_point_to_sell()# 判斷是否為四大賣點bfp.best_four_point()# 綜合判斷

即時股票資訊查詢

importtwstocktwstock.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 功能來協作。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如果在每次迭代后返回到原始状态,java是否可以安全地对正在迭代的数组进行变异?   linux java对'main'集合的未定义引用2:ld返回1退出状态   java如何在dynamodb上按多个字段进行排序(有解决方法吗)?   java错误处理servlet停止工作,我不知道原因:(   多线程如何在Java中暂停/恢复ExecutorService中的所有线程?   java为什么是我的jsoup。连接(url)无法使用某些url?   多线程理解Java多线程中的内存可见性   java sonar scanner可以在没有sonarqube服务器的情况下工作吗   如何从java中的页面获取不同的url?   java从文件中查找命令行中指定的单词   java类的“set”方法是否应该返回“void”或“boolean”?   如何使用java代码批量读取文件内容   二进制十进制(java.lang.NumberFormatException)   java如何在同一个句子中分别替换同一个单词但大小写不同?   java Spring `RestController`方法注释了`Transactional`,但“当前没有活动的事务”?   java OWL API:如何将域分配给OWLObjectProperty上的范围   java变量末尾的$有特殊意义吗?   java什么距离计算(经度、纬度)更精确?   卡片布局java GUI