glance-tw-stock CLI:假如你需要用 CLI 上班偷看盤



前言

  • 跟朋友聊天聊到這個需求:上班族有時候不是這麼方便一直盯盤 (台股)、也未必可以一直用手機;要是可以用電腦看就更方便了。
  • 於是我做了一個 shell script (以及後來的 arbinfo)
  • 免責聲明:我對股票沒太大興趣,絕對不會在上班偷看的 (?)

更新:過了一陣子之後,我做了網頁版,貼近一般上班族的需求,參考 Arbinfo低調清單 功能



使用腳本

  • 要有 jq 這個指令,mac 可以用 brew install jq 安裝。

先下載 shell script (.sh)

1
2
3
4
curl -s https://gist.githubusercontent.com/ktlast/52994bb2d1da5d590b4c0d02a36d5719/raw/glance-tw-stock.sh > glance-tw-stock.sh

# 設定權限
chmod +x glance-tw-stock.sh

執行!

1
./glance-tw-stock.sh

會進入主迴圈,畫面上只會有冒號 :

可以輸入 h 查看使用方式:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
: h
help:

[(n)ew | (l)ist | (d)elete | (w)atch | (q)uit | (h)elp | (i)mport | (e)xport]

  - (n)ew: add new stock target with code, shares and avg cost

  - (l)ist: list all stock target

  - (d)elete: delete stock target

  - (w)atch: start watching

  - (q)uit: quit

  - (h)elp: show this message

  - (i)mport: import stock targets from env file

  - (e)xport: export/backup stock targets to env file

使用範例

新增一支股票,例如台積電 2330,持有 1000 股,平均成本 777 元;

腳本會分別詢問股票代碼、持有股數、平均成本:

1
2
3
4
5
# 按下 n 新增
: n
 > Add stock code: 2330
 > with shares: 1000
 > @ avg cost: 777

再用 n 一次,新增鴻海 2317,持有 2000 股,平均成本 155 元:

1
2
3
4
: n
  > Add stock code: 2317
  > with shares: 2000
  > @ avg cost: 155

按下 l 查看目前持有的股票:

1
2
3
4
5
6
7
: l
╭─────────────────────────────────────╮
┊ Stock Code	   Shares @      Cost ┊
=====================================┊       2330	    1,000 @    777.00 ┊
┊       2317	    2,000 @    155.00 ┊
╰─────────────────────────────────────╯

準備好之後,按下 w 開始監控:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
refresh in (3.00)s

╭─────────────────────────────────────────────────────────╮
┊      Stock ┊        Bid ┊        Ask ┊              P/L ┊
=========================================================|       2330       818.00       819.00             41,000 |
|       2317       150.50       151.00             -9,000 |
╰─────────────────────────────────────────────────────────╯



(q)uit:

腳本每 3 秒會去更新一次報價,並計算損益。


Note

  1. 受限於證交所 API (免費) 的限制,報價最快 5 秒更新一次。所以即使改了腳本讓他每秒更新一次報價也沒有用。

按下 q 退出監控模式。

1
2
3
(q)uit: q
Watching Stopped.
:

假設我們再加上緯創 3231

1
2
3
4
: n
 > Add stock code: 3231
 > with shares: 1000
 > @ avg cost: 133

然後,我們現在不再需要查看鴻海 2317 的報價,可以按下 d 刪除:

1
2
3
: d
 > Delete stock code: 2317
3231 2330  # 回傳的是剩下的股票代碼

可以用 l 確認:

1
2
3
4
5
6
7
: l
╭─────────────────────────────────────╮
┊ Stock Code	   Shares @      Cost ┊
=====================================┊       3231	    1,000 @    133.00 ┊
┊       2330	    1,000 @    777.00 ┊
╰─────────────────────────────────────╯

備份與載入

一般情況下腳本不會儲存資料,所以如果要備份可以用 e 匯出。

1
2
: e
Exporting to [./.glance.sh.env]

再次執行腳本時,不會自動載入上次的紀錄

1
2
3
4
5
6
7
./glance-tw-stock.sh
Press (h) for help.
: l
╭─────────────────────────────────────╮
┊ Stock Code	   Shares @      Cost ┊
=====================================╰─────────────────────────────────────╯

可以用 i 匯入:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
: i
Importing from [./.glance.sh.env]
: l
╭─────────────────────────────────────╮
┊ Stock Code	   Shares @      Cost ┊
=====================================┊       3231	    1,000 @    133.00 ┊
┊       2330	    1,000 @    777.00 ┊
╰─────────────────────────────────────╯
# 上次匯出的結果回來了



REF

  1. me; source code:

主題 StackJimmy 設計