Skip to main content

Get stock informations by Capital API.

Project description

群益證券聽牌套件 (skcom)

此套件用來降低群益證券 API (SKCOM.dll) 的使用門檻,目前可蒐集歷史與即時報價資訊,也提供輔助工具引導安裝 API 元件, 透過輔助安裝工具會安裝 VC++ 可轉發套件中較為安全的版本,比依照官方文件安裝更理想

此套件僅相容 Windows 64 位元, 無法確保在其它環境正常運作, 驗證環境如下:

  • Windows 10 64位元, Anaconda 2019.03 Python 3.7 version
  • Windows 10 64位元, Python 3.8.2

注意事項

  • 此套件並非群益證券開發, 使用問題請透過 GitHub Issue 回報
  • 在群益證券開戶, 並且開通 API 使用權限後才能使用
  • 不支援期貨與選擇權, 如有這類需求可 fork 一份修改, 但不接受這類功能的 Pull Request

功能

0.9.5

  • 新增設定檔加密功能, 避免證券戶的帳號密碼外洩
  • 修正 Anaconda 環境無法正常操作 Scripting.FileSystemObject 問題
  • 相容 32 位元環境

0.9.4

  • 新增 Telegram 機器人範例, 盤中監控價量
  • 提供參數自動回答登入時的公告
  • 日 K 快取處理
  • skcom.tools.clean 能移除 VC++ 2010 可轉發套件
  • API 版本跟進到 2.13.21, 確保逐筆交易正常運作
  • 改善 skcom.helper 的穩定性
  • 設定檔改用 YAML 格式

0.9.3 修正首次安裝相依套件失敗問題

  • 改用 logging.yaml 配置 logger
  • log 檔目錄不存在時, 自動產生目錄

0.9.2 加強對新版元件的相容性

  • 解決 2.13.17+ 元件無法登入的問題
  • 解決 2.13.18 自動安裝失敗問題
  • 環境清除工具

0.9.1 首次發布

  • 蒐集日 K 資料
  • 接收即時撮合結果
  • 必要環境輔助安裝工具 (Visual C++ 可轉發套件與 SKCOM.dll)

環境安裝

安裝相依套件, 安裝前會提示要求管理者權限

> pip install skcom
> python -m skcom.tools.setup
INFO    | 安裝 Visual C++ 2010 可轉發套件
INFO    | Visual C++ 2010 可轉發套件已安裝, 版本: 10.0.40219.325
INFO    | 安裝與註冊群益 API 元件
INFO    | 群益 API 元件已安裝, 版本: 2.13.21.0
INFO    | 生成 site-packages\comtypes\gen\SKCOMLib.py
INFO    | 群益 API 元件模組已生成

如果要升級群益 API 元件,建議先使用環境清除工具再重新安裝,避免 comtypes 自動生成碼與元件版本不相容

> python -m skcom.tools.clean
INFO    | 移除 comtypes 套件自動生成檔案
INFO    |   路徑 C:\Users\Unknown\AppData\Local\Programs\Python\Python38\lib\site-packages\comtypes\gen
INFO    |   移除 Scripting.py
INFO    |   移除 SKCOMLib.py
INFO    |   移除 stdole.py
INFO    |   移除 _00020430_0000_0000_C000_000000000046_0_2_0.py
INFO    |   移除 _420B2830_E718_11CF_893D_00A0C9054228_0_1_0.py
INFO    |   移除 _75AAD71C_8F4F_4F1F_9AEE_3D41A8C9BA5E_0_1_0.py
INFO    |   移除 __pycache__
INFO    | 移除群益 API 元件
INFO    |   路徑: C:\Users\Unknown\.skcom\lib
INFO    |   解除註冊: C:\Users\Unknown\.skcom\lib\SKCOM.dll
INFO    |   移除元件目錄
INFO    | 移除 Visual C++ 2010 x64 Redistributable

> python -m skcom.tools.setup

使用 Ticks 監聽範例

