2022年12月8日 星期四

Python 學習筆記 : 台積電買幾股手續費才不吃虧

今天在 "Python 程式設計入門與運算思維" 這本書 6-2-3 節裡發現一個對存股族很實用的範例 : 計算買零股時要買多少股, 才不會因為券商手續費有低消 20 元而吃虧? 這是因為買賣股票時券商會收取成交金額的 0.1425% 作為手續費 (不足 20 元以 20 元計). 如果買的股數少卻還要被收 20 元手續費就不值得, 反正手續費低消是 20 元, 那何不買多一點讓手續費剛好是 20 元? 

此範例就是要算出在最低手續費 20 元情況下至少要買幾股才划算 (多買沒關係, 少買就吃虧), 用 Python 的內建模組 math 就可輕易算出來, 計算式如下 :

shares=math.ceil(20/(float(price)*0.001425))

此處將股價 price 乘以 0.001425 得到應付手續費, 再用低消 20 元除即可得到 20 元手續費可買股數, 然後傳給 math.ceil() 無條件捨去小數股數. 

底下使用 twstock 套件取得近一 個月台積電 (2330) 收盤價串列 (最後一個是昨日收盤價), 然後用迴圈計算最低應買股數, 關於 twstock 參考 :


測試如下 :  

>>> import twstock   
>>> tw2330=twstock.Stock("2330")   
>>> tw2330.price     
[376.0, 385.5, 379.5, 390.0, 391.5, 395.0, 384.0, 382.0, 390.0, 399.0, 417.0, 407.5, 441.5, 445.0, 480.0, 487.0, 485.0, 487.0, 482.0, 491.0, 492.0, 496.0, 498.0, 480.5, 487.0, 490.0, 498.5, 492.5, 489.0, 478.0, 475.0]  
>>> import math    
>>> for price in tw2330.price:    
...     shares=math.ceil(20/(float(price)*0.001425))    
...     print('股價 %5.2f 應買至少 %5.0f 股' %((price), shares))    
...
股價 376.00 應買至少    38 股
股價 385.50 應買至少    37 股
股價 379.50 應買至少    37 股
股價 390.00 應買至少    36 股
股價 391.50 應買至少    36 股
股價 395.00 應買至少    36 股
股價 384.00 應買至少    37 股
股價 382.00 應買至少    37 股
股價 390.00 應買至少    36 股
股價 399.00 應買至少    36 股
股價 417.00 應買至少    34 股
股價 407.50 應買至少    35 股
股價 441.50 應買至少    32 股
股價 445.00 應買至少    32 股
股價 480.00 應買至少    30 股
股價 487.00 應買至少    29 股
股價 485.00 應買至少    29 股
股價 487.00 應買至少    29 股
股價 482.00 應買至少    30 股
股價 491.00 應買至少    29 股
股價 492.00 應買至少    29 股
股價 496.00 應買至少    29 股
股價 498.00 應買至少    29 股
股價 480.50 應買至少    30 股
股價 487.00 應買至少    29 股
股價 490.00 應買至少    29 股
股價 498.50 應買至少    29 股
股價 492.50 應買至少    29 股
股價 489.00 應買至少    29 股
股價 478.00 應買至少    30 股
股價 475.00 應買至少    30 股
>>>

可見以目前台積電價位, 應買股數大約是 30 多股左右, 以昨日收盤 475 元來說至少要買 30 股才划算, 因為買 10 股也是要付 20 元手續費, 那何不買 30 股? 有空時用 Javascript 寫一個放在網站上唄. 

沒有留言 :