trading bot演算法與軟工在程式交易上的實踐
TRANSCRIPT
![Page 1: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/1.jpg)
TradingBot演算法&
軟工在程式交易上的實踐
Philipz (鄭淳尹)2016-12-21 中山大學財管系
![Page 2: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/2.jpg)
2008 TradingBot2009 Plurk 2010 Twitter 2011 Facebook粉絲頁
2012 部落格
透過即時傳送訊息
日曆紀錄每日交易紀錄
History
![Page 3: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/3.jpg)
2008 TradingBot2009 Plurk 2010 Twitter 2011 Facebook粉絲頁
2012 部落格
透過即時傳送訊息
日曆紀錄每日交易紀錄
History
![Page 4: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/4.jpg)
個人經歷元智大學資工所
臺北榮總資訊工程師
玉山銀行資訊處專員、Acer eDC 維運工程師(CCNA)
2014 COSCUP/iThome Summit 講者
2015 Microsoft Azure 開發者大會 講者
2016 COSCUP Docker 進階工作坊
2016 Microsoft 社群開源營
元智資工專題演講、義守資工 Docker 研習營
逢甲資工 Docker 研習班
![Page 5: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/5.jpg)
翻譯著作歐萊禮《基礎架構即程式碼》譯者
歐萊禮《Docker 錦囊妙計》譯者
碁峰《Docker入門與實戰》、
《Kubernetes使用指南》審譯者
研究領域
Docker, 雲端架構, 大型主機
Java, Matlab, 機器學習
![Page 6: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/6.jpg)
![Page 7: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/7.jpg)
程式交易是什麼?
![Page 8: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/8.jpg)
程式交易的誤解
1. 沒有捷徑
2. 人工替代方案
3. 仍是高風險
4. 環節多
5. 風險承受度不同
6. 主觀,沒有答案
7. 發展自己的交易程式
![Page 9: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/9.jpg)
![Page 10: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/10.jpg)
Why use?好處
1. 紀律 - 恐懼貪婪
2. 省時省力
3. 反應快、準確
壞處
1. 缺乏彈性
2. 影響”因數”多3. Normal Accidents 真實案例
2010 美國閃崩2013 中國光大
![Page 11: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/11.jpg)
Why use?
![Page 12: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/12.jpg)
Very Difficult
![Page 14: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/14.jpg)
正確的投資心態
1. 程式交易當成副業
2. 別想一夕致富
3. 追求穩定獲利
4. 天下沒有白吃的午餐
5. 投資跟投機
![Page 15: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/15.jpg)
審視自身條件
1. 心理建設
2. 程式能力
3. 風險控管
4. 確定金融商品
5. 進出頻率
6. 恆心
![Page 16: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/16.jpg)
![Page 18: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/18.jpg)
程式交易類型
![Page 19: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/19.jpg)
Rule-based 演算法
資訊領域亦稱白箱方法
主流方法,直接因果關係
TS、MC、HTS等等
入門簡單、清楚直觀,適合非資訊領域使用者
![Page 20: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/20.jpg)
![Page 21: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/21.jpg)
ML-based 演算法
全名 Machine Learning 機器學習
資訊領域亦稱黑箱方法,資料分析
高階方法,交易軟體無直接支援,R、Matlab
入門困難、倚賴輸入資料建立模型,資訊背景
![Page 22: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/22.jpg)
Pattern Recognition● OCR● Speech recognition● Face recognition● Trading system
![Page 23: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/23.jpg)
![Page 24: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/24.jpg)
高頻交易演算法
全名 High Frequency Trading
純粹比網路速度和運算速度,建置於交易所旁
造市補貼,法規限制,台灣市場不適合?!
客製化硬體 - ASIC 特殊應用積體電路
![Page 25: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/25.jpg)
Statistics vs Machine Learning
![Page 26: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/26.jpg)
TradingBot 演算法
![Page 27: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/27.jpg)
系統架構
![Page 28: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/28.jpg)
群益API(✱✱✱)
![Page 29: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/29.jpg)
開發流程
![Page 30: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/30.jpg)
利用訊號處理技術
● Input○ Tick only
● DWT○簡單
○快速
○去除雜訊
![Page 31: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/31.jpg)
模式 Pattern?Right man + Right thing +Right moment● 進出頻率● 跨領域方法Ex: OP Open Interest?
![Page 32: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/32.jpg)
模式 Pattern?Right man + Right thing +Right moment● 進出頻率● 跨領域方法Ex: OP Open Interest?
![Page 33: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/33.jpg)
TradingBot - Trend following
![Page 34: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/34.jpg)
TradingBot - Trend reversal
![Page 35: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/35.jpg)
TradingBot - Overweight
![Page 36: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/36.jpg)
Why Day Trading?● 以一天為分割點
● 每天都是獨立,方便切割
● Cross-validation較簡單
● 留倉交易,如何切割回測資料?
● 留倉交易,如何界定是Pattern還是運氣?
● 留倉交易,需參考資料是否更多?
● TradingBot is Day Trading~
![Page 37: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/37.jpg)
Machine Learning - SVM
![Page 38: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/38.jpg)
TradingBot Flowchart
![Page 39: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/39.jpg)
Big Problems1. 盤整及突破的判斷
2. 區域的最高點及最低點
3. 轉折的判斷
4. 出場條件 - 停損停利
5. 加碼問題
6. Patterns or Just Lucky
![Page 40: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/40.jpg)
範例1:加碼問題
2012年回測結果
![Page 41: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/41.jpg)
範例2:選擇權回測
直接拿選擇權價格來回測,倒果為因?
1. 利用期交所每日收盤Tick資料來回測
2. 動態定商品(7500CALL或8000PUT)3. 再以商品及時間點取Tick價格。
4. 一定要有選擇權回測的資料才能確定策略的可用性。
![Page 42: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/42.jpg)
回測程式 - In MemoryWalking Forward記憶體直接存取
多核心平行計算
暴力法能解決的
就不要花腦力去最佳化
![Page 43: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/43.jpg)
資料科學家 vs 資料工程師
![Page 44: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/44.jpg)
兩者差異
科學家:統計、模型、演算法、機器學習
白領、白手、單點
工程師:網頁爬蟲、資料收集、平台、架構
藍領、黑手、全面
![Page 46: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/46.jpg)
![Page 47: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/47.jpg)
Engineer
把数据科学做为一门团队学科
![Page 48: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/48.jpg)
軟體工程在程式交易上的應用
![Page 50: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/50.jpg)
Software EngineeringTherac-25 事件 - 放射性治療儀器設計缺陷
軟體開發的困難是本質問題,只能漸進式的改善。
軟體開發技術
自動化生產線 - pipeline
軟體專案管理
自動化測試 - Auto Testing
量測指標 - Code Metric -> Trading performance metrics
![Page 51: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/51.jpg)
Top-down Approach
土木建築 - 逆打工法
台北101
![Page 52: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/52.jpg)
GitLab-RunnerGitLab-Runner
Development Flow
GitLab-Runner
![Page 53: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/53.jpg)
持續整合、持續交付
方法論之一,漸進式的持續不斷改善。CI(Continuous Integration)CD(Continuous Delivery)
![Page 54: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/54.jpg)
![Page 55: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/55.jpg)
![Page 56: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/56.jpg)
![Page 57: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/57.jpg)
![Page 58: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/58.jpg)
雲端交易回測系統容器化技术构建一个“反脆弱”的交易系统
![Page 59: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/59.jpg)
自動化已是主流
![Page 60: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/60.jpg)
![Page 61: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/61.jpg)
軟體工程
既是工程,也是藝術
![Page 62: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/62.jpg)
程式交易是
沒有一步登天的
交易領域的物理嫉妒
![Page 63: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/63.jpg)
![Page 64: Trading bot演算法與軟工在程式交易上的實踐](https://reader033.vdocuments.pub/reader033/viewer/2022050714/5872a8e51a28ab07208b7431/html5/thumbnails/64.jpg)
感謝您的聆聽