> python -m skcom.samples.ticks
登入成功
連線成功
連線就緒
[2330 台積電] 時間:09:00:00.530 :0.00 :0.00 :233.50 單量:3594 總量:3594
[2330 台積電] 時間:09:00:05.543 :233.00 :233.50 :233.50 單量:87 總量:3681
[2330 台積電] 時間:09:00:10.558 :233.00 :233.50 :233.50 單量:3 總量:3684
[2330 台積電] 時間:09:00:15.573 :233.00 :233.50 :233.00 單量:31 總量:3715
[2330 台積電] 時間:09:00:20.588 :233.00 :233.50 :233.50 單量:20 總量:3735
[2330 台積電] 時間:09:00:25.603 :233.00 :233.50 :233.00 單量:15 總量:3750
[2330 台積電] 時間:09:00:30.618 :233.00 :233.50 :233.00 單量:22 總量:3772
[2330 台積電] 時間:09:00:35.633 :233.00 :233.50 :233.50 單量:6 總量:3778
[2330 台積電] 時間:09:00:40.649 :233.00 :233.50 :233.00 單量:8 總量:3786
[2330 台積電] 時間:09:00:45.661 :233.00 :233.50 :233.00 單量:52 總量:3838
...
偵測到 Ctrl+C, 結束監聽
斷線
監聽結束

使用日 K 監聽範例

> python -m skcom.samples.kline
[23:48:49] INFO    | 系統公告: SKReplyLib_OnReplyMessage:Announcement callback.
[23:48:52] INFO    | 登入成功
[23:48:55] INFO    | 連線成功
[23:48:59] INFO    | 連線就緒
[23:48:59] INFO    | 載入 0050 的日 K 快取
[23:48:59] INFO    | 載入 2409 的日 K 快取
[23:48:59] INFO    | 載入 3037 的日 K 快取
[23:48:59] INFO    | 股票名稱載入完成
[23:48:59] INFO    |  K 請求完成
[0050 元大台灣50] 的日K資料
>> 日期:2020-04-17 :83.00 :83.25 :84.00 :82.70 :34467
>> 日期:2020-04-16 :80.20 :80.80 :81.10 :80.05 :12365
>> 日期:2020-04-15 :81.25 :81.20 :81.50 :81.00 :17315
>> 日期:2020-04-14 :79.05 :80.95 :80.95 :79.05 :13057
>> 日期:2020-04-13 :79.00 :78.80 :79.40 :78.55 :7375
[2409 友達] 的日K資料
>> 日期:2020-04-17 :7.52 :7.37 :7.64 :7.35 :88910
>> 日期:2020-04-16 :7.50 :7.42 :7.51 :7.41 :51383
>> 日期:2020-04-15 :7.56 :7.56 :7.62 :7.50 :59279
>> 日期:2020-04-14 :7.45 :7.49 :7.52 :7.42 :64789
>> 日期:2020-04-13 :7.49 :7.35 :7.65 :7.33 :76080
[3037 欣興] 的日K資料
>> 日期:2020-04-17 :39.30 :38.10 :39.60 :37.70 :46194
>> 日期:2020-04-16 :36.80 :38.10 :38.70 :36.75 :41179
>> 日期:2020-04-15 :38.80 :37.40 :39.90 :37.40 :57824
>> 日期:2020-04-14 :36.45 :38.15 :38.85 :36.05 :58945
>> 日期:2020-04-13 :35.80 :35.55 :36.80 :35.35 :60773
[23:49:38] INFO    | 偵測到 Ctrl+C, 結束監聽
[23:49:39] INFO    | 結束連線
[23:49:39] INFO    | 監聽結束

使用 Telegram 機器人範例

