[自py系列2] 投資策略驗證系統

  • R0
  • Day 2, 10:40‑11:10
  • Chinese talk w. Chinese slides
  • Other
  • Intermediate

對生活的不滿足, 又沒有時間成為一個專業的投資(機)者, 不想依賴複雜又資訊爆炸的股市套裝軟體, 於是捲起袖子, 抱著把它 "PY好PY滿" 的決心, 泡杯咖啡, 對著電腦, 在無車無人的夜深時刻, 開始自py一個投資策略的驗證系統.

1. 何謂股票投資策略, 用 Python 做適合麽 ?
2. 架構簡單的策略驗證系統
3. 與模組們的親密接觸
4. 對投資是否有幫助, Demo 數據會說話 !

作者: John Hu(胡訓誠), Kilik Kuo(郭彥廷)

Talk Detail

*Update* for Stage 2 針對審查議題更詳細說明 Q1. 為何用'自py' ? Ans : 前一次投稿的議題是'自幹色彩管理系統', 但不確定'自幹'這個用詞是否會造成少部份人的不適, 想到 py 的發音是'拍', 而程式也都是基於 python 語言, 所以想到用自py代替自幹, 也希望透過'自幹'這個行為, 讓更多人願意捲起袖子來建造輪子給人用, 而非變成只懂用輪子的人, 這不是熟重熟輕的問題, 因為這兩類人在軟體工程中都是必要的, 但我們感覺到這天秤似乎越來越傾斜 >"< Q2. 為什麼用 python ? 為什麼是這個題目 ? Ans : 用 python 當爬蟲一直很熱門, 但爬完資料後的應用有多深有多廣是可以持續探索的, 很多人用來抓取股票資料, 但很少看到公開後續應用的作法, 我們認為有必要當先鋒. 目前商用(銀行交易室/證券代操)工具, 多屬是十多年前的開發設計, 若想更快速地改動參數驗證策略所需要的執行時間是有很大的改善空間的, 透過現在的各種**硬體加速**技術, 所以這個題目與另一個主題 **(Py)OpenCLGA** 再接下來會進行整合, 希望能對現有困境有所突破. Q3. 這個策略驗證系統目前能作到什麼 ? Ans : 是一個已經具備 end to end 功能的系統. 也就是開使執行之後, 便可以 1. 自動下載預設目標股票的股價資料, 2. 更新資料庫, 錯誤恢復. 3. 讀取策略資料, 並產生驗證任務, 執行驗證 4. 將驗證結果(適合買進/適合賣出)通知註冊使用者. 5. 等待下一次設定的啟動時間, goto 1. 基本上實作是完整串接的, 而且**幾乎全部都是使用 python 內建的 module 就可以完成**(除了 Beautifsoup 外, 但也可以不用, 只要花點功夫處理html/xml即可), 唯實際運作的驗證/策略設計程式碼我們認為屬於團隊 know-how, 所以並沒有公開完整 repo, 只將各模組層級與部份程式碼公開, 希望讀者能透過這樣子的基礎工具架構屬於自己的流程. // ============================================================================================= // **股票策略之驗證(回測)** 即利用股價所延伸出來的多種技術指標 (*移動平均 Moving Average, 相對強弱指數 Relative Strength Index, KD 隨機指標 Stochastic oscillator* ... etc), 透過參數組合後得到 "進/出場條件", 並利用這個進出場的條件, 針對該公司的過去數年歷史股價進行模擬交易, 最後計算得到投資報酬率, 來衡量一個策略的優劣. 由於股價的取樣時間可以調控, 短至每五秒做一次股價採樣, 長至以每日開盤收盤最高最低等四種價格作為該日唯一採樣, 股市價格的資料可以相當龐大, 從而造成運算模擬耗時耗力, 於是多數投資者接須使用企業等級軟體來作為投資參考. 而這幾年程式能力的普及與軟體的簡化, 也使得透過程式自動化交易越來越普遍與可行. 此議程希望, 透過簡要的說明, 將策略研究的大方向搭配最簡單的策略, 來讓聽眾認識如何利用 python 來解決自己的投資選擇問題. Ref : 1. [證券投資策略與驗證](http://jaylant.pixnet.net/blog/post/23553331-[invest]-證券投資策略與驗證) 2. [投資組合的量化概念](http://www.bituzi.com/2014/09/quantify-trading-diversify.html)

Slides Link

Speaker Information

Kilik Kuo

改變自己先, 影響世界後.

https://www.linkedin.com/in/kilik-kuo-3923a454/