★ 職人鉅作
★ 最省錢•最實用•最快速上手的 Python 投資工具
■【什麼是程式交易】
程式交易顧名思義是用程式來輔助做出交易的決定。可以寫程式用一些量化指標,像是使用營收成長或者使用本益比來選股挑選一籃子標的,然後每月或每季換股,這種作法就跟一些股票網站的選股功能有點像。
■【程式交易的優點】
還在用人力去看營收本益比的資料去選股?
還在交易時段坐在電腦前面等待買賣時機下單?
或是在研究策略的時候,要拿歷史資料來計算這個策略可不可行?
→ 這些都可以用程式來解決!省下大量的人力與時間成本。
■【為什麼使用 Python 進行程式交易】
市面上常見的選股以及技術分析軟體 XQ、MultiCharts 沒有提供的功能都要從零開始做一個出來,然而 Python 自由度高,不管是使用 AI 來做買賣判斷、寫爬蟲去社群媒體爬一檔股票的網路聲量、還是使用現成的函式庫來做一些複雜的運算都可以輕易做到。
→ 本書可以提供以上協助,不僅從 Python 基礎開始教學,再搭配現成策略做修改進行交易!
本書特色:
零程式交易經驗也能使用的自動交易書籍!
★高 CP 值的自動交易★
本書主要使用 Python + Shioaji 開發程式交易策略,包含可以直接用來交易的均線交易程式以及網格交易程式範例,不需額外買套裝軟體和購買報價,幫助讀者跨過剛開始使用 Python 交易最難過的門檻,不用拿自己的錢測試。
★立馬 Python 用場★
有了現成的自動交易程式後,讀者就能一心鑽研交易邏輯與交易策略;待規劃出新策略,需要使用新策略做成交易機器人時,只要參考書中的 Python 交易機器人範例,立即做修改即可。
★交易程式超值附贈★
本書內附可以直接下單的交易程式,幫助讀者馬上學、馬上理解,亦可至深智數位官網下載:deepmind.com.tw
作者簡介:
卓真弘
交通大學資工系•清華大學資工系研究所•佳能企業演算法工程師
作者序
★ 談談自己理解的各種投資方法
很高興這次受到深智數位的邀請,有機會可以出書。這本書是在 iThome 鐵人賽所寫的「從零開始使用 Python 打造簡易投資工具」系列文為基礎上寫的。當初參賽的動機,一方面是之前有學過其他 Python 選股課程,想增加自己對程式交易技能的掌握程度,另一方面則是在加密貨幣交易所用了網格交易之後,想要寫一個股票的版本來試試看。在這本書前面的序文裡面,首先談談我自己所理解的各種不同的投資方法,一方面來說如果有讀者在讀這本書的時候對投資沒有概念的話,可以幫助讀者瞭解這本書的定位,另一方面來說或許有些人比起使用技術分析做程式交易,更適合其他的投資方法也說不定。
首先談談基本面分析,就我所知道的會利用營收、股票盈餘、毛利率、股東權益報酬率之類的基本面指標來對股票作估價,在股票價值被低估的時候買進,股票價值被高估的時候賣出。有一些比較進階的作法還會搭配公債利率、消費者物價指數、生產者物價指數的總經指標來做買賣決策。這種做法的優點在於他不用太在意短期的股價波動,而且這樣做交易相較技術分析感覺比較有道理,缺點在於這類的分析比較需要個人的主觀判斷,還有他的交易周期比較長,等到發現判斷錯誤的時候,可能都幾個月甚至幾年過去了。舉個例子來說,下圖是國內的總體經濟數據網站 MacroMicro 的頁面,如果要使用基本面分析交易的話就是要利用類似這些數據來做出買賣決定。
接下來談談技術分析,技術分析會使用均線、MACD、RSI 之類的指標來判斷買賣點,有時候會搭配停損點和停利點來做交易,技術分析的主流是順勢交易,在標的持續上漲的時候買進,在標的持續下跌的時候賣出或放空,技術分析的優點在於操作比較簡單,只要按照指標操作就能賺錢,前提是有找到合適的指標,而且他的交易周期比較短,如果交易方法有問題可以比較快發現,技術分析的缺點在於他需要在買賣點出現的那一瞬間做交易,也就是需要盯盤,另一個問題是技術分析比較難找到一個有說服力的理由來說明為什麼這個策略有效,有一些玄學的感覺。舉個簡單的例子來說,像下圖用永豐金 e-leader 取得的 0052 的綠色均線和藍色均線,在綠色均線往上穿越藍色均線買,綠色均線往下穿越藍色均線賣就是一個基本的技術分析交易方法,如果在交叉的時候沒有馬上進場的話,報酬可能就不如預期。
最後來談談指數化投資,這個流派基本論述是在過去的研究裡面,大多數基金的投資績效輸給直接投資大盤指數,這其中有管理費的以及交易成本的因素在裡面。所以比起自己研究主動投資,不如直接買進追蹤指數的 ETF 型基金就好。然後還會利用股票指數 ETF 和債券指數 ETF 組成資產配置來降低風險,傳統的配置是股票市值和債券市值比例 6:4。隨著時間經過股票和債券的價格會變動偏離 6:4 的比例,所以每年會做一次再平衡,在股票下跌的時候,買股票賣債券,或是在股票上漲的時候賣股票買債券,把比例調回去 6:4。
這個策略的優點在於他的交易頻率非常低,而且市面上已經有現成的工具可以用,對於一些不方便做交易和不想研究交易的人來說是比較好的選擇。不過在某些時間,像是通膨特別嚴重的時候股債可能會一起下跌,這是可以注意的地方。關於想做這方面的研究使用的工具,舉個例子,可以用 Portfolio Visualizer 這個網站可以用來看看自己資產配置的歷史績效如何,他可以調整配置資產的種類,股票債券房地產黃金的選項都有,也可以調整每個資產的配置比例。
★ 談談自己理解的各種投資方法
很高興這次受到深智數位的邀請,有機會可以出書。這本書是在 iThome 鐵人賽所寫的「從零開始使用 Python 打造簡易投資工具」系列文為基礎上寫的。當初參賽的動機,一方面是之前有學過其他 Python 選股課程,想增加自己對程式交易技能的掌握程度,另一方面則是在加密貨幣交易所用了網格交易之後,想要寫一個股票的版本來試試看。在這本書前面的序文裡面,首先談談我自己所理解的各種不同的投資方法,一方面來說如果有讀者在讀這本書的時候對投資沒有概念的話,可以幫助讀者瞭解這本書的定位,另一方面來說或...
目錄
Chapter 01 為何要使用程式做交易
1.1 什麼是程式交易
1.2 程式交易的優點
1.3 使用python 的優點
1.4 交易工具選擇(股票vs 期貨vs 選擇權)
Chapter 02 環境設定和基本 Python 語法
2.1 申請永豐金證券帳號並開通 Shioaji
2.2 安裝 Anaconda (64-bit)
2.3 安裝函式庫
2.4 安裝 DB Browser for SQLite
2.5 基本 Python 語法與範例程式碼連結
Chapter 03 獲取資料
3.1 使用 yfinance 取得日線資料
3.2 使用 shioaji 取得 ticks 資料
3.3 使用 Shioaji 取得 1 分線資料
3.4 如何把 1 分線轉為小時線或其他週期
3.5 把資料存進資料庫
3.6 把資料從資料庫讀出來
Chapter 04 製作基本的均線交易策略
4.1 使用 ta-lib 製作均線訊號
4.2 計算策略的投資報酬率
4.3 均線訊號最佳化
4.4 過擬合問題
Chapter 05 介紹其他的交易指標和交易策略
5.1 MACD 指標
5.2 KD 指標
5.3 RSI 指標
5.4 布林通道
5.5 價格通道
5.6 網格交易策略
Chapter 06 均線交易機器人
6.1 計算策略目標部位
6.2 抓取目前部位大小
6.3 實際掛單
Chapter 07 網格交易機器人
7.1 計算策略目標部位
7.2 抓取目前部位大小
7.3 實際掛單
Chapter 08 使用外部的下單機和資料源
8.1 以下單大師為例示範下單機的用法
8.2 以 Touchance 為例示範外部訊號源的用法
Chapter 01 為何要使用程式做交易
1.1 什麼是程式交易
1.2 程式交易的優點
1.3 使用python 的優點
1.4 交易工具選擇(股票vs 期貨vs 選擇權)
Chapter 02 環境設定和基本 Python 語法
2.1 申請永豐金證券帳號並開通 Shioaji
2.2 安裝 Anaconda (64-bit)
2.3 安裝函式庫
2.4 安裝 DB Browser for SQLite
2.5 基本 Python 語法與範例程式碼連結
Chapter 03 獲取資料
3.1 使用 yfinance 取得日線資料
3.2 使用 shioaji 取得 ticks 資料
3.3 使用 Shioaji 取得 1 分線資料
3.4 如何把 1 分線轉為小時線或其他週期
3...