> python -m skcom.samples.bot
[23:55:47] INFO    | 系統公告: SKReplyLib_OnReplyMessage:Announcement callback.
[23:55:49] INFO    | 登入成功
[23:55:51] INFO    | 連線成功
[23:55:55] INFO    | 連線就緒
[23:55:55] INFO    | 載入 2409 的日 K 快取
[23:55:55] INFO    | 股票名稱載入完成
[23:55:55] INFO    | 日 K 請求完成
[23:55:55] INFO    | [2409] 友達
[23:55:55] INFO    | 昨收: 7.37, 位階: 20日線
[23:55:55] INFO    | 量能排列:
[23:55:55] INFO    |    季均量 98959
[23:55:56] INFO    |    月均量 108309
[23:55:56] INFO    |   月最大量 220059
[23:55:56] INFO    | 均線排列:
[23:55:56] INFO    |     20日 6.94
[23:55:56] INFO    |     10日 7.38
[23:55:56] INFO    |      5日 7.44
[23:55:56] INFO    |    240日 8.86
[23:55:56] INFO    |    120日 8.91
[23:55:56] INFO    |     60日 8.96
[23:55:56] INFO    | $
[23:55:56] INFO    | [2409] 友達, 站上 5 日線
[23:55:56] INFO    | ... 現價 7.52 - 09:00:03
[23:55:56] INFO    | [2409] 友達, 跌破 5 日線
[23:55:56] INFO    | ... 現價 7.43 - 11:28:18
[23:55:56] INFO    | [2409] 友達, 跌破 10 日線
[23:55:56] INFO    | ... 現價 7.38 - 11:38:48
[23:55:56] INFO    | [2409] 友達, 站上 10 日線
[23:55:56] INFO    | ... 現價 7.39 - 11:38:51
[23:55:56] INFO    | [2409] 友達, 跌破 10 日線
[23:55:56] INFO    | ... 現價 7.38 - 11:39:09
[23:55:56] INFO    | [2409] 友達, 在 10 線震盪
[23:55:56] INFO    | ... 15 分鐘 - 11:54:17
[23:55:56] INFO    | [2409] 友達, 在 10 線震盪
[23:55:56] INFO    | ... 31 分鐘 - 12:10:07
[23:55:56] INFO    | [2409] 友達, 在 10 線震盪
[23:55:56] INFO    | ... 60 分鐘 - 12:38:59
[23:55:59] INFO    | 偵測到 Ctrl+C, 結束監聽
[23:55:59] INFO    | 結束連線
[23:56:00] INFO    | 監聽結束

手機示意圖

交易日重要時機

  • 09:00 開盤, T < 09:00:00.000 會產生大量試撮 Ticks, 不可計入成交量
  • 13:25 準備收盤, 13:25:00.000 <= T < 13:30:00.000 會產生大量試撮 Ticks, 不可計入成交量
  • 13:30 收盤, 13:30:00.000 會有最後一筆撮合, 要計入成交量
  • 14:30 零股撮合
  • 14:37 零股撮合 Ticks 事件觸發, 這時候才能收到零股交易資料
  • 14:40 系統疑似統計中, 查詢個股資訊沒有回應
  • 14:45 日 K 資料出現當日交易, 系統恢復正常

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

skcom-0.9.5-py3-none-win_amd64.whl (27.8 kB view details)

Uploaded Python 3 Windows x86-64

skcom-0.9.5-py3-none-win32.whl (27.8 kB view details)

Uploaded Python 3 Windows x86

File details

Details for the file skcom-0.9.5-py3-none-win_amd64.whl.

File metadata

  • Download URL: skcom-0.9.5-py3-none-win_amd64.whl
  • Upload date:
  • Size: 27.8 kB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.2

File hashes

Hashes for skcom-0.9.5-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 ed2254bb32cb28cc373cee6fb989c9dcda120be794a636d418510f0a8970d521
MD5 80a3293925dada45758dfcf4378489ba
BLAKE2b-256 7d0b2a1f94427c1c6f170683f4ca82f9e5267e2abce36d146a7c148e900d5af4

See more details on using hashes here.

File details

Details for the file skcom-0.9.5-py3-none-win32.whl.

File metadata

  • Download URL: skcom-0.9.5-py3-none-win32.whl
  • Upload date:
  • Size: 27.8 kB
  • Tags: Python 3, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.2

File hashes

Hashes for skcom-0.9.5-py3-none-win32.whl
Algorithm Hash digest
SHA256 83adfba5afc2cfec25b95cd5f0690e661155910e6374773dc40ea76017de9ae9
MD5 fe03b173e0d5556cebafedf863f26b71
BLAKE2b-256 c2da1d8e5f418275c98c5de93277d42a82a9dc50d993bd3779099192dfe629cd

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page