[dsc 2016] 系列活動:吳牧恩、林佳緯 / 用 r 輕鬆做交易策略分析及自動下單
Post on 21-Apr-2017
8.891 views
TRANSCRIPT
![Page 1: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/1.jpg)
資料科學系列活動—
用 R 輕鬆做交易策略分析及自動下單
Speaker: 吳牧恩、林佳緯(Julian)
Date: 2016.09.24(六)
2016/09 1
![Page 2: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/2.jpg)
你為何報名這堂課?
•想賺錢?
•想用R寫回測程式?
•覺得自己是百年難得一見的交易奇才?
•想用R下單?
• 如果你是工程背景?
• 如果你是數理背景?
• 如果你是金融背景?
• 如果你什麼背景都沒有?
2016/09 2
![Page 3: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/3.jpg)
先自我介紹一下
• 大家好,我是牧恩!
• 部落格 (Bituzi)
• 筆名:牧清華
• 數學
• 資金管理理論模擬策略回測
2016/09 3
https://www.youtube.com/watch?v=i5uCWL0nsFA
![Page 4: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/4.jpg)
你是百年難得一見的交易奇才嗎!?
•主觀交易• 市場上的眾多老師
• 傑西李佛摩
•計量交易• 西蒙斯(Jame Simons)
2016/09 4
過去:得民心者得天下!!現在:得“計量”者得天下!?
![Page 5: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/5.jpg)
過去股市名嘴喊盤,現在資料科學說話
2016/09 5
![Page 6: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/6.jpg)
加上量放大的條件?
2016/09 6
![Page 7: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/7.jpg)
烏雲罩頂: n天後的機率分佈
2016/09 7
![Page 8: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/8.jpg)
空頭吞噬: n天後的漲跌分佈
2016/09 8
![Page 9: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/9.jpg)
今天想帶給大家的內容
• 第一次使用R語言做回測就上手• 下載資料、讀取資料、畫K線、簡單回測
• 如何研發好的交易策略?• 績效:勝率、賠率、MDD、獲利因子• 策略:濾網、動量、加碼
• 交易的聖盃:資金管理的理論與實務• 理論:凱利賭徒、最佳化比例、槓桿空間模型• 實務:固定分數、固定比例、選擇權價差交易實務
• 用R語言串接API下單• Julian
2016/09 9
![Page 10: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/10.jpg)
哪裡下載R語言?
2016/09 10
![Page 11: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/11.jpg)
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")
2016/09 11
![Page 12: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/12.jpg)
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}
2016/09 12
1+1+1+…+1=?
1+1+1+…+1=?
1+3+5+…+97+99=?
![Page 13: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/13.jpg)
安裝quantmod
• install.packages("quantmod")
• library(quantmod)
參考網站:
• http://www.quantmod.com/
2016/09 13
![Page 14: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/14.jpg)
下載資料 getSymbols
•下載資料(預設Yahoo Finance)• 蘋果: getSymbols("AAPL")• 台積電: STK=get(getSymbols("2330.tw"))
•不同的資料源:• getSymbols('MSFT',src='google')• getSymbols("DEXJPUS",src="FRED")
•資料格式• 使用head、tail• 五個欄位:開高低收、量、還原權值
2016/09 14
![Page 15: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/15.jpg)
畫K線圖: chartSeries
• 時間週期• 日K: Default• 週K: STK_week=to.weekly(STK)• 月K: STK_mon=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")
2016/09 15
![Page 16: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/16.jpg)
技術分析指標
•均線• 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()
2016/09 16
![Page 17: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/17.jpg)
回測前置作業
• STK.week的列名稱• rownames(STK)
•有多少個日期?• length(rownames(STK))
•產生紀錄每筆交易損益的向量• numeric(length(rownames(STK)))
•產生紀錄每筆交易損益的向量,並附上日期• profit=setNames(numeric(length(rownames(STK))), rownames(STK))
2016/09 17
![Page 18: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/18.jpg)
台積電: 週一開盤買,週五收盤賣
•每周損益:周收盤價-周開盤價• profit[m]=STK[m,4]-STK[m,1]
•每週都要計算?• for (m in rownames(STK)) {
• profit[m]=STK[m,4]-STK[m,1]• }
•練習• 1: 若是開盤賣,收盤買• 2: 月K架構?
2016/09 18
![Page 19: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/19.jpg)
損益績效
• 損益向量• profit
• 總損益• sum(profit)• paste("Profit:",sum(profit))
• 累計損益• cumsum(profit)
• 畫出累計損益• plot(cumsum(profit), type="l",col="red",lwd=2)• abline(h=0,col="green")
2016/09 19
![Page 20: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/20.jpg)
簡單的績效分析
•贏的次數• length(profit[profit>0])
•勝率• length(profit[profit>0])/length(profit[profit!=0])
•平均賺• mean(profit[profit>0])
•平均賠• mean(profit[profit<0])
•賺賠比• mean(profit[profit>0])/abs(mean(profit[profit<0]))
2016/09 20
![Page 21: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/21.jpg)
如何研發好的交易策略?最大回檔、獲利因子、動量策略、加碼
2016/09 21
![Page 22: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/22.jpg)
台積電: 週一開盤買,週五收盤賣!績效模組: performance.R
2016/09 22
• Total Profit: 96685
• Trading Days: 488
• Profit Per Trade: 204.4091
• # of Win: 250
• Win Rate: 52.85412 %
• Winning Average: 2287.299
• Lossing Average: -2130.669
• Maximum Draw Down: 31800
• The Periods of MDD: 16 18 20 48 282
• Profit Factor: 1.203489
• Total Profit/MDD: 3.040425
![Page 23: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/23.jpg)
最大回檔(maximum drawdown, MDD)
•回檔(DD)• 最好不要有回檔(虧損、風險)
• 例如:定存最好!?
•絕對最大回檔(MDD)
•比例最大回檔(MDD%)
•穩定度的表現:• 總獲利/MDD
2016/09 23
![Page 24: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/24.jpg)
獲利因子(profit factor)
•賺的和 / |賠的和|• sum(profit[profit>=0])/sum(profit[profit<0])
•意義:每輸1單位,必可再換來?單位的獲利• 勝率很低無所謂? Why?
• 賺小賠大無所謂? Why?
• 交易次數很少無所謂? Why?
2016/09 24
![Page 25: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/25.jpg)
台積電這幾年都在多頭,每週開盤買當然賺!
考慮多空: 開低買,開高賣
2016/09 25
![Page 26: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/26.jpg)
週一開低買,開高賣,週五收盤前出
•第一週是否可以交易?• 先紀錄第一週收盤• 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]}
•練習• 開低1%買,開高1%賣,收盤前空手
2016/09 26
![Page 27: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/27.jpg)
TSMC: 開低買,開高賣
• Total Profit: 160638
• Trading Days: 488
• Profit Per Trade: 340.3358
• # of Win: 260
• Win Rate: 55.08475 %
• Winning Average: 2320.59
• Losing Average: -2088.278
• Maximum Draw Down: 25500
• The Periods of MDD: 20 22 39 50 89
• Profit Factor: 1.362849
• Total Profit/MDD: 6.299549
2016/09 27
![Page 28: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/28.jpg)
練習:開低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]
}
• 最佳化參數:開低?%買,開高?%賣,收盤前空手
2016/09 28
![Page 29: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/29.jpg)
當然你也可以試試其他股票
中鋼、中華電、鴻海、統一、國泰金、
甚至…..宏 達 電 !><
2016/09 29
![Page 30: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/30.jpg)
HTC: 開高賣,開低買
• Total Profit: 37470
• Trading Days: 488
• Profit Per Trade: 79.55541
• # of Win: 228
• Win Rate: 48.40764 %
• Winning Average: 21658.89
• Lossing Average: -20167.72
• Maximum Draw Down: 591000
• The Periods of MDD: 5 7 19 41 151
• Profit Factor: 1.007646
• Total Profit/MDD: 0.06340203
2016/09 30
![Page 31: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/31.jpg)
扣掉交易成本
• 股票手續費• 成交金額*0.1425% ,• 買賣各一次• 小數點以下無條件捨去,不足20元以20元計
• 證券交易稅:0.3%
• fee=STK[m,4]*0.006
• 期貨滑價+手續費扣5點• 傳統回測:2+2+1?• 經驗平均滑價約1.5點
2016/09 31
![Page 32: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/32.jpg)
台積電:聖盃靠盃
2016/09 32
![Page 33: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/33.jpg)
尋找0050成份股哪隻股票最會獲利?
•你可以考慮下面規則?• 1.周K架構 or 月K架構哪個好?• 2. 開高(?%)賣,開低(?%)買• 3. 開低(?%)買,開高(?%)賣• 4. 是否可做到停損 &停利?
• 停損不停利• 停利不停損
•請扣掉手續費:fee=STK[m,4]*0.006
•試找出2007年至今,誰的 “profit”最高?或是誰的PF最大?
2016/09 33
![Page 34: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/34.jpg)
沒轍了嗎?開始發揮人類愛賭的天性!!
凹~ 再凹~~~ 無止境的凹!!!
2016/09 34
![Page 35: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/35.jpg)
馬丁格爾的聖盃!? (以輪盤為例~)
贏: 翻倍;輸: 賠光
勝率18/37,賠率為1 (1:1)
2016/09 35https://www.youtube.com/watch?v=RldNUWT2pyY
![Page 36: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/36.jpg)
輪盤賭場優勢
2016/09 36
![Page 37: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/37.jpg)
一種天真浪漫的賭法~(勝率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
2016/09 37
![Page 38: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/38.jpg)
記得當時…PM 06:00進賭場,AM 11:00出賭場
10枚籌碼進去,50枚籌碼出來!
假設每3~4分鐘可玩1局,
1小時約玩16局,5小時大約玩80局
2016/09 38
![Page 39: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/39.jpg)
Beginner’s Luck!?我們就用R語言來模擬…
10枚籌碼,最多玩80次,超過50枚的機率?
2016/09 39
![Page 40: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/40.jpg)
(馬丁格爾模擬) 100枚籌碼,最多玩1000次
2016/09 40http://www.letyourmoneygrow.com/2016/09/04/mystery-and-misery-of-the-martingale-betting-system-why-it-will-not-make-you-rich/
![Page 41: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/41.jpg)
10枚籌碼,最多玩80次,最後超過50枚的機率!
2016/09
輸錢離場的機率為81.106%賺超過50枚的機率為5.322%
Beginner’s Luck 確認!
模擬10000次
41
![Page 42: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/42.jpg)
現在,我們開始 ”玩” 策略…
馬丁格爾: 贏了交易一張,輸了加倍交易
2016/09 42
![Page 43: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/43.jpg)
交易的馬丁格爾
• 產生一個計算每次部位大小的向量• 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}
• 計算每一次的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]}
}
2016/09 43
![Page 44: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/44.jpg)
將PZ前與PZ後畫在一起比較
• source(“performance.R”)
• par(mfrow=c(1,3)) ##三張圖畫同一個畫面
• performance(profit) ##PZ前
• performance(profit*PZ) ##PZ後
• ProfitBar(PZ) ##PZ大小
• max(PZ) ##最大使用部位
• mean(PZ) ##平均使用部位
2016/09 44
![Page 45: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/45.jpg)
馬丁格爾:輸了加倍買,贏了買1張
2016/09 45
![Page 46: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/46.jpg)
PZ大法:輸縮贏衝
•練習:類馬丁格爾 (1234…)
•練習:贏了交易一張,輸了交易兩張
•或是找出你認為最好的輸贏PZ?• 輸輸贏、輸輸輸贏、贏?
2016/09 46
![Page 47: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/47.jpg)
類馬丁格爾(1234):輸了多交易1張,贏了只交易1張
2016/09 47
![Page 48: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/48.jpg)
為了控制風險: 輸了交易2張,贏了交易1張
2016/09 48輸了“多”買1張
![Page 49: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/49.jpg)
濾網:輸了才交易1張,贏了就休息
• PZ大法
•練習:連輸兩次再交易是否更好?
2016/09 49
![Page 50: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/50.jpg)
濾網:去蕪存菁,拆解成…
輸了買2張,贏了買1張 = 買1張+ 輸了才買1張
2016/09 50
Total Profit: 70978.7 Trading Days: 488 Profit Per Trade: 292.0934 # of Win: 135 Win Rate: 55.55556 % Winning Average: 2195.129 Lossing Average: -2086.701 Maximum Draw Down: 15423 The Periods of MDD: 27 35 41 48 107 Profit Factor: 1.314952 Total Profit/MDD: 4.602133
輸了“才”買1張
![Page 51: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/51.jpg)
輸贏濾網好不好? 會不會是OverFitting?
2016/09 51
![Page 52: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/52.jpg)
動量策略 v.s.均值回歸• 動量策略 (順勢交易,買高賣低,違反人性):
• 因為過去漲,所以現在買進;因為過去跌,所以賣出
• 均值回歸 (逆勢交易,買低賣高,大家都愛):• 漲多了該回跌,跌深了該反彈
• 牛頓第二運動定律:動者恆動,靜者恆靜?• 股價漲未來是否會繼續漲?股價跌未來是否會繼續跌?
• 進場、加碼、停損、停利屬於哪一種?
• 在交易裡,大部分違反人性的事,都是好事!• 不正常的人才會獲利!!!
2016/09 52
![Page 53: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/53.jpg)
我們使用“隨機交易”概念!度量停損停利帶來的影響~
策略:開盤隨機交易,停損?停利?。
2016/09 53
![Page 54: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/54.jpg)
開盤隨機交易,不停損不停利,收盤平倉
2016/09 54
開盤隨機交易,停損30, 停利30,收盤平倉
![Page 55: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/55.jpg)
隨機交易,停損30 ,停利60,收盤平倉
2016/09 55
隨機交易,停損30,不停利,收盤平倉
![Page 56: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/56.jpg)
台指期貨隨機交易統計
• 不停損,停利30點
• 停損145點,停利35點
• 停損140點,停利40點
• …
• 停損35點,停利145點
• 停損30點,不停利
2016/09 56
順勢、動量、違反人性!
![Page 57: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/57.jpg)
2016/09 57
隨機交易,停損30,不停利,收盤平倉
隨機交易,不停損,停利30,收盤平倉
![Page 58: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/58.jpg)
隨機交易,其他股票如何?
1%停損,不停利
v.s.
1%停利,不停損
2016/09 58
![Page 59: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/59.jpg)
Momentum v.s. Mean Reverse
2016/09 59
![Page 60: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/60.jpg)
進場的動量策略突破n日高點、跌破n日低點
黃金交叉、死亡交叉
箱型突破、箱型跌破
均線糾結後多頭排列,空頭排列
2016/09 60
![Page 61: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/61.jpg)
“突破”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日高點
• 前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}
2016/09 61
![Page 62: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/62.jpg)
策略改進,使用波動濾網:
金融市場,什麼都是假的!
只有大小波動是真的!!
2016/09 62
![Page 63: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/63.jpg)
最簡單的波動…. 如果這是股價的波動?
2016/09 63
![Page 64: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/64.jpg)
20日標準差
2016/09 64
![Page 65: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/65.jpg)
日波動:每日開盤與收盤的漲跌幅
2016/09 65
![Page 66: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/66.jpg)
將目前的策略,增加波動濾網
•採用10日標準差當波動,門檻值0.7• if (sd(Cl(STK)[(m-10):(m-1)])<0.7){
原策略
}
•波動小策略品質好?還是波動大策略品質好?
•找出最好的波動門檻?
2016/09 66
![Page 67: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/67.jpg)
拿廢話當濾網…..
2016/09 67
![Page 68: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/68.jpg)
天下之大: 合久必分,分久必合金融市場: 波大必小,波小必大
世間萬物都是遵循此道!
2016/09 68
![Page 69: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/69.jpg)
2016/09 69
順勢策略:波動大小決定策略品質好壞?
波動<100 波動介在100~150 波動>150
![Page 70: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/70.jpg)
亂入策略波小當濾網輸了才交易
2016/09 70
![Page 71: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/71.jpg)
加碼的奧義成也加碼,敗也加碼!!
2016/09 71
![Page 72: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/72.jpg)
加碼的奧義: 成也加碼,敗也加碼!!
•摩天大樓 (1,1,1,1….)• 海龜
•金字塔 (5,4,3,2,1)• 正常人
•倒金字塔(1,2,3,4,5)• 瘋子
2016/09 72
投票表決一下你覺得哪個加碼法好?
![Page 73: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/73.jpg)
考慮台指期動量策略: 開盤+門檻值突破(用了濾網,採用順勢)
2016/09 73
Buy
![Page 74: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/74.jpg)
原始策略(單口當沖)績效與累計損益:X
2016/09
損益: 1670
總交易天數: 1375
實際交易次數: 199
平均每次損益: 8.434343
獲利次數: 80
勝率: 40.40404 %
平均賺: 56.175
平均賠: -23.9322
最大連續虧損: 250
最大連續虧損區間(天): 108
114 197 254 302
獲利因子: 1.59136
總獲利/MDD: 6.6874
![Page 75: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/75.jpg)
加碼規則:
進場後5分鐘後仍有獲利,加碼 1 口!
2016/09 75
![Page 76: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/76.jpg)
加碼第一口後: X+X1
2016/09
損益: 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
76
![Page 77: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/77.jpg)
加碼第二口後: X+X1+X2
2016/09
損益: 29513880
總交易天數: 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
77
![Page 78: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/78.jpg)
加碼第三口後: X+X1+X2+X3
2016/09
損益: 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
78
![Page 79: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/79.jpg)
一口一口加碼,你就滿足嗎?策略拆解: 分別”獨立”看每次的加碼!
2016/09 79
![Page 80: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/80.jpg)
第一次加碼: X1
2016/09
損益: 1281
總交易天數: 1375
實際交易次數: 103
平均每次損益: 12.43689
獲利次數: 47
勝率: 45.63107 %
平均賺: 55.12766
平均賠: -23.39286
最大連續虧損: 215
最大連續虧損區間(天): 93 96 98 114 345
獲利因子: 1.977863
總獲利/MDD: 5.95814
80
![Page 81: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/81.jpg)
第二次加碼 :X2
2016/09
損益: 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
81
![Page 82: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/82.jpg)
第三次加碼: X3
2016/09
損益: 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
82
![Page 83: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/83.jpg)
觀察:越加碼品質越好!等差加碼 (1234神經病!)
等比加碼 (1248瘋子!)
2016/09 83
![Page 84: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/84.jpg)
等差加碼1234
2016/09
損益: 9255
總交易天數: 1375
實際交易次數: 199
平均每次損益: 46.50754
獲利次數: 72
勝率: 36.1809 %
平均賺: 229.7083
平均賠: -57.35433
最大連續虧損: 858
最大連續虧損區間(天): 93 94 98 114 257
獲利因子: 2.270593
總獲利/MDD: 10.78671
84
![Page 85: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/85.jpg)
等比加碼1248
2016/09
損益: 12420
總交易天數: 1375
實際交易次數: 199
平均每次損益: 62.41206
獲利次數: 72
勝率: 36.1809 %
平均賺: 289.1389
平均賠: -66.12598
最大連續虧損: 1079
最大連續虧損區間(天): 93 94 114 157 257
獲利因子: 2.478924
總獲利/MDD: 11.51066
85
![Page 86: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/86.jpg)
結論:加碼是放大器,同時放大”風險”與”利潤”
好的原始策略加碼更好;
壞的原始策略加碼就完蛋!!! (overfitting)2016/09 86
![Page 87: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/87.jpg)
交易的聖盃:資金管理的理論與實務凱利、最佳化比例、槓桿空間模型
固定分數、固定比例、Ranking賭小一點
交易 v.s. 賭局 是否一樣?
哪裡一樣? 哪裡不一樣?
何謂賭局? 何謂交易?
2016/09 87
![Page 88: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/88.jpg)
給你一枚銅板,人頭輸,數字贏2倍!
•勝率50%,賠率為2
•期望獲利• 50%*(1+2)-1=0.5• 平均來說,每賭1元,可獲利0.5元,50%報酬。
•你有100元,可以玩無限多次,你會怎麼賭?• 如果連這麼好的賭局,你都不會賭,你憑什麼在交易上獲利?• 你可能會有其他說法,交易跟賭局不一樣?• 交易勝率不固定,賠率不固定• 交易次數有限次,賭局無限次
2016/09 88
賠光
WIN
LOSE
![Page 89: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/89.jpg)
要玩 “期望淨利 > 0”的賭局,這個大家都知道!
但這樣就夠了嗎?
2016/09 89
![Page 90: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/90.jpg)
做個賭徒模擬實驗就知道….
• 勝率50%,賠率為2• 1. 玩40次下注多少比例f會最好?
• 不同下注比例10%,20%,…,60%
• 2. 玩很多次下注多少比例f會最好?• 玩100次、500次、1000次、5000次
• 用R語言模擬一下~
• Input: 勝率、賠率、下注比例
• Output: 資金成長曲線!
2016/09 90
![Page 91: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/91.jpg)
考慮 勝率50%,賠率為2 的賭局
2016/09
資金100元
100元
91
![Page 92: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/92.jpg)
考慮 勝率50%,賠率為2 的賭局
2016/09
資金100元,如果下注20元
80元
20元
92
![Page 93: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/93.jpg)
考慮 勝率50%,賠率為2 的賭局
2016/09
資金100元,如果下注20元
贏:100*(1+2*20%) 80元
20元
20元
20元
93
![Page 94: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/94.jpg)
考慮 勝率50%,賠率為2 的賭局
2016/09
資金100元,如果下注20元
贏:100*(1+2*20%) 100元
20元
20元
140元
20元
94
![Page 95: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/95.jpg)
考慮 勝率50%,賠率為2 的賭局
2016/09
資金100元,如果下注20元
贏:100*(1+2*20%)輸:100*(1-20%)
100元
20元
80元
95
![Page 96: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/96.jpg)
賭局設定:
• 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 (紀錄每一局資產)
2016/09 96
![Page 97: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/97.jpg)
銅板賭局模擬
• 開始賭!• 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)} ## 資金成長
• 畫累計損益• 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)
2016/09 97
![Page 98: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/98.jpg)
2016/09 98
![Page 99: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/99.jpg)
身為一個賭徒(交易員)“賭” 最佳化!
身為一個數學家“資金管理” 最佳化!
2016/09 99
![Page 100: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/100.jpg)
凱利賭徒“理論上”的最佳下注比例
理論、模擬、分析
2016/09 100
![Page 101: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/101.jpg)
定義問題!!
•勝率50%,賠率2的賭局
•初始資金100元,玩無限多次• 假設人生可以天長地久
•每次決定下注比例f (0% < f < 100%)• 假設資金可以無限分割
•問題:f選多少可讓資金成長最快速!
2016/09 101
![Page 102: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/102.jpg)
凱利公式推導•勝率為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
• 如果玩無限多次會怎樣?
2016/09 102
![Page 103: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/103.jpg)
求 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的賭局,要你全壓,你賭不賭?
2016/09 103
![Page 104: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/104.jpg)
2016/09 104
![Page 105: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/105.jpg)
凱利騙局
•到底是誰騙了誰?
• Kelly
• Thorp
• Larry William
• Ralph Vince
2016/09 105
![Page 106: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/106.jpg)
不同的部位配置(position sizing, PZ),會造成不同的報酬損益!!
不是老師帶你上天堂、住套房,而是
”資金管理” 帶你上天堂、住套房!!
2016/09
一句話談交易:用風險換報酬
106
![Page 107: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/107.jpg)
•勝率固定(50%),賠率固定(2)的賭局
•不管如何Sample (10個取,20個取,50個取,100個取) 都一樣!!
•我以為的交易是上面這樣…
•實際的交易損益是:不知道機率、不知道賠率!?
博弈理論 v.s. 交易實務
2016/09
-1
107
![Page 108: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/108.jpg)
交易賭局:機率未知,但可 “預估”….???
•賭局給定機率、賠率
•交易回測給定”歷史損益” (Ralph Vince’s Optimal F)
2016/09 108
In Sample Out Sample
![Page 109: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/109.jpg)
HPR: Holding Period Return
• Idea: HPR= 1 + f (-profit/biggest loss)
• Example: 16、-8、+4• TWR (f)
= HPR1 * HPR2 * HPR3
= [1 + f (-16/-8)] * [1 + f (-(-8)/-8)] * [1 + f (-4/-8)]= (1 + 2f ) * (1 – f) * (1 + 0.5f)
• How to find optimal f to maximize TWR(f)?• Brute method: from f=1%, f=2%, f=3%,…,f=98%,f=100%
2016/09 109
![Page 110: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/110.jpg)
HPR理論 (玩1次的損益期望值 v.s.下注比例)
2016/09 110
![Page 111: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/111.jpg)
然而,人生並不像銅板賭局那麼簡單…交 易 也 是!
沒有連續,只有離散
沒有永恆(無限),只有曾經(有限)
2016/09 111
![Page 112: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/112.jpg)
2016/09 112
一場勝率50%、賠率為2的賭局,賭起來天南地北!
10次50%
500次24%
40次31%
100次21%
1000次26%
5000次25%
![Page 113: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/113.jpg)
2016/09 113
TWR模擬:從 (16,-8,4) 取樣也天南地北!
10次52%
500次38%
40次35%
100次46%
1000次36%
5000次38%
![Page 114: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/114.jpg)
三個層級的先知
•第一層 (神):不用知道勝率,因為他知道下一場會贏還是會輸!• 可以梭哈(ShowHands)
•第二層(半仙):知道未來10次,”一定會贏5次,輸5次“• 可以下最佳比例(Optimal f)
•第三層(智者):知道未來10次發生的機率“確實是50%”。(不容易)• 一旦遇到偏差,錯誤的下注比例很有可能讓你受傷慘重。
•賭小一點(1%~2%)
2016/09 114
再來我才要解釋這件事!
![Page 115: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/115.jpg)
下面策略,你選哪一個?
2016/09 115
100萬230萬 100萬1642萬
![Page 116: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/116.jpg)
原始策略: 想要Fitting,又怕OverFitting然而,這些都不是最重要的….
交易聖盃: 資金管理!! https://www.youtube.com/watch?v=yVQWJeLUxSk
2016/09 116
![Page 117: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/117.jpg)
2016/09 117
1% 3% 5% 8%
單口 風險比例
![Page 118: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/118.jpg)
最常用的資金管理:固定分數(Fixed Fraction)
•凱利賭局的勝率已知,賠率已知控制虧損
•交易的勝率未知,賠率未知?????
還是只能控制虧損!!
2016/09 118
![Page 119: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/119.jpg)
開盤突破昨日波動(高低)*k1• 開盤突破昨日波動*k1買進
• 20點停損,收盤平倉
• 回測標的:台指期貨
• 回測時間:2010.05.25~2015.09.10
2016/09
程式碼: 7_TX_HL.R
Total Profit: 1140 Trading Days: 1543 Profit Per Trade: 2.76699 # of Win: 161 Win Rate: 39.07767 % Winning Average: 43.81366 Lossing 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
119
![Page 120: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/120.jpg)
輸贏濾網:輸了一次再進場!
2016/09 120
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
![Page 121: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/121.jpg)
固定分數 (以台指期貨為例,固定風險比例2%)
• 每口最大損失: 200*(30+5)=7,000• loss=7000
• 初始資金: 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,下單口數??
2016/09 121
程式碼:8_Fixed_Fraction.R
每次交易最多損失總資金的2%
假設你有100萬,每次交易最多可損失100萬*2%=20000
則你最多下 (下高斯20000/7000) =2 口
![Page 122: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/122.jpg)
•設定固定分數向量• 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)
2016/09 122
![Page 123: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/123.jpg)
2016/09
Total Profit: 3054 # of Win: 161 Win Rate: 39.07767 % Maximum Draw Down: 1273 The Periods of MDD: 112 171 188 204 254 Profit Factor: 1.150466 Total Profit/MDD: 2.399057
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 123
![Page 124: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/124.jpg)
再來看一下Kelly是不是真的那麼神?
• 勝率: 39.07 %
• 賠率:平均賺/平均賠
• 平均賺: 43.8
• 平均賠: -23.56
• 凱利比例: 11.5 %
2016/09 124
![Page 125: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/125.jpg)
固定比例 (Fixed Ratio)
•瑞恩.瓊斯(交易的遊戲,1999)• 固定分數的缺點:最初合約的增速很慢,一但累積到一定數額後,合約的速度會突然增加很快。
•固定比例•試圖平等對待每份合約,使資金的增長速率相同。
• 1. 假設資金X,從一個單位做起,例如1口。
• 2. 固定每份合約的增長量(Delta)
2016/09 125
![Page 126: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/126.jpg)
初始資金100萬,做1口;Delta = 8萬。
•做2口的資金 = 做1口的資金 + 1*Delta = 108萬。
做3口的資金 = 做2口的資金 + 2*Delta = 124萬。
做4口的資金 = 做3口的資金 + 3*Delta = ? 萬。
•做n口的資金 = 做n-1口的資金 + (n-1)*Delta = ?。
2016/09 126
![Page 127: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/127.jpg)
固定比例:做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
2016/09 127
![Page 128: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/128.jpg)
HW: 實做固定比例,並與固定分數比較
2016/09 128
![Page 129: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/129.jpg)
凱利公式用於選擇權
2016/09 129
![Page 130: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/130.jpg)
買權買方 v.s. 買權賣方
買買權Long Call
賣買權Short Call
賭大漲! 賭不會漲!
2013/10/21
![Page 131: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/131.jpg)
賣權買方 v.s. 賣權賣方
買賣權Long Put
賣賣權Short Put
賭大跌! 賭不會跌!
2013/10/21
![Page 132: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/132.jpg)
7950
8000
-1750
750
損益
大盤結算位置
大盤結算位置
-1750
損益
我認為的大盤結算位置機率
機率
<7950
機率20%
>8000
機率50%7950~8000
機率30%
選擇權的多頭價差 v.s. 個人認為的機率分佈
買7950CALL; 賣8000CALL期望獲利:
−𝟏𝟕𝟓𝟎 × 𝟐𝟎%+ −𝟏𝟕𝟓𝟎+𝟕𝟓𝟎𝟐
× 𝟑𝟎%+ 𝟕𝟓𝟎 × 𝟓𝟎%
= −𝟏𝟐𝟓 < 𝟎 (不要賭!)
大盤結算位置損益
2013/10/21
![Page 133: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/133.jpg)
機率分佈 f(x)
-1750
750
損益
大盤結算位置損益
我認為的大盤結算位置機率
機率
7950 80007985 大盤結算位置
p*(1+b)-1 > 0 ?
1. 計算市場賠率2. 預測市場分佈!
3. 如何驗證此分佈是否正確?
2013/10/21
![Page 134: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/134.jpg)
如何操爆你的資金!?槓桿空間模型
(Leverage Space Model)
2016/09 134
多策略、多商品、多市場
![Page 135: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/135.jpg)
2016/09 135
多策略、多商品、多市場
若下注40次,每次下f比例(理論)A 𝒇 = 𝟏 + 𝟐𝒇 𝟐𝟎 𝟏 − 𝒇 𝟐𝟎
…𝒇 = 𝟐𝟓%剩下的75%資金要幹麻? 玩另一場?
![Page 136: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/136.jpg)
同時玩2場,每場各壓23%,資金運用達46%!
2016/09 136
10倍 90倍
報酬再多9倍!
![Page 137: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/137.jpg)
同時玩3場,每場各壓21%,資金運用達63%!
2016/09 137
10倍 90倍622倍
報酬再多62倍!
![Page 138: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/138.jpg)
2016/09 138
![Page 139: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/139.jpg)
2016/09 139
![Page 140: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/140.jpg)
小結: LSM告訴我們什麼?
尋找”最好的”市場、商品、策略!?
分配最適當、有效率的資金運用比例!
2016/09 140
![Page 141: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/141.jpg)
然而…有時候你只需要一點想像力!!!
2016/06 141
你可以分析全球各個金融市場資料,運用各種高深的數學模型
![Page 142: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/142.jpg)
2016/06 142
2016年02月22日 (週一)你覺得主力在幹什麼?
我覺得主力閒閒在家沒事做,很無聊,畫 蝙 蝠 俠!
![Page 143: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/143.jpg)
自從出現蝙蝠俠後,10個交易日裡,有6個交易日都是類似走勢,早盤衝高後又急速拉回!!!
2016/06 143
![Page 144: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/144.jpg)
看功夫學交易!
2016/09 144
![Page 145: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/145.jpg)
火雲邪神的啟示:天下武功,無堅不破,唯快不破!
2016/09 145
![Page 146: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/146.jpg)
Thank You!未來有緣再見!
2016/09 146
![Page 147: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/147.jpg)
用R語言串接API下單交易執行與API系統架構
林佳緯
![Page 148: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/148.jpg)
課程綱要
1. 交易執行與API系統架構
2. R計量交易套件介紹
3. R下單機設計說明與展示
![Page 149: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/149.jpg)
交易系統架構
多算勝,少算不勝,而況無算乎孫子兵法始計篇 第一
![Page 150: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/150.jpg)
交易的手與腦策略開發
策略執行
商品交易資訊
即時資料源-----------------
事件驅動
決策引擎
計量模型-----------------
交易執行規則
執行
交易單-----------------
作業風險管理
歷史資料
跨日/日內資料-----------------
資料庫
決策引擎
研究方法/演算法-----------------
校準
回測
損益模擬-----------------
風險評估
![Page 151: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/151.jpg)
交易執行系統架構
交易系統的基本要求:1. 即時 (延遲低於微秒)2. 零誤差 (小於 6 Sigma)3. 同時處理大量資料4. 高可用性與熱機備援
5
![Page 152: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/152.jpg)
完整交易系統架構圖
Application
Order Manager
Market Data
Complex Event Processing
engine
Exchange
1
Storage
Application Server Exchange
Strategy
Settings
UI
State
Mgmt (PnL
+ Position)
Order /
Execution
Monitor
Within
application
TMS
Maths
Calc
OMS
Admin
Monitor
Exchange
2
F
I
X
F
I
X
Data
Normalizer
Order
Router
Back
office
record
MktData
Store
Event
History
Adaptor for
third party
apps – R,
Matlab, etc
Data
Retrieval
Data Vendor
Replay
of stored
data
Simulator
exchange
AP
I
軟體
6
![Page 153: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/153.jpg)
台灣券商 API - 元大期貨為例
7
報價API 程式下單API 程式
![Page 154: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/154.jpg)
券商API 資訊流
中斷連線
帳務查詢
建立連線
商品註冊 行情資料 取銷註冊
海外期貨
國內期貨
手動委託
委託回報
手動回報
成交回報
![Page 155: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/155.jpg)
台灣券商 API 比較
2014年Julian Lin整理
9
![Page 156: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/156.jpg)
海外券商 API –盈透(Interactive Brokers)為例
10
![Page 157: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/157.jpg)
IB Trader Workstation 系統資訊流
EstablishConnection
ibtws
Get Info
accounts
contractdetails
portfolio
Get Data
getdata
timeseries
history
realtime
marketdepth
Create Orders
orderid
createorder
orders
executions
CloseConnection
close
![Page 158: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/158.jpg)
IB API架構圖
12
資料來源: http://www.bearcave.com/software/market_trading/resources_and_notes/Architecture%20of%20an%20Interactive%20Brokers%20Based%20Trading%20System.html
![Page 159: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/159.jpg)
IB API 透過程式進行自動交易
13
資料來源: http://holowczak.com/ib-api-java-realtime/3/
![Page 160: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/160.jpg)
交易系統化的優點
• 情緒影響最小化
• 可反覆回測驗證
• 維持交易紀律
• 一致性結果
• 提升下單速度
• 交易多角化
14
![Page 161: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/161.jpg)
交易系統化的缺點
• 軟硬體失靈故障
• 必須持續性監看,預防技術性異常的處理
• 過度優化
15
![Page 162: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/162.jpg)
R計量交易套件介紹
![Page 163: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/163.jpg)
R 計量財務套件規劃圖
Cran Task View: Empirical Finance
https://cran.r-project.org/web/views/Finance.html
Big data
High Frequency
High Frequency
Sen
d r
equ
ests
th
e se
rver
Do
wn
load
and
load
Data Mining
quant mod
Raw Data
A web application
Online
Shiny
Price Data
TTR
Techical Trading
Candlestick Chart
Additions of differentlines to the chart* Moving Average* Bollinger Bands* Moving Average
ConvergenceDivergence
Demonstration
framework for R
Statistics
* Downside riskmeasures
* Risk-adjustedperformance
Plots
* Density plot* Time series plot* Drawdown plot
Return Data
Performance Analytics
Performance Analysis
Data Journcy
Examp
les o
f Usin
g R in
Finan
ceExten
sion
s
Data cle
ansin
g
Data tran
sform
ation
Webpages
Files
Database
RCurlhttrrvest
17
![Page 164: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/164.jpg)
R計量分析套件階層分類
應用範圍 R 套件
績效度量表及圖表 PerformanceAnalytics - 投資績效與風險分析
投資組合優化與計量交易策略
PortfolioAnalytics - 投資組和分析與優化
quantstrat - 規則為基礎的交易系統開發
blotter - 交易系統帳務基礎結構歷史資料存取與財務圖
表quantmod - 量化財務模型框架
TTR - 技術分析規則
時間序列物件xts - 時間序列物件延伸功能
zoo - 時間排序觀察
18
![Page 165: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/165.jpg)
R 回測套件的優缺點• 仍在持續開發中,難免有些小瑕疵
• 回測速度慢 (相較 Python, C, MATLAB)
• 問題必須自己找解答
• 免費
• 開放原始碼
• 客製化自由度高
• 多幣別多商品多策略
19
![Page 166: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/166.jpg)
quantstrat 安裝說明
![Page 167: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/167.jpg)
安裝計量套件指令
install.packages("devtools")require(devtools)
install.packages("FinancialInstrument", repos="http://R-Forge.R-project.org")
install.packages("blotter", repos="http://R-Forge.R-project.org", type=“source”)
install.packages("quantstrat", repos="http://R-Forge.R-project.org", type=“source”)
install.packages("PortfolioAnalytics")
21
![Page 168: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/168.jpg)
先安裝R 開發工具套件
install.packages("devtools")
22
![Page 169: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/169.jpg)
逐一安裝quantstrat相關套件install.packages("FinancialInstrument", repos="http://R-Forge.R-project.org")
install.packages("blotter", repos="http://R-Forge.R-project.org", type=“source”)
install.packages("quantstrat", repos="http://R-Forge.R-project.org", type=“source”)
install.packages("PortfolioAnalytics")
23
![Page 170: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/170.jpg)
安裝後檢查
24
![Page 171: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/171.jpg)
測試結果
install.package(“RCurl”)
source_https <- function(url, ...) {# load packagerequire(RCurl)
# parse and evaluate each .R scriptsapply(c(url, ...), function(u) {eval(parse(text = getURL(u, followlocation = TRUE, cainfo = system.file("CurlSSL",
"cacert.pem", package = "RCurl"))), envir = .GlobalEnv)})
}
寫一段直接到git_hub載入程式碼的程式碼:
25
![Page 172: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/172.jpg)
直接載入github內quanstrat的範例程式碼
bbands.R為quantstrat 在 Github 上的一個布林通道策略範例
source_https.R
source_https("https://raw.githubusercontent.com/R-Finance/quantstrat/master/demo/bbands.R")
26
![Page 173: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/173.jpg)
交易回測step by step
![Page 174: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/174.jpg)
quantstrat 策略回測流程
讀取資料檔
設定啟始的參數與變數因子
產生指標 產生訊號
交易進出場的執行規則
更新交易帳戶資料
回測結果產出
參數優化
28
![Page 175: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/175.jpg)
quantstrat 基本的回測流程
29
幣別、商品、
歷史資料載入起始
化
投資組合、帳戶、交易單、交易策略
起始化
加入交易指標、交易訊號、交易規則
策略回測
更新投資組合、帳戶、權益資料
產生投資績效報告與圖表
起始化動作 策略定義 回測處理 帳務更新 報表產生
![Page 176: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/176.jpg)
策略商品的啟始化
library(quantstrat)
ttz<-Sys.getenv('TZ')Sys.setenv(TZ='UTC‘)
if (!exists('.blotter')) .blotter <- new.env()if (!exists('.strategy')) .strategy <- new.env()
suppressWarnings(rm("order_book.macross",pos=.strategy))suppressWarnings(rm("account.macross","portfolio.macross",pos=.blotter))suppressWarnings(rm("account.st","portfolio.st","stock.str","stratMACROSS",'start_t','end_t')
stock.str='AAPL' currency('USD') stock(stock.str,currency='USD',multiplier=1) startDate="2000-12-31“
initEq=1000000
30
![Page 177: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/177.jpg)
策略的帳戶、下單、投資組合啟始化
portfolio.st='macross' account.st='macross‘initPortf(portfolio.st,symbols=stock.str
initAcct(account.st,portfolios=portfolio.st, initEq=initEq) initOrders(portfolio=portfolio.st)
stratMACROSS <- strategy(portfolio.st)
31
![Page 178: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/178.jpg)
定義指標
stratMACROSS <- add.indicator(strategy = stratMACROSS, name = "SMA", arguments = list(x=quote(Cl(mktdata)), n=50),label= "ma50" )
stratMACROSS <- add.indicator(strategy = stratMACROSS, name = "SMA", arguments = list(x=quote(Cl(mktdata)), n=200),label= "ma200")
32
![Page 179: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/179.jpg)
定義訊號
stratMACROSS <- add.signal(strategy = stratMACROSS,name="sigCrossover",arguments = list(columns=c("ma50","ma200"), relationship="gte"),label="ma50.gt.ma200")
stratMACROSS <- add.signal(strategy = stratMACROSS,name="sigCrossover",arguments = list(column=c("ma50","ma200"),relationship="lt"),label="ma50.lt.ma200")
33
![Page 180: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/180.jpg)
訂定交易規則
stratMACROSS <- add.rule(strategy = stratMACROSS,name='ruleSignal', arguments = list(sigcol=“ma50.gt.ma200", sigval=TRUE, orderqty=100, ordertype='market',
orderside='long'),type='enter')
stratMACROSS <- add.rule(strategy = stratMACROSS,name='ruleSignal', arguments = list(sigcol="ma50.lt.ma200",sigval=TRUE, orderqty='all', ordertype='market',
orderside='long'),type='exit')
34
![Page 181: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/181.jpg)
開始回測
start_t<-Sys.time()out<-applyStrategy(strategy=stratMACROSS , portfolios=portfolio.st) [1] "2002-01-07 00:00:00 AAPL 100 @ 1.50565" [1] "2003-05-16 00:00:00 AAPL 100 @ 1.23608" [1] "2006-09-26 00:00:00 AAPL 100 @ 10.205548" [1] "2008-05-19 00:00:00 AAPL 100 @ 24.143005" [1] "2009-05-14 00:00:00 AAPL 100 @ 16.16766" [1] "2013-09-11 00:00:00 AAPL 100 @ 63.238555"
end_t<-Sys.time()
print(end_t-start_t) Time difference of 0.234004 secs
35
![Page 182: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/182.jpg)
交易帳戶資料更新
start_t<-Sys.time()
updatePortf(Portfolio='macross',Dates=paste('::',as.Date(Sys.time()),sep='')) [1] "macross“end_t<-Sys.time()
print("更新交易帳")[1] "更新交易帳“
print(end_t-start_t)Time difference of 0.07900095 secs
36
![Page 183: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/183.jpg)
回測結果報表
chart.Posn(Portfolio='macross',Symbol=stock.str)
add_SMA(n=50 , on=1,col='blue')add_SMA(n=200, on=1)
37
![Page 184: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/184.jpg)
回測結果報表
38
![Page 185: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/185.jpg)
交易過程訊息
book = getOrderBook('macross')
stats = tradeStats('macross')
ptstats = perTradeStats('macross')
rets = PortfReturns('macross')
txns = getTxns('macross', stock.str)
getOrderbook:交易單所有記錄
tradeStats:所有交易統計資訊
perTradeState:每筆交易統計資訊
PortfReturns:投資報酬
getTxns :交易明細帳
39
![Page 186: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/186.jpg)
交易單資料總表
names(book)[1] "macross“
names(book$macross)[1] "AAPL”
names(book$macross$AAPL)[1] "Order.Qty" "Order.Price" "Order.Type" [4] "Order.Side" "Order.Threshold" "Order.Status" [7] "Order.StatusTime" "Prefer" "Order.Set" [10] "Txn.Fees" "Rule" "Time.In.Force"
textplot(book$macross$AAPL[, 1:5])
40
![Page 187: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/187.jpg)
交易績效總覽
textplot(t(stats))
41
![Page 188: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/188.jpg)
策略的累積報酬率
chart.CumReturns(rets, legend.loc = "topleft", main="累積報酬率", minor.ticks=FALSE)
42
![Page 189: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/189.jpg)
R下單機設計說明與展示
![Page 190: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/190.jpg)
下單機程式架構
44
Ticks清整模組 動態回測模組
C# 控制介面
預測模組預測當天收盤點位 雲端資料庫
(交易明細報表)
回測歷史數據
儲存預測結果
儲存歷史數據
取得即時交易Tick
即時軟體手機App
(元大API)
email 參考自: http://www.slideshare.net/newmanchurch/r-56476014
![Page 191: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/191.jpg)
開發工具 toolchains 與步驟
• 開發工具下載與安裝• 下載Visual Studio 2013 Express
• 下載 R.NET
• 設定券商API與憑證
45
![Page 192: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/192.jpg)
API程式為何選擇 C# + R?
• 各有特長,也各有缺點• R 缺乏有效率的Asynchronous Event-Driven機制
• R born to count
• C#先進的物件導向語言特性與.Net緊密結合網路作業環境
• 券商必定提供之語言類型 : VBA/Java/C/C#
• C# 逐漸變成開放標準(open standard) 開放原始碼(Open Source)
• 爭取時效,縮短開發時間,減化程式複雜度
系統介面與數學演算模型間互相妥協與專業分工
46
![Page 193: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/193.jpg)
C# - 系統的語言
• C# 先進的物件導向語言特性
• 與.Net緊密結合網路作業環境
• 券商必定提供之語言類型 VBA Java C C#
• C# 逐漸變成開放標準(open standard) 開放原始碼(Open Source)
47
![Page 194: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/194.jpg)
R 統計的語言
• R 完整的數學與財務分析套件
• 豐富且免費的參考學習資源
• 完全免費
48
![Page 195: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/195.jpg)
Visual studio express 2013下載https://www.microsoft.com/zh-tw/download/details.aspx?id=44914
49
![Page 196: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/196.jpg)
執行Visual Studio 2013 Express
50
![Page 197: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/197.jpg)
關鍵字R.NET搜尋 Nuget元件庫左邊線上選擇netget.org,右上角搜尋框內打入 “R.NET”
51
![Page 198: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/198.jpg)
確認專案參考檔
如圖安裝R.NET C#套件,結果應如右圖所示
參考套件裡,多了三個套件RDotNet, RDOtNet.NativeLibrary, DynamicInterop
52
![Page 199: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/199.jpg)
API檔下載 http://easywin.yuantafutures.com.tw/api/download.html
元大行情API,請選擇:國內行情API元件及說明文件國內行情API C# 範例
元大交易API,請選擇:交易API元件及說明文件交易API C# 範例
53
![Page 200: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/200.jpg)
複製API相關檔案
分別把交易API元件與行情API元件解開底下所有檔案到特定目錄
54
![Page 201: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/201.jpg)
註冊OCX元件
命令式窗下切換到API 元件放置目錄cd c:\API
執行註冊報價元件與下單元件
55
![Page 202: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/202.jpg)
API測試
如果看到連線成功商品代號為 TXFJ6, 也註冊成功
那恭喜! API就此連通了。
56
![Page 203: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/203.jpg)
下單程式流程
登入帳號
註冊商品代碼
設定進出場條件
執行交易 終止交易
57
![Page 204: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/204.jpg)
完整畫面
58
登入設定區 設定商品區 進出場條件區
即時報價
所有狀態訊息顯示
R 整合圖表
交易啟動與關閉
![Page 205: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/205.jpg)
1. 登入設定區
59
要先設定好R 安裝目錄位置
帳號
密碼
![Page 206: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/206.jpg)
2. 設定商品代碼
60
![Page 207: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/207.jpg)
3.設定進出場條件
61
以時間進場或選擇以價位進場
![Page 208: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/208.jpg)
4.啟動關閉交易
62
開/關切換
模擬/實單切換
![Page 209: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/209.jpg)
報價畫面
63
![Page 210: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/210.jpg)
R tick點位分佈圖
6464
C# tick價位資料傳送給RR plot 點位分佈圖貼在C#上
![Page 211: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/211.jpg)
交易執行畫面
65
![Page 212: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/212.jpg)
計量與程式交易面臨的風險
• 交易策略• 市場風險
• 模型風險
• 交易執行• 流動性風險
• 作業風險
66
![Page 213: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/213.jpg)
程式常見的錯誤 - 內部
• 程式語法錯誤
• 邏輯錯誤
• 未預期的例外未處理
• 作業風險 -> 肥手指、邏輯炸彈、漏網之魚
67
![Page 214: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/214.jpg)
解決辦法
• 耐心的除錯與練習• 一個完整交易系統必經過程
• 嚴謹程式開發流程• 先驗證測試觀察上線後監控
• Divide & conquer 二分法釐清問題
• 善用除錯工具• 網路除錯
• 券商API 元大除錯工具範例程式
68
![Page 215: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/215.jpg)
程式常見的錯誤 –外部
• 網路延遲斷線問題
• 券商伺服器本身穩定性問題
69
![Page 216: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/216.jpg)
解決辦法
• 網路封包測速工具指令• traceroute
• ping
• 多券商備援• 觀察報價與下單回應時間差異
• 隨時預防部位避險
• 雙網路備援• 不同ISP之寬頻連網
• 固定線路與4G
70
![Page 217: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/217.jpg)
資料處理問題
• Garbage in, garbage out
• 不乾淨資料就導致從源頭就錯誤
• 即時資料防錯處理
• 回測資料清整與驗證
71
![Page 218: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/218.jpg)
即時系統回報機制
• 狀態回報是能否自動交易的關鍵。
• 好的系統不在於多聰明,在於少犯錯
• 系統大小事都要存log, 做重點性回報
72
![Page 219: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/219.jpg)
部位限制與管理
• 部位保證金限制• 限制帳戶不放策略設定部位之最大資金之1.5倍
• 證券帳戶在自動交易上,要非常小心!
73
![Page 220: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/220.jpg)
風險管理案例
• 騎士資本的教訓• 曾經是美國股票交易市場最大造市與高頻交易商,一度佔NYSE
17.3%與NASDAQ 16.9% 的市場交易量
• 2012年8月,因內部流程疏忽,沒有經過嚴格測試的造市程式直接上線進行交易
• 軟體臭蟲導致30分鐘內損失4.4億美金,兩天內自動交易接近150檔不同的各式股票,隔日公司市值因此損失75%
• 2012年12月,同意競爭對手Getco, Virtu Financial收購
74
![Page 221: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/221.jpg)
風險管理案例
• LTCM的教訓• 匯集所有世界級數學與金融財務的精英團隊
• 固定收益債券套利交易
• 作空S&P長期波動率
• 併購套利
75
低利差高槓桿,累積缺乏流動性商品,導致在金融風暴下虧損一發不可收拾
![Page 222: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/222.jpg)
閃崩(Flash Crash) 案例
2014年10月15日歐洲股市9:33到9:45 之間,因為泛歐斯托克銀行指數(EURO STOXX® Banks)期貨喪失流動性,導致價格急速攀升(連帶導致利率短期利率驟貶)
五分鐘後,又急速回升到9:33時的價位水準
瞬時湧入的交易量,超過2008雷曼風暴2011美債降等所引發的崩盤
![Page 223: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/223.jpg)
Q & A
![Page 224: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/224.jpg)
附註: R 相關工具安裝說明
• R 主程式軟體
• Rtools34
• RStudio
![Page 226: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/226.jpg)
base下載主安裝檔
![Page 227: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/227.jpg)
下載Rtools 3.4
![Page 228: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/228.jpg)
安裝R 與Rtools
![Page 229: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/229.jpg)
R 主程式安裝
記得32bit 與 64bit都要安裝!
![Page 230: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/230.jpg)
R 主程式安裝其他都用預設設定
程式集裡,確認安裝完成
![Page 231: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/231.jpg)
執行 R 64bit
看到主控台畫面,那就完成了!
![Page 232: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/232.jpg)
Rtools 安裝
![Page 233: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/233.jpg)
Rtools 安裝
其餘保持預設值
![Page 234: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/234.jpg)
開發工具介紹
• 安裝
• 基本功能介紹
![Page 235: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/235.jpg)
安裝RStudio
https://www.rstudio.com/products/RStudio/
選擇Windows Vista/7/8/10
![Page 236: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/236.jpg)
安裝RStudio
90
選擇Windows Vista/7/8/10
![Page 237: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/237.jpg)
安裝RStudio
91
![Page 238: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/238.jpg)
確定安裝完成
92
執行安裝後,可看到程式集上多了RStudio程式
大功告成!
![Page 239: [DSC 2016] 系列活動:吳牧恩、林佳緯 / 用 R 輕鬆做交易策略分析及自動下單](https://reader030.vdocuments.site/reader030/viewer/2022033016/58f9a8fc760da3da068b69c1/html5/thumbnails/239.jpg)
Studio 整合開發環境(IDE)
93
工作區域
主控台區
繪圖區域