Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

[系列活動] 使用 R 語言建立自己的演算法交易事業

28,950 views

Published on

我們希望藉由近幾年資料科學的興起,推廣正確的金融交易知識,包括金融資料分析與建立自己的演算法交易事業。自己的策略自己做,自己的風險自己控,自己的部位自己顧。在本課程裡,1 就是 1,2 就是 2,40 就是 40 (事實),沒有怪力亂神,沒有定義不清,一切的一切,統計說話,數據說話!本課程與上一課程 (用 R 輕鬆做交易策略分析及自動下單) 部分重覆,本次除針對理論做更深入講解,亦增加股票、期貨、選擇權開發實務分享。

Published in: Data & Analytics
  • Login to see the comments

[系列活動] 使用 R 語言建立自己的演算法交易事業

  1. 1. R不是重點!! 資料科學愛好者年會系列活動 — 使用 R 語言建立自己的演算法交易事業 Speaker: 吳牧恩 Date: 2017.08.12(六) 2017/08 1 不是每個人都適 合當事業! 包刮我!
  2. 2. 過去… 破產過一次~~ 沒錢.. 做研究.. 做研究… 做研究…. 過去… 在教完 “資金管理&策略建構”課程後, 我最常被問的問題是….. 2017/04 2
  3. 3. 社會人士:認真向學,專業問題很多~ 2017/04 3 金融背景:『聖盃在哪?』 工程科系:『你 賺 多 少?』
  4. 4. 關於我…. • 清華數學系 • 清華資工系 • 密碼學 • 資訊理論 • 中研院博士後 • 預測市場 • 金融交易 • 東吳數學系 • 北科資財系 2017/08 4
  5. 5. 先來看看 2017.08.03 AM08:45 史 上 最 狂 下 引 線 !! 2017/08 5 出處:劉偉宸 臉書
  6. 6. 你為何要交易? 初入市場的幾個階段! • 難道我學過如來神掌,也要告訴你? • https://www.youtube.com/watch?v=i5uCWL0nsFA • 初入市場的第一階段:花大錢遍尋名師~ 尋找聖盃~ • 初入市場的第二階段:果然是百年難得一見的.. • 初入市場的第三階段:受傷慘重!? or 陣亡出場!? 2017/08 6 出局 留下
  7. 7. 這門課跟過去的課有什麼不一樣? •Q: 為何是演算法交易? •Q: “演算法交易” 是 “程式交易” 嗎? •Q: 為何要當事業來做? •Q: 需要什麼背景? 2017/08 7
  8. 8. 課堂練習 http://zuv.io/1556148a00 2017/08 8 你修過幾門投資交易 相關課程?
  9. 9. 你是百年難得一見的交易奇才嗎!? 2017/08 9 主觀交易…… 計量交易 傑西李佛摩 人類史上最偉大的投機家 大起大落八次 最後….. 西蒙斯(Jame Simons) 文藝復興科技股份有限公司 大獎章基金 得“計量”者得天下!?
  10. 10. 2017/08 買 買 買 買 賣 賣 賣 +14 +15 +13 +10 +7 10
  11. 11. 過去股市名嘴喊盤,現在資料科學說話 2017/08 11
  12. 12. 加上量放大的條件? 2017/08 12
  13. 13. 烏雲罩頂: n天後的機率分佈 2017/08 13
  14. 14. 空頭吞噬: n天後的漲跌分佈 2017/08 14
  15. 15. 今天想帶給大家的內容 • 建構自己的演算法交易策略 • 下載資料、讀取資料、畫K線、簡單回測 • 婆婆媽媽都能懂的交易統計學 • 績效:勝率、賠率、MDD、獲利因子 • 策略:濾網、動量、加碼 • 股票、期貨策略開發實務 (資金管理理論與實務) • 理論:凱利賭徒、最佳比例、槓桿空間模型 • 實務:固定分數、固定比例 • 選擇權交易策略開發 • 選擇權介紹 • 實做凱利精神運用於台指選擇權策略開發 2017/08 15
  16. 16. 哪裡下載R語言? 2017/08 16 免費 開源 好用
  17. 17. R Basic: 向量、四則運算、畫圖 • 加減乘除四則運算:1+2^3 • 向量產生的幾種方式: • a=1:100 • b=100:1 • c=rep(3,5) • d=seq(3,51,2) • 向量運算:a=a+1,a+b,a*b • 和:sum(a) • 累積和:cumsum(a) • 畫圖:plot(cumsum(a),col="red",type="l") 2017/08 17
  18. 18. R Basic: 迴圈 • a=0 • for (i in 1:100){a=a+1} • a=0 • while (a<=100){a=a+1} • a=0 • for (i in seq(1,99,by=2)){a=a+i} 2017/08 18 1+1+1+…+1=? 1+1+1+…+1=? 1+3+5+…+97+99=?
  19. 19. 安裝quantmod • install.packages("quantmod") • library(quantmod) 參考網站: • http://www.quantmod.com/ 2017/08 19
  20. 20. 資料哪裡來? 使用quantmod: getSymbols 2016/09 20 不同的 報價源 DATA
  21. 21. 下載資料 getSymbols • 下載資料(預設Yahoo Finance) • 蘋果: getSymbols("AAPL") • 台積電: STK=get(getSymbols("2330.tw")) • 不同的資料源: • getSymbols('MSFT',src='google') • getSymbols("DEXJPUS",src="FRED") • 資料格式 • 使用head、tail • 六個欄位:開高低收(OHLC)、量(Vol)、還原權值(Adjusted) 2017/08 21
  22. 22. 2016/09 22
  23. 23. Yahoo Finance已經崩壞!! •1. 自己爬官方資料 •2. 自己買官方資料 •3. 自己抓即時資料 •有了正確的資料,才可以開始研發策略~ •Garbage In Garbage Out 2016/09 23
  24. 24. 好的資料是有價值的!? Yahoo Finance FUSION$360台股資料 2017/08 24
  25. 25. 感謝FUSION$360救急~ 提供台股歷史資料API界接! 2017/08 25 有興趣者請洽詢 台灣金融科技股份有限公司
  26. 26. 讀取資料 read.csv • 確認已下載檔案 “2330.txt” • 開啟R script: “Read_TW_Stock.r” • 讀取文字檔 “2330.txt” • setwd("C:/Users/mn/Desktop/20170812資料科學年會/") • STK_name="2330" • STK=read.csv("C:/Users/mn/Desktop/20170812資料科學年會/TW50/2330.txt") • timeCharVector = paste(STK[,1]) • timeVector=strptime(timeCharVector,"%Y-%m-%d",tz=Sys.timezone()) • STK=cbind(STK$Open,STK$High,STK$Low,STK$Close,STK$Volume) • STK=xts(STK, as.POSIXct(timeVector)) • colnames(STK)=c("Open","High","Low","Close","Volume") 2017/08 26
  27. 27. 讀取資料 read.csv • 資料格式 • 使用head(STK)、tail(STK) • 五個欄位:開高低收(OHLC)、量(Vol) • Op(STK) • Hi(STK) • Lo(STK) • Cl(STK) • Vo(STK) • SMA(Cl(STK),5) • MACD(Op(STK)) 2017/08 27
  28. 28. 畫K線圖: chartSeries • 時間週期 • 日K: Default • 週K: to.weekly(STK) • 月K: to.monthly(STK) • 自行定義? 週三K • 時間範圍 • STK["2013"] • to.weekly(STK["2013::2015"]) • STK["2013-01-01::2013-03-02"] • 畫圖(Charting) • barChart(STK["2015-01-01::2015-02-03"]) • chartSeries(STK, subset="2015-12-1::2016-03-21",theme="white") 2017/08 28
  29. 29. 技術分析指標 • 均線 • SMA(Cl(STK)) • addTA(SMA(Cl(STK)), on=1, col="blue") ## default: n=10 • addTA(SMA(Cl(STK),n=20), on=1, col="red") • MACD • addMACD() • 不靈通道(Bollinger band) • addBBands() 2017/08 29
  30. 30. 回測前置作業 •獲取台積電資料 • STK=get(getSymbols("2330.tw")) •直接讀取資料 • setwd("C:/Users/mn/Desktop/20170812資料科學年會") • source("Read_TW_Stock.r") •轉換成周K,矩陣類別 • STK=as.matrix(to.weekly(STK)) 2017/08 30
  31. 31. 回測前置作業 •STK的列名稱(Week) • rownames(STK) •有多少個日期? • length(rownames(STK)) •產生紀錄每筆交易損益的向量 • numeric(length(rownames(STK))) •產生紀錄每筆交易損益的向量,並附上日期 • profit=setNames(numeric(length(rownames(STK))), rownames(STK)) 2017/08 31
  32. 32. • 每周損益:周K收盤價-周K開盤價 • profit[m]=STK[m,4]-STK[m,1] • profit[m]=Cl(STK)[m]-Cl(STK)[m] • 每週都要計算! • for (m in rownames(STK)) { • profit[m]=STK[m,4]-STK[m,1] • } • 檢查!? • head(cbind(STK[,c(1,4)],profit),10) 台積電: 週一開盤買,週五收盤賣 2017/08 32
  33. 33. 損益績效 • 損益向量 • profit • 總損益 • sum(profit) • 累計損益 • cumsum(profit) • 畫出累計損益 • plot(cumsum(profit), type="l",col="red",lwd=2) • abline(h=0,col="green") 2017/08 33
  34. 34. 測試一下Yahoo Finance的資料會如何? Yahoo Finance Fusion$360台股資料 2017/08 34
  35. 35. 練習 •1. 若是開盤賣,收盤買? •2. 日K價購損益績效如何? •3. 月K架構損益績效如何? •4. 其他股票? 2017/08 35
  36. 36. 婆婆媽媽都能懂的交易的統計學 勝率、賠率、回檔、最大回檔、獲利因子 動量策略、加碼、穩固性測試 2017/08 36
  37. 37. 勝率 • profit= c(-10,15,-20,-16,20,-8,-10,30,-10,25) • 贏的次數 • length(profit[profit>0]) • 總交易次數 • length(profit[profit!=0]) • 勝率 • length(profit[profit>0])/length(profit[profit!=0]) 2017/08 37
  38. 38. 賺賠比 • profit= c(-10,15,-20,-16,20,-8,-10,30,-10,25) • 平均賺 • mean(profit[profit>0]) • 平均賠 • mean(profit[profit<0]) • 賺賠比 • mean(profit[profit>0])/abs(mean(profit[profit<0])) 2017/08 38
  39. 39. • Total Profit: 107.85 • Trading Days: 494 • Profit Per Trade: 0.2256 • # of Win: 257 • Win Rate: 53.76569 % • Winning Average: 2.476654 • Losing Average: -2.392081 • Maximum Draw Down: 48.5 • The Periods of MDD: 41 47 50 63 68 • Profit Factor: 1.20401 • Total Profit/MDD: 2.223711 台積電: 週一開盤買,週五收盤賣! 績效模組: performance.R 2017/08 39
  40. 40. 最大回檔(maximum drawdown, MDD) • 回檔(DD) • 最好不要有回檔(虧損、風險) • 如果有一個策略,天天都在創新高 (No DD) • 絕對最大回檔(MDD) • 距離上次高點的最大回檔距離 • 比例最大回檔(MDD%) • 回檔距離/前波高點高度 • 穩定度的表現:總獲利/MDD 2017/08 40
  41. 41. 獲利因子(profit factor, PF) • profit= c(-10,15,-20,-16,20,-8,-10,30,-10,25) • 賺的和 / |賠的和| • sum(profit[profit>=0])/abs(sum(profit[profit<0])) • 意義:每輸1單位,必可再換來PF單位的獲利 • 勝率低無所謂? • 賺賠比低無所謂? • 交易次數很少無所謂? 2017/08 41
  42. 42. 課堂練習 http://zuv.io/1556148a00 2017/08 42 試計算損益向量 profit= c(-5,15,-20,-16,15,-18) 的MDD與PF分別為多少?
  43. 43. 台積電這幾年都在多頭,每週開盤買 當然賺! 考慮多空: 開低買,開高賣 2017/08 43
  44. 44. 週一開低買,開高賣,週五收盤前出 • 第一週是否可以交易? • 先紀錄第一週收盤 • lastC=STK[1,4] ## 或lastC=Cl(STK)[1] • 交易邏輯回測 • for (m in rownames(STK)[-1]) { if(STK[m,1]<=lastC){profit[m]=STK[m,4]-STK[m,1]}else( profit[m]=STK[m,1]-STK[m,4]) lastC=STK[m,4] } 2017/08 44
  45. 45. TSMC: 開低買,開高賣 • Total Profit: 128.35 • Trading Days: 494 • Profit Per Trade: 0.2690776 • # of Win: 242 • Win Rate: 50.73375 % • Winning Average: 2.659711 • Lossing Average: -2.192766 • Maximum Draw Down: 47.5 • The Periods of MDD: 28 38 52 64 108 • Profit Factor: 1.249078 • Total Profit/MDD: 2.702105 2017/08 45
  46. 46. 練習:開低1%買,開高1%賣,收盤前空手 lastC=STK[1,4] for (m in rownames(STK)[-1]) { if(STK[m,1]<=lastC*0.99){profit[m]=STK[m,4]-STK[m,1]} if (STK[m,1]>=lastC*1.01){profit[m]=STK[m,1]-STK[m,4]} lastC=STK[m,4] } • Q: (最佳化參數) 開低?%買,開高?%賣,收盤前空手 2017/08 46 該 如 何 修 改?
  47. 47. 當然你也可以試試其他股票 中鋼、中華電、鴻海、統一、國泰金、 甚至…..宏 達 電 !>< 2017/08 47
  48. 48. HTC: 開高賣,開低買 • Total Profit: -445.7 • Trading Days: 494 • Profit Per Trade: -0.9227743 • # of Win: 248 • Win Rate: 51.3457 % • Winning Average: 17.08952 • Lossing Average: -19.93149 • Maximum Draw Down: 910.5 • The Periods of MDD: 494 • Profit Factor: 0.9048443 • Total Profit/MDD: -0.4895113 2017/08 48
  49. 49. 扣掉交易成本 • 股票手續費 • 成交金額*0.1425% • 買賣各一次 • 證券交易稅:0.3% • fee=STK[m,4]*0.006 • 期貨滑價+手續費扣5點 • 傳統回測:2+2+1? • 經驗平均滑價約1.5點 2017/08 49
  50. 50. 台積電:沒扣手續費 v.s.扣手續費 2017/08 50 聖盃 靠盃
  51. 51. 練習 • 試用par(mfrow=c(2,2))畫出下面四種cases比較 • fee=STK[m,4]*0.006 • fee=STK[m,4]*0.005 • fee=STK[m,4]*0.004 • fee=0 • par(mfrow=c(2,2)) • for (f in c(0.006,0.005,0.004,0)){ fee=STK[m,1]*f } 2017/08 51 該 如 何 修 改?
  52. 52. 練習: 尋找0050成份股哪隻股票最會獲利? • 你可以考慮下面規則? • 1. 周K架構 or 月K架構哪個好? • 2. 開高(?%)賣,開低(?%)買 • 3. 開低(?%)買,開高(?%)賣 • 4. 是否可做到停損 & 停利? • 停損不停利 • 停利不停損 • 請扣掉手續費:fee=STK[m,4]*0.006 • 試找出2007年至今,誰的 “profit”最高? 或是誰的PF最大? 2017/08 52
  53. 53. 沒轍了嗎? 開始發揮人類愛賭的天性!! 凹~ 再凹~~~ 無止境的凹!!! 2017/08 53
  54. 54. 馬丁格爾的聖盃!? (以輪盤為例~) 贏: 翻倍;輸: 賠光 勝率18/37,賠率為1 (1:1) 2017/08 54 https://www.youtube.com/watch?v=RldNUWT2pyY
  55. 55. 2017/08 55
  56. 56. 一種天真浪漫的賭法~(勝率18/37,賠率1) • Martingale: 贏了下注1單位,輸了就加倍。 • 只要贏一次,就能賺一個單位。 • 輸衝贏縮,賺小賠大。 連輸 次數 第 一 次 第 二 次 第 三 次 第 四 次 第 五 次 第 六 次 第 七 次 第 八 次 第 九 次 第 十 次 第 十 一 次 投注 1 2 4 8 16 32 64 128 256 512 ??? 已輸 金額 -1 -3 -7 -15 -31 -63 -127 -255 -511 -1023 2017/08 56
  57. 57. 記得當時… PM 06:00進賭場,AM 11:00出賭場 10枚籌碼進去,50枚籌碼出來! 假設每3~4分鐘可玩1局, 1小時約玩16局,5小時大約玩80局 2017/08 57
  58. 58. Beginner’s Luck!? 我們就用R語言來模擬… 10枚籌碼,最多玩80次,超過50枚的 機率? 2017/08 58
  59. 59. (馬丁格爾模擬) 100枚籌碼,最多玩1000次 2017/08 59 http://www.letyourmoneygrow.com/2016/09/04/mystery-and-misery-of-the-martingale- betting-system-why-it-will-not-make-you-rich/
  60. 60. 10枚籌碼,最多玩80次,最後超過50枚的機率! 2017/08 輸錢離場的機率為81.106% 賺超過50枚的機率為5.322% Beginner’s Luck 確認! 模擬10000次 60
  61. 61. 現在,我們開始 ”玩” 策略… 馬丁格爾: 贏了交易一張,輸了加倍交易 2017/08 61
  62. 62. 交易的馬丁格爾 •產生一個計算每次部位大小的向量 • PZ=setNames(rep(1,length(profit)),names(profit)) •如果上次輸,下次加倍買 • if (sign(profit)[m-1]<0){PZ[m]=2*PZ[m-1]} •如果上次贏,下次買一張 • If (sign(profit)[m-1]<0){PZ[m]=1} 2017/08 62
  63. 63. 交易的馬丁格爾 •產生一個計算每次部位大小的向量 • PZ=setNames(rep(1,length(profit)),names(profit)) •計算每一次的PZ • for (m in 2:length(profit)){ if (sign(profit)[m-1]<0){PZ[m]=2*PZ[m-1]} if (sign(profit)[m-1]>0){PZ[m]=1} If (sign(profit)[m-1]==0){PZ[m]=PZ[m-1]} } 2017/08 63
  64. 64. 將PZ前與PZ後畫在一起比較 • source("performance.R") • par(mfrow=c(1,3)) ##三張圖畫同一個畫面 • performance(profit) ##PZ前 • performance(profit*PZ) ##PZ後 • ProfitBar(PZ) ##PZ大小 • max(PZ) ##最大使用部位 • mean(PZ) ##平均使用部位 2017/08 64
  65. 65. 馬丁格爾:輸了加倍買,贏了買1張 2017/08 65
  66. 66. 類馬丁格爾(1234): 輸了多交易1張,贏了只交易1張 2017/08 66
  67. 67. 練習PZ大法:輸縮贏衝 • 練習:類馬丁格爾 (1234…) • if (sign(profit)[m-1]<0){PZ[m]=PZ[m-1]+1} else • if (sign(profit)[m-1]>0){PZ[m]=1} else • if (sign(profit)[m-1]==0){PZ[m]=PZ[m-1]} • 練習:贏了交易一張,輸了交易兩張 • if (sign(profit)[m-1]<0){PZ[m]=2} else • if (sign(profit)[m-1]>0){PZ[m]=1} else • if (sign(profit)[m-1]==0){PZ[m]=PZ[m-1]} 2017/08 67 該 如 何 修 改? 該 如 何 修 改?
  68. 68. 為了控制風險: 輸了交易2張,贏了交易1張 2017/08 68 輸了“多”買1張
  69. 69. 濾網:去蕪存菁,拆解成… 輸了買2張,贏了買1張 = 買1張+ 輸了才買1張 2017/08 69輸了“才”買1張
  70. 70. 濾網:去蕪存菁,拆解成… 輸了買2張,贏了買1張 = 買1張+ 輸了才買1張 2017/03 70 Total Profit: 33.8907 Trading Days: 508 Profit Per Trade: 0.1653205 # of Win: 112 Win Rate: 54.63415 % Winning Average: 2.207289 Lossing Average: -2.293824 Maximum Draw Down: 32.972 The Periods of MDD: 28 36 38 45 85 Profit Factor: 1.158868 Total Profit/MDD: 1.027863 輸了“才”買1張
  71. 71. 輸贏濾網好不好? 會不會是OverFitting? 2017/08 71
  72. 72. 練習: 尋找最適合的輸贏濾網? •連輸系列 • 輸贏? • 輸輸贏? • 輸輸輸贏? •尋找輸贏pattern • 輸贏輸贏? • 輸輸贏輸贏? 2017/08 72
  73. 73. 動量策略 v.s.均值回歸 •動量策略 (順勢交易,買高賣低,違反人性) • 因為過去漲,所以現在買進;因為過去跌,所以賣出 •均值回歸 (逆勢交易,買低賣高,大家都愛) • 漲多了該回跌,跌深了該反彈 •牛頓第二運動定律:動者恆動,靜者恆靜? • 股價漲未來是否會繼續漲?股價跌未來是否會繼續跌? 2017/08 73
  74. 74. 課堂練習 http://zuv.io/1556148a00 2017/08 74 停損、停利 屬於哪一種策略? 動量 or 均值回歸? 在交易裡,大部分違反人性的事, 都是好事! 不正常的人才會獲利!!!
  75. 75. 我們使用“隨機交易”概念! 度量停損停利帶來的影響~ 策略:開盤隨機交易,停損?停利?。 2017/08 75
  76. 76. 開盤隨機交易,不停 損不停利,收盤平倉 2017/08 76 開盤隨機交易,停損30, 停利30,收盤平倉
  77. 77. 隨機交易,停損30 , 停利60,收盤平倉 2017/08 77 隨機交易,停損30, 不停利,收盤平倉
  78. 78. 台指期貨隨機交易統計 • 不停損,停利30點 • 停損145點,停利35點 • 停損140點,停利40點 • … • 停損35點,停利145點 • 停損30點,不停利 2017/08 78 順勢、動量、違反人性!
  79. 79. 2017/08 79 隨機交易,停損30, 不停利,收盤平倉 隨機交易,不停損, 停利30,收盤平倉
  80. 80. 隨機交易,其他股票如何? 1%停損,不停利 v.s. 1%停利,不停損 2017/08 80
  81. 81. Momentum v.s. Mean Reverse 2017/08 81
  82. 82. 進場的動量策略 突破n日高點、跌破n日低點 黃金交叉、死亡交叉 箱型突破、箱型跌破 均線糾結後多頭排列,空頭排列 2017/08 82
  83. 83. 課堂練習 http://zuv.io/1556148a00 2017/08 83 下列何者為動量順勢交易 策略?
  84. 84. “突破”10日高點買進,3日後賣出 •何謂突破? • Cl(STK)[m]>max(Hi(STK)[(m-10):(m-1)]) ##今天收盤>前10日高點 • Cl(STK)[(m-1)]<max(Hi(STK)[(m-10-1):(m-2)]) ##昨天收盤<昨天前10日高點 2017/08 84
  85. 85. “突破”10日高點買進,3日後賣出 • 前10日跟最後3日是否可交易? • for (m in (10+1):(length(rownames(STK))-3)){ profit[m]=Cl(STK)[m+3]-Cl(STK)[m]-fee } • 停損 • SL=0.95 #5%停損 • if (min(Lo(STK)[m:(m+3)])<Cl(STK)[m]*SL){profit[m]=Cl(STK)[m]*(SL-1)-fee} 2017/08 85 何時突破10日高點
  86. 86. 策略改進,使用波動濾網: 金融市場,什麼都是假的! 只有大小波動是真的!! 2017/08 86
  87. 87. 最簡單的波動…. 如果這是股價的波動? 2017/08 87
  88. 88. 20日標準差 2017/08 88
  89. 89. 日波動:每日開盤與收盤的漲跌幅 2017/08 89
  90. 90. 將目前的策略,增加波動濾網 •採用10日標準差當波動,門檻值設為平均 • if (sd(Cl(STK)[(m-10):(m-1)])<mean(sd(Cl(STK)))){ } 2017/08 90 原策略
  91. 91. 思考:當你研發順勢策略時 •Q: 波動小策略品質好? 還是波動大策略品質好? •Q: 要用什麼當波動? •Q: 找出最好的波動、門檻? 2017/08 91
  92. 92. 天下之大: 合久必分,分久必合 金融市場: 波大必小,波小必大 世間萬物都是遵循此道! 2017/08 92
  93. 93. 拿廢話當濾網….. 2017/08 93
  94. 94. 2017/08 94 順勢策略:波動大小決定策略品質好壞? 波動<100 波動介在100~150 波動>150
  95. 95. 亂入策略波小當濾網輸了才交易 2017/08 95
  96. 96. 加碼的奧義 成也加碼,敗也加碼!! 2017/08 96
  97. 97. 加碼的奧義: 成也加碼,敗也加碼!! • 摩天大樓 (1,1,1,1….) • 海龜 • 金字塔 (5,4,3,2,1) • 正常人 • 倒金字塔(1,2,3,4,5) • 瘋子 • 投票表決一下你覺得哪個加碼法好? 2017/08 97
  98. 98. 課堂練習 http://zuv.io/1556148a00 2017/08 98 投票表決一下你覺得哪個 加碼法好?
  99. 99. 考慮台指期動量策略: 開盤+門檻值突破 (用了濾網,採用順勢) 2017/08 99 Buy
  100. 100. 原始策略(單口當沖)績效與累計損益:X 2017/08 損益: 1670 總交易天數: 1375 實際交易次數: 199 平均每次損益: 8.434343 獲利次數: 80 勝率: 40.40404 % 平均賺: 56.175 平均賠: -23.9322 最大連續虧損: 250 最大連續虧損區間(天): 108 114 197 254 302 獲利因子: 1.59136 總獲利/MDD: 6.68 100
  101. 101. 加碼規則: 進場後5分鐘後仍有獲利,加碼 1 口! 2017/08 101
  102. 102. 加碼第一口後: X+X1 2017/08 損益: 1670  2951 總交易天數: 1375 實際交易次數: 199 平均每次損益: 14.82915 獲利次數: 75 勝率: : 40.40 %  37.69% 平均賺: 92.96 平均賠: -32.42742 最大連續虧損: 375 最大連續虧損區間(天): 75 94 197 261 313 獲利因子: 1.59136 1.733897 總獲利/MDD: 6.68  7.869333 102
  103. 103. 加碼第二口後: X+X1+X2 2017/08 損益: 29513880 總交易天數: 1375 實際交易次數: 199 平均每次損益: 19.49 獲利次數: 75 勝率: 37.69%  37.64 % 平均賺: 111.68 平均賠: -36.25 最大連續虧損: 425 最大連續虧損區間(天): 79 93 96 197 257 獲利因子: 1.733897 1.862989 總獲利/MDD: 7.869333  9.129412 103
  104. 104. 加碼第三口後: X+X1+X2+X3 2017/08 損益: 3880 4439 總交易天數: 1375 實際交易次數: 199 平均每次損益: 22.30653 獲利次數: 75 勝率: 37.64 %  37.68 % 平均賺: 120.8 平均賠: -37.26613 最大連續虧損: 425 最大連續虧損區間(天): 89 93 94 200 257 獲利因子: 1.862989  1.960615 總獲利/MDD: 9.129412  10.4447 104
  105. 105. 一口一口加碼,你就滿足嗎? 策略拆解: 分別”獨立”看每次的加碼! 2017/08 105
  106. 106. 第一次加碼: X1 2017/08 損益: 1281 總交易天數: 1375 實際交易次數: 103 平均每次損益: 12.43689 獲利次數: 47 勝率: 45.63107 % 平均賺: 55.12766 平均賠: -23.39286 最大連續虧損: 215 最大連續虧損區間(天): 93 96 98 114 345 獲利因子: 1.977863 總獲利/MDD: 5.95814 106
  107. 107. 第二次加碼 :X2 2017/08 損益: 1281  929 總交易天數: 1375 實際交易次數: 46 平均每次損益: 20.19565 獲利次數: 24 勝率: 45.63107 %  52.17391 % 平均賺: 60.66667 平均賠: -23.95455 最大連續虧損: 102 最大連續虧損區間(天): 93 96 110 269 305 獲利因子: 1.977863 2.762808 總獲利/MDD: 5.59  9.107843 107
  108. 108. 第三次加碼: X3 2017/08 損益: 929  559 總交易天數: 1375 實際交易次數: 24 平均每次損益: 23.29167 獲利次數: 14 勝率: 52.17391 %  58.33333 % 平均賺: 56.21429 平均賠: -22.8 最大連續虧損: 100 最大連續虧損區間(天): 56 63 91 110 871 獲利因子: 2.762808  3.451754 總獲利/MDD: 9.107843  5.59 108
  109. 109. 觀察:越加碼 品質越好! 等差加碼 (1234神經病!) 等比加碼 (1248瘋子!) 2017/08 109
  110. 110. 等差加碼1234 2017/08 損益: 9255 總交易天數: 1375 實際交易次數: 199 平均每次損益: 46.50754 獲利次數: 72 勝率: 36.1809 % 平均賺: 229.7083 平均賠: -57.35433 最大連續虧損: 858 最大連續虧損區間(天): 93 94 98 114 257 獲利因子: 2.270593 總獲利/MDD: 10.78671 110
  111. 111. 等比加碼1248 2017/08 損益: 12420 總交易天數: 1375 實際交易次數: 199 平均每次損益: 62.41206 獲利次數: 72 勝率: 36.1809 % 平均賺: 289.1389 平均賠: -66.12598 最大連續虧損: 1079 最大連續虧損區間(天): 93 94 114 157 257 獲利因子: 2.478924 總獲利/MDD: 11.51066 111
  112. 112. 結論:加碼是放大器,同時放大”風險”與”利潤” 好的原始策略加碼更好; 壞的原始策略加碼就完蛋!!! (overfitting)2017/08 112
  113. 113. 股票、期貨策略開發實務 2017/08 113
  114. 114. 均線策略 • 月線黃金交叉季線買近,20日後賣出 • 月線黃金交叉季線買近,死亡交叉賣出 • 月線黃金交叉季線買近,死亡交叉反手放空 2017/08 114 Trading Days: 2499 Profit Per Trade: 3.184475 # of Win: 11 Win Rate: 55 % Winning Average: 9.077436 Lossing Average: -4.018033 Maximum Draw Down: 10.9981 The Periods of MDD: 228 277 373 541 638 Profit Factor: 2.761213 Total Profit/MDD: 5.790954
  115. 115. 考慮策略 (檢查方式) • 指標:20ma,60ma • 訊號:黃金交叉、死亡交叉 • 規則:黃金交叉買進,死亡交叉賣出 2017/08 115
  116. 116. 將這策略在其他商品上…(取用台灣50) 2017/04 116
  117. 117. 思考一個問題 • 股價50元,你買一張 • 股價快200元,你還是買一張??? 這樣對嗎? •部位控管(單一策略) + •投資組合(多市場多商品多策略) + •資金管理 •= 我認為的聖盃 2017/08 117
  118. 118. 天下武功 無堅不破 唯快不破 • https://www.youtube.com/watch?v=yVQWJeLUxSk •許多人都在追求絕世武功,卻忽略了內功的修為! •許多人都在追求交易聖盃,卻忽略了資金管裡的重 要! 2017/08 118 翻倍可以很多次,破產只需要1次!
  119. 119. 交易的聖盃:資金管理的理論與實務 凱利、最佳化比例、槓桿空間模型 固定分數、固定比例、Ranking賭小一點 交易 v.s. 賭局 是否一樣? 哪裡一樣? 哪裡不一樣? 何謂賭局? 何謂交易? 2017/08 119
  120. 120. 給你一枚銅板,人頭輸,數字贏2倍! •勝率50% •賠率(odds)=贏的淨賺/輸的淨賠 • 賠率為2 2017/08 120 賠光 WIN LOSE
  121. 121. 期望淨利 • 勝率*賺的錢+(100%-勝率)*賠的錢 • 50%*2 + (100%-50%)*(-1) = 0.5 • p*b + (1-p)*(-1) = p*(1+b)-1 • 你有100元,可以玩無限多次,你會怎麼賭? • 如果連這麼好的賭局,你都不會賭,你憑什麼在交易上獲利? • 你可能會有其他說法,交易跟賭局不一樣? • 交易勝率不固定,賠率不固定 • 交易次數有限次,賭局無限次 2017/08 121
  122. 122. 課堂練習 http://zuv.io/1556148a00 2017/08 122 下面賭局何者期望淨利最大?
  123. 123. 要玩 “期望淨利 > 0” 的賭局,這個大家都知道! 但這樣就夠了嗎? 2017/08 123
  124. 124. 做個賭徒模擬實驗就知道…. • 勝率50%,賠率為2 • 1. 玩40次下注多少比例f會最好? • 不同下注比例10%,20%,…,60% • 2. 玩很多次下注多少比例f會最好? • 玩100次、500次、1000次、5000次 • 用R語言模擬一下~ • Input: 勝率、賠率、下注比例 • Output: 資金成長曲線! 2017/08 124
  125. 125. 考慮 勝率50%,賠率為2 的賭局 2017/08 資金100元 100元 125
  126. 126. 考慮 勝率50%,賠率為2 的賭局 2017/08 資金100元,如果下注20元 80元 20元 126
  127. 127. 考慮 勝率50%,賠率為2 的賭局 2017/08 資金100元,如果下注20元 贏:100*(1+2*20%) 80元 20元 20元 20元 127
  128. 128. 考慮 勝率50%,賠率為2 的賭局 2017/08 資金100元,如果下注20元 贏:100*(1+2*20%) 100元 20元 20元 140元 20元 128
  129. 129. 考慮 勝率50%,賠率為2 的賭局 2017/08 資金100元,如果下注20元 贏:100*(1+2*20%) 輸:100*(1-20%) 100元 20元 80元 129
  130. 130. 賭局設定: • nbet=40 ## 賭幾局? • Odds=2 ## odds (賠率) • Pwin=0.5 ## win rate (勝率) • initM=100 ## initial capital (初始資金) • f=0.3 ## bidding fraction (下注比例) • capital=rep(initM,1) ## current capital (紀錄每一局資產) 2017/08 130
  131. 131. 銅板賭局模擬 •開始賭! • for(i in 2:nbet){ ## 每一局 dice=sample(0:1,size=1,prob=c(0.5,0.5),replace=T) ## 模擬賭局輸贏 capital[i]=dice*capital[i-1]*f*(1+odds)+capital[i-1]*(1-f) ## 資金成長 } 2017/08 131
  132. 132. 銅板賭局模擬 •畫累計損益 • plot(capital,type="l",col="red",lwd=3,font=2 ,xlab="The # of Bidding", ylab="The Growth of Capital" ,main=paste("WinRate",pwin*100,"%,","Odds",odds,", Play",nbet,"Games, ","Bidding",f*100,"%")) • abline(h=initM,col="green",lty=2,lwd=3) 2017/08 132
  133. 133. 2017/08 133
  134. 134. 身為一個賭徒(交易員) “賭” 最佳化! 身為一個數學家 “資金管理” 最佳化! 2017/08 134
  135. 135. 凱利賭徒 “理論上”的最佳下注比例 理論、模擬、分析 2017/08 135
  136. 136. 定義問題!! • 勝率50%,賠率2的賭局 • 初始資金100元,玩無限多次 • 假設人生可以天長地久 • 每次決定下注比例f (0% < f < 100%) • 假設資金可以無限分割 • 問題:f選多少可讓資金成長最快速! 2017/08 136
  137. 137. 凱利公式推導 • 勝率為50%,賠率為2的賭局 • 賭1元,輸了賠光,贏了拿回3(=1+2)元。 • 假設每次下注為f比例 • 如果贏: At= At-1(1+2f) • 如果輸: At= At-1 (1-f) • 假設在T次的賭局中,一共贏了W次,輸了L次 (W+L=T) • 結論:AT= A1(1+bf)W(1-f)L • 我們想要最大化AT • 如果玩無限多次會怎樣? 2017/08 137
  138. 138. 求 f 使得 AT= A1(1+bf)W(1-f)L 最大 ? • Rearranging: 1 𝑇 log 𝐴 𝑇 𝐴1 = 𝑊 𝑇 log(1 + 𝑏𝑓) + 𝐿 𝑇 log(1 − 𝑓) • As 𝑇 → ∞, we have 𝑝 log(1 + 𝑏𝑓) + (1 − 𝑝) log(1 − 𝑓) 𝒇 = 𝒑 𝟏 + 𝒃 − 𝟏 𝒃 • 什麼時候 f=1? (Showhand!) • 勝率99%,賠率10000的賭局,要你全壓,你賭不賭? 2017/08 138
  139. 139. “勝率50%,賠率為2” 的賭局 2017/08 139 請注意 賠率為2代表最 大虧損是100%
  140. 140. 什麼時候可以用槓桿? 賠掉100% OptF=25% 賠掉10% OptF=250% 2017/08 140 賠掉1% OptF=2500%
  141. 141. 借錢無罪,融資有理?? •設定好你的停損 • 股票10%停損 • 期貨固定點數停損 • 期貨資金比例停損 2017/08 141
  142. 142. 2017/08 142
  143. 143. 課堂練習 http://zuv.io/1556148a00 2017/08 143 下面賭局你會選哪一種玩法?
  144. 144. 凱利騙局 •到底是誰騙了誰? • Kelly • Thorp • Larry William • Ralph Vince 2017/08 144
  145. 145. 不同的部位配置(position sizing, PZ), 會造成不同的報酬損益!! 不是老師帶你上天堂、住套房,而是 ”資金管理” 帶你上天堂、住套房!! 2017/08 一句話談交易:用風險換報酬 145
  146. 146. 原始策略: 想要Fitting,又怕OverFitting 然而,這些都不是最重要的…. 交易聖盃: 資金管理!! https://www.youtube.com/watch?v=yVQWJeLUxSk 2017/08 146
  147. 147. • 勝率固定(50%),賠率固定(2)的賭局 • 不管如何Sample (10個取,20個取,50個取,100個取) 都一樣!! • 我以為的交易是上面這樣… • 實際的交易損益是:不知道機率、不知道賠率!? 博弈理論 v.s. 交易實務 2017/08 -1 147
  148. 148. 交易賭局:機率未知,但可 “預估”….??? • 賭局給定機率、賠率 • 交易回測給定”歷史損益” (Ralph Vince’s Optimal F) 2017/08 148 In Sample Out Sample
  149. 149. Review Kelly Again • 勝率50%,賠率為2 • 抽到紅球,叫做贏,壓的翻2倍 • 抽到紅球,叫做輸,壓的賠光 • 贏的機率50%,輸的機率50% • 賠率為(2,-1) 2017/08 149 AT= A1(1+2f)1(1-1f)1
  150. 150. Extend Kelly Criterion • 抽到紅球為贏,翻2倍 • 抽到籃球為贏,翻1倍 • 抽到綠球為輸,賠光 • 機率(20%, 20%, 20%, 20%, 20%) • 賠率 (2,2,1,-1,-1) 2017/08 150 AT = A1(1+2f)1(1+2f)1 (1+1f)1(1-1f)1(1-1f)1 = A1(1+2f)2 (1+1f)1(1-1f)2
  151. 151. HPR: Holding Period Return • Idea: HPR= 1 + f (-profit/biggest loss) • Example: 16、-8、-8、+4 、+4 、+4 • TWR (f) = HPR1 * HPR2 * HPR3 * HPR4* HPR5* HPR6 = [1 + f (-16/-8)] * [1 + f (-(-8)/-8)] * [1 + f (-(-8)/-8)] * [1 + f (-4/-8)] * [1 + f (-4/-8)]* [1 + f (-4/-8)] = (1 + 2f )1 * (1 – f)2 * (1 + 0.5f)3 • How to find optimal f to maximize TWR(f)? • Brute method: from f=1%, f=2%, f=3%,…,f=98%,f=100% 2017/08 151
  152. 152. HPR理論 (玩1次的損益期望值 v.s.下注比例) 2017/08 152
  153. 153. 然而,人生並不像銅板賭局那麼簡單… 交 易 也 是! 沒有連續,只有離散 沒有永恆(無限),只有曾經(有限) 2017/08 153
  154. 154. 2017/08 154 一場勝率50%、賠率為2的賭局,賭起來天南地北! 10次 50% 500次 24% 40次 31% 100次 21% 1000次 26% 5000次 25%
  155. 155. 2017/08 155 TWR模擬:從 (16,-8,4) 取樣也天南地北! 10次 52% 500次 38% 40次 35% 100次 46% 1000次 36% 5000次 38%
  156. 156. 三個層級的先知 • 第一層 (神):不用知道勝率,因為他知道下一場會贏還是會輸! • 可以梭哈(ShowHands) • 第二層(半仙):知道未來10次,”一定會贏5次,輸5次“ • 可以下最佳比例(Optimal f) • 第三層(智者):知道未來10次發生的機率“確實是50%”。(不容易) • 一旦遇到偏差,錯誤的下注比例很有可能讓你受傷慘重。 •賭小一點(1%~2%) 2017/08 156 再來我才要解釋這件事!
  157. 157. 說完資金管理理論,再來要講 “資金管理實務” 固定分數 固定比例 2017/08 157
  158. 158. 下面策略,你選哪一個? 2017/08 158 100萬 230萬 100萬1642萬
  159. 159. 最基本的資金管理:固定分數(Fixed Fraction) •凱利賭局的勝率已知,賠率已知  控制虧損 •交易的勝率未知,賠率未知 但… 唯一能控制的還是虧損!! 2017/08 159
  160. 160. 2017/08 160 1% 3% 5% 8% 單口 風險比例
  161. 161. 開盤突破昨日波動(高低)*k1 • 開盤突破昨日波動*k1買進 • 20點停損,收盤平倉 • 回測標的:台指期貨 • 回測時間:2010.05.25~2015.09.10 2017/08 Total Profit: 1140 Trading Days: 1543 Profit Per Trade: 2.76699 # of Win: 161 Win Rate: 39.07767 % Winning Average: 43.81366 Loss Average: -23.56175 Maximum Draw Down: 312 The Periods of MDD: 107 112 171 188 254 Profit Factor: 1.192763 Total Profit/MDD: 3.653846 161
  162. 162. 輸贏濾網:輸了一次再進場! 2017/08 162 Total Profit: 1140 # of Win: 161 Win Rate: 39.07767 % Maximum Draw Down: 312 Profit Factor: 1.192763 Total Profit/MDD: 3.653846 Total Profit: 1427 # of Win: 106 Win Rate: 42.23108 % Maximum Draw Down: 235 Profit Factor: 1.419582 Total Profit/MDD: 6.07234
  163. 163. 固定分數 (以台指期貨為例,固定風險比例2%) • 每口最大損失: 200*(20+5)=5,000 • loss=5000 • 初始資金: 1000,000 • initM=1000000 • 風險比例: 2% = 0.02 • risk=0.02 • 設定目前總資金 • capital=initM • 計算第m天的下單口數 • PZ.FF=floor(capital*risk/loss) • 初始下單口數:floor(1000000*0.02/7000) • 如果資金成長到1500,000,下單口數?? 2017/08 163 程式碼:8_Fixed_Fraction.R 每次交易最多損失總資金的2% 假設你有100萬,每次交易最多可損失 100萬*2%=20000 則你最多下 (下高斯20000/5000) =4 口
  164. 164. • 設定固定分數向量 • PZ.FF=setNames(rep(1,length(profit)),names(profit)) • PZ.FF[1]=floor(capital*risk/loss) • 計算每一時期的固定分數 • for (m in 2:length(profit)){ PZ.FF[m]=floor(capital*risk/loss) capital=capital+PZ.FF[m]*profit[m]*200 } • 程式碼檢查 • head(cbind(profit,PZ.FF,"P&L"=profit*PZ.FF,"Cap"=initM+cumsum(profit*PZ.F F*200)),1000) 2017/08 164
  165. 165. 2017/08 Total Profit: 4173 Trading Days: 1543 Win Rate: 39.07767 % Maximum Draw Down: 2473 The Periods of MDD: 123 188 204 260 297 Profit Factor: 1.121308 Total Profit/MDD: 1.687424 Total Profit: 1140 # of Win: 161 Win Rate: 39.07767 % Maximum Draw Down: 312 The Periods of MDD: 107 112 171 188 254 Profit Factor: 1.192763 Total Profit/MDD: 3.653846 165
  166. 166. 課堂練習 http://zuv.io/1556148a00 2017/08 166 若小明想要用資金150萬,風險比例 2%,操作某檔股票。買進價位30元/ 股,預計25元停損,則小明該買進多 少張?
  167. 167. 再來看一下Kelly是不是真的那麼神? • 勝率: 39.07 % • 賠率:平均賺/平均賠 • 平均賺: 43.8 • 平均賠: -23.56 • 凱利比例: 11.5 % 2017/08 167
  168. 168. 固定分數 • 初始資金100萬 • 風險比例2% • 策略停損NT5000元。 • 100萬  4口 • 125萬  5口 • 150萬  6口 • 175萬  7口 • ….. 2017/08 168 資金*2%/5000 = 口數 最小口數 *25萬=資金 越到後面口數增加越 快? WHY?
  169. 169. 固定比例 (Fixed Ratio) • 瑞恩.瓊斯(交易的遊戲,1999) • 固定分數的缺點:最初合約的增速很慢,一但累積到一定數額後, 合約的速度會突然增加很快。 • 固定比例 • 試圖平等對待每份合約,使資金的增長速率相同。 • 1. 假設資金X,從一個單位做起,例如1口。 • 2. 固定每份合約的增長量(Delta) 2017/08 169
  170. 170. 初始資金100萬,做1口;Delta = 3萬。 • 做2口的資金 = 做1口的資金 + 1*Delta = 103萬。 • 做3口的資金 = 做2口的資金 + 2*Delta = 109萬。 • 做4口的資金 = 做3口的資金 + 3*Delta = 118 萬。 • 做5口的資金 = 做4口的資金 + 4*Delta = 130 萬。 • 做6口的資金 = 做5口的資金 + 5*Delta = 145 萬。 …. 2017/08 170 固定每份合約的增長量
  171. 171. 固定比例公式推導 •做n口的資金 = 做n-1口的資金 + (n-1)*Delta • = 做n-2口的資金 + (n-2)*Delta + (n-1)*Delta • = 做n-3口的資金 + (n-3)*Delta + (n-2)*Delta + (n-1)*Delta ... • = 做2口的資金 + 2*Delta + 3*Delta +... + (n-1)*Delta • = 做1口的資金 + 1*Delta + 2*Delta + 3*Delta +... + (n-1)*Delta • = 初始資金+ (n(n-1)/2)*Delta 2017/08 171
  172. 172. 固定比例公式推導 •作n口的資金= 初始資金+ (n(n-1)/2)*Delta •口數 = 𝟏+ 𝟏+𝟖× 現有資金−初始資金 𝐃𝐞𝐥𝐭𝐚 𝟐 2017/08 172
  173. 173. 實做固定比例,並與固定分數比較 • 初始資金100萬 • 策略停損NT 5000 • 固定分數 • 風險比例2% • 固定比例 • Delta=2萬 2017/08 173 程式碼: 9_Fixed_Fraction_Ratio.R
  174. 174. 固定比例:Delta=3萬 • Total Profit: 1516 • Trading Days: 1543 • Win Rate: 39.07767 % • Maximum Draw Down: 1836 • Profit Factor: 1.070508 • Total Profit/MDD: 0.8257081 2017/08 174 程式碼: 9_Fixed_Fraction_Ratio.R
  175. 175. 選擇權交易策略開發 2017/08 175
  176. 176. 買房子附訂金 • 買總價900萬房子,於2017年1月15日付了10萬元的訂金 (不含房價)。 • 預計2018年1月15號交屋。 • 如果交屋前,房價漲到了1000萬元。 • 則這份訂金 (合約),價值多少? 2017/08 176
  177. 177. 買房子附訂金 • 買總價900萬房子,於2017年1月15日付了10萬元的訂金 (不含房價)。 • 預計2018年1月15號交屋。 • 如果交屋前,房價跌到了800萬元。 • 則這份訂金 (合約),價值多少? 2017/08 177
  178. 178. 2017/08 178 1000萬900萬 100萬 合約價值 房價
  179. 179. 2017/08 179 -10萬 1000萬 900萬 910萬 100萬 90萬 合約價值 房價
  180. 180. 付訂金=買 “買的權利”=買 “買權”=Long Call •房價  台股加權指數 •訂金  台指買權 •Q1: 訂金該收多少才叫合理? •Q2: 能不能當房地產商,賣 “買的權利”? •Q3: 有沒有 “賣的權利” ? 2017/08 180
  181. 181. 台指選擇權@2017.01.13 2017/08 181 Call Put履約價
  182. 182. 損益報酬 大盤指數9450 9463 -13 Long 9450Call@13 2017/08 182
  183. 183. 看錯一定賠! 看對不一定賺! 損益報酬 大盤指數 9450 9463 -13 9378 看大對才會賺! 日期: 2017年01月13日 賭大漲(看多):買進 9450CALL@13 結算日:2017年01月18日 大盤現在指數: 9378點 損益 兩平點 2017/08 183
  184. 184. 看對一定賺! 看錯不一定賠! 損益報酬 大盤指數 9450 9463 +13 9378 看大錯才會賠! 日期: 2017年01月13日 賭不漲(看空):賣出 9450CALL@13 結算日:2017年01月18日 大盤現在指數: 9378點 損益 兩平點 2017/08 184
  185. 185. 買權買方 v.s. 買權賣方 買買權 Long Call 賣買權 Short Call 賭大漲! 賭不會漲! 2017/08 185
  186. 186. 賣權買方 v.s. 賣權賣方 買賣權 Long Put 賣賣權 Short Put 賭大跌! 賭不會跌! 2017/08 186
  187. 187. 課堂練習 http://zuv.io/1556148a00 2017/08 187 賣出9100 Call@36.5放置結算, 若大盤結算在9200,賺賠多 少?
  188. 188. 買選擇權 v.s. 買樂透 • 2017年1月10號周二收盤 • 2017年1月11號周三 2017/08 188
  189. 189. 使用R語言建立選擇權部位 (前置) •STK=8000:9900 •portfolio=rep(0,1) 2017/08 189
  190. 190. 使用R語言建立選擇權部位 (買權) • CallK=9250 • CallPrice=31.5 • Call=STK-CallK • Call[Call<0]=0 • Call=Call-CallPrice • names(Call)=STK • portfolio=portfolio+(Call) 2017/08 190
  191. 191. 使用R語言建立選擇權部位 (畫圖) • plot(portfolio,type="l",col="red",lwd=2,font=2,xaxt = "n",ylab="PL") • axis(1,1:length(STK),as.character(STK),col="black") • abline(h=0,col="green",lwd=2) 2017/08 191
  192. 192. 使用R語言建立選擇權部位 (賣權) • PutK=9050 • PutPrice=15.5 • Put=PutK-STK • Put[Put<0]=0 • Put=Put-PutPrice • names(Put)=STK • portfolio=portfolio+(Put) 2017/08 192 該 如 何 修 改?
  193. 193. 使用R語言建立選擇權的組合部位 (拼圖) •多頭價差 • Long Call9300@90 • Short Call9350@54 • Long Put9300@14.5 • Short Put9350@29.5 • 口訣:買低賣高 2017/08 193
  194. 194. 2017/08 194 >9350 最多賺14點 <9300 最多賠36點 損益兩平點9336點 Long Call9300@90 Short Call9350@54
  195. 195. 使用R語言建立選擇權的組合部位 (拼圖) •空頭價差 • Short Call9300@90 • Long Call9350@54 • Short Put9300@14.5 • Long Put9350@29.5 • 口訣:賣低買高 2017/08 195
  196. 196. Review: 傳統賭局 & 凱利 2017/08 196 AT= A1(1+2f)W(1-f)L
  197. 197. 9300 9350 -36 14 損益 大盤結 算位置 大盤結 算位置 -36 損益 我認為的大盤 結算位置機率 機率 <9300 機率40% >9350 機率30% 9300~9350 機率30% 選擇權的多頭價差 v.s. 個人認為的機率分佈 買9300CALL; 賣9350CALL 大盤結算位置損益 2017/08 197
  198. 198. 有了賠率分佈,我們還缺… 大盤漲跌的機率分佈 2017/08 198
  199. 199. 什麼樣的漲跌機率分佈? • 特徵:2017年01月13號周五 • 機率分佈:特徵  下周三大盤收盤 2017/08 199
  200. 200. 2017/08 200 統計漲跌比例 例: 2016-12-16 -1.582% 漲跌比例代入本周五收盤 例: 9378*(1-1.582%)=9230 計算損益 例: 若結算9230點賠36點 計算歷史所有的漲跌所帶 來的損益
  201. 201. Review Kelly Again • 勝率50%,賠率為2 • 抽到紅球,叫做贏,壓的翻2倍 • 抽到紅球,叫做輸,壓的賠光 • 贏的機率50%,輸的機率50% • 賠率為(2,-1) 2017/08 201 AT= A1(1+2f)1(1-1f)1
  202. 202. Extend Kelly Criterion • 抽到紅球為贏,翻2倍 • 抽到籃球為贏,翻1倍 • 抽到綠球為輸,賠光 • 機率(20%, 20%, 20%, 20%, 20%) • 賠率 (2,2,1,-1,-1) 2017/08 202 AT = A1(1+2f)1(1+2f)1 (1+1f)1(1-1f)1(1-1f)1 = A1(1+2f)2 (1+1f)1(1-1f)2
  203. 203. HPR: Holding Period Return • Idea: HPR= 1 + f (-profit/biggest loss) • Example: 16、-8、-8、+4 、+4 、+4 • TWR (f) = HPR1 * HPR2 * HPR3 * HPR4* HPR5* HPR6 = [1 + f (-16/-8)] * [1 + f (-(-8)/-8)] * [1 + f (-(-8)/-8)] * [1 + f (-4/-8)] * [1 + f (-4/-8)]* [1 + f (-4/-8)] = (1 + 2f )1 * (1 – f)2 * (1 + 0.5f)3 • How to find optimal f to maximize TWR(f)? • Brute method: from f=1%, f=2%, f=3%,…,f=98%,f=100% 2017/08 203
  204. 204. 無利可圖!! 2017/08 204
  205. 205. 那反過來就是 “有利可圖” 瞜!! 2017/08 205
  206. 206. 每周(3,4,5,1,2,3)開盤到週3收盤的漲跌分佈 2017/08 206
  207. 207. 不用考慮策略,只考慮採用什麼條件機率!? • 條件:2017年01月13號周五 • 條件:周一~周五: 紅K or 綠K? 2017/08 207
  208. 208. 課堂練習 http://zuv.io/1556148a00 2017/08 208 若本金100萬,今欲建立Long Call9350@54; Short 9400Call@29.5部位。經計算 最佳風險比例為5%,則該建 立幾組這樣的部位?
  209. 209. 使用R語言建立選擇權的組合部位 (拼圖) •買進跨式 • Long Call9350@54 • Long Put9350@29.5 2017/08 209
  210. 210. 使用R語言建立選擇權的組合部位 (拼圖) •賣出跨式 • Short Call9350@54 • Short Put9350@29.5 2017/08 210
  211. 211. 使用R語言建立選擇權的組合部位 (拼圖) • 賣出跨式 • Short Call9350@54 • Short Put9350@29.5 • 折腳 • Long Call9450@13.5 • Long Put9250@7 • (買進蝴蝶價差) 2017/08 211
  212. 212. 使用R語言建立選擇權的組合部位 (拼圖) •賣出勒式 • Short Call9450@13.5 • Short Put9300@14.5 2017/08 212
  213. 213. 使用R語言建立選擇權的組合部位 (拼圖) • 賣出勒式 • Short Call9450@13.5 • Short Put9300@14.5 • 折腳 • Long Call9500@5.5 • Long Put9250@7 2017/08 213 (買進兀鷹價差)
  214. 214. Black-Schole Model 2017/08 214
  215. 215. 如何操爆你的資金!? 槓桿空間模型 (Leverage Space Model) 2017/08 215 多策略、多商品、多市場
  216. 216. 2017/08 216 多策略、多商品、多市場 若下注40次,每次下f比例(理論) A 𝒇 = 𝟏 + 𝟐𝒇 𝟐𝟎 𝟏 − 𝒇 𝟐𝟎 … 𝒇 = 𝟐𝟓% 剩下的75%資金要幹麻? 玩另一場?
  217. 217. 同時玩2場,每場各壓23%,資金運用達46%! 2017/08 217 10倍  90倍 報酬再多9倍!
  218. 218. 同時玩3場,每場各壓21%,資金運用達63%! 2017/08 218 10倍  90倍622倍 報酬再多62倍!
  219. 219. 2017/04 219 只玩1場40局, 最佳下注比例25% 資金運用達25%! 報酬 1 10 同時玩2場, 每場各壓23%, 資金運用達46%! 10倍  90倍 報酬再多9倍! 同時玩3場, 每場各壓21%, 資金運用達63%! 10倍  90倍622倍 報酬再多62倍!
  220. 220. “穩定”獲利的真正秘訣!! 投資組合的資金管理 槓桿空間模型(Leverage Space Model) 2017/04 220
  221. 221. 預測相關係數,發揮 “槓桿空間模型”效益 2017/04 221 0.7 0.3 0 -0.7-0.3
  222. 222. 2017/08 222
  223. 223. 小結: LSM告訴我們什麼? 尋找”最好的”市場、商品、策略!? 分配最適當、有效率的資金運用比例! 2017/08 223
  224. 224. 然而…有時候你只需要一點想像力!!! 2017/08 224 你可以分析全球各個金融市場資 料,運用各種高深的數學模型
  225. 225. 2017/08 225 2016年02月22日 (週一) 你覺得主力在幹什麼? 我覺得主力閒閒在家沒事做, 很無聊,畫 蝙 蝠 俠!
  226. 226. 自從出現蝙蝠俠後,10個交易日裡,有6個交 易日都是類似走勢,早盤衝高後又急速拉回!!! 2017/08 226
  227. 227. 看功夫學交易! 2017/08 227
  228. 228. Thank You! 未來有緣再見! 2017/08 228

×