Re: [問題] 新手程式交易回測與交易請益

看板Trading (金融交易)作者 (死馬)時間6年前 (2018/09/30 17:02), 6年前編輯推噓6(7144)
留言52則, 9人參與, 6年前最新討論串2/4 (看更多)
其實我覺得看起來應該還是回測的方法有問題,因為文長所以打一篇回覆 回測的方法有幾種,分成以下 1. 最粗糙的回測方式: 將過去可得的資料全部拿來開發策略,跑策略最佳化 開發完後直接拿最佳化過的測試數據當成策略績效(自爽),然後就直接上線 比方說,拿2008.01.01 ~ 2018.09.30(Today)的資料去開發策略,然後就直接開始使用 這種開發方式,通常真的上線之後都會賠的很慘 原因是在於這樣開發的測略很容易只有針對「過去」行情做最佳化 但卻不知道「未來」與「過去」的數據之間有何關連性,所以才會沒有用 常說的「過去不代表未來」就是在講這件事 2. 稍微進進階的回測方式(比較沒那麼粗糙,但還是滿粗糙的) 將過去的時間區間分成訓練與測試區間 將你的策略在「訓練區間」的數據上做最佳化(開發) 然後用「測試區間」的策略績效當作績效標準(評估) 舉個實例,假如說用2008.01.01 ~ 2017.12.31的資料去開發策略 然後你把開發完的策略套用在2018.01.01 ~ 2018.09.30(Today)當成策略績效 找到一套「策略開發方式」,讓基於2008.01.01 ~ 2017.12.31資料所開發的策略 能夠在2018.01.01 ~ 2018.09.30(Today)有好的績效表現之後 就用同一套開發策略的邏輯,搭配2008.01.01 ~ 2018.09.30(Today)的數據重新開發一次 然後用新的策略上線,祈禱上線之後的績效會跟之前績效有相似表現 我認為方法(2)比方法(1)稍微來的好一些 但是實際上測試得到的績效可能還是會不具代表性 因為如果選的時間窗格長度稍微不太一樣 或是取的時間區間不同,得到的績效數字可能會很不穩定 3. 比較完整一點的回測方式 也就是所謂的Walking Forward Analysis(WFA) 找到一套策略開發方式是在向前移動的時間窗格情況下平均有最佳表現 也就是說,你能夠找到一套一致的策略開發方式 使其在以下條件下平均來說達到最佳績效 1. 用 2008.01.01 ~ 2013.12.31 的資料開發策略 然後用 2014.01.01 ~ 2014.12.31 的資料來跑測試,當成策略績效 2. 用 2009.01.01 ~ 2014.12.31 的資料開發策略 然後用 2015.01.01 ~ 2015.12.31 的資料來跑測試,當成策略績效 3. 用 2010.01.01 ~ 2015.12.31 的資料開發策略 然後用 2016.01.01 ~ 2016.12.31 的資料來跑測試,當成策略績效 4. (繼續移動窗格...) 5. (繼續移動窗格...) 我是覺得在做到 3 (WFA) 之前最好都不要上線啦... 畢竟只有 WFA 才能把「過去」與「未來」的數據做可靠連結 得到的策略績效也才比較穩定可靠,有實際的參考價值 其實 WFA 根本是早就被講到爛的東西 能做到 WFA 只是代表你的策略開發流程有一定的可靠度 但是即使做完 WFA,距離真的能「穩定」上線賺錢我是覺得還有一大段 至於連WFA都沒做的,那就 ... ※ 引述《willchen (眉毛哥)》之銘言: : (原文發在option版,如有違反請版主告知,謝謝) : 各位期權交易的先進前輩好, : 小弟在2016年十月國慶連假開始自學MC程式交易。 : 當初自己亂搞開發出一支策略之後開始陸續跟朋友請教, : 加上研讀一些相關資料之後學習開發新策略, : 刪刪減減之後去蕪存菁出八支策略, : (CDP或均線價格突破,價差,外資未平倉籌碼策略等等) : 組合起來之後回測從1999/1/1到2018/09/28, : 滑價與交易費進出設定為一千。 : 不過非常倒楣的是剛好今年7.8.9月的行情非常糟糕, : 剛好小弟把全部組合完成的時間差不多就是在這個期間, : 現在賠到小弟開始懷疑人生.....Orz..... : 不知道到底是回測只是完全自爽的呢, : 還是真的是雖小遇到行情就是這麼糟糕? : 目前只想到只能降低槓桿跑到年底看看.... : 也想不出其他有什麼建議或方法能夠繼續改進。 : 想請問各位先進大大們不吝指教, : 以上先謝謝各位的時間與意見。 : 全部的回測數據如下 : https://imgur.com/PK1ZMPO
: https://imgur.com/tZ9Z5eg
: https://imgur.com/VwVtBJm
: https://imgur.com/ZGQTWxq
: https://imgur.com/WSXLkeI
: https://imgur.com/Gp9qS2J
: https://imgur.com/hdXqRV6
: https://imgur.com/Lu8tDNm
: https://imgur.com/vfM568M
: https://imgur.com/EmKYBgs
: https://imgur.com/va0hSB6
: https://imgur.com/kHtIXHw
: https://imgur.com/dle2U8J
: https://imgur.com/XcEHIkH
: https://imgur.com/mrzy7a4
: https://imgur.com/XvoXoqa
: https://imgur.com/rOTA0bl
: https://imgur.com/MxkKJHA
: https://imgur.com/rOTA0bl
: https://imgur.com/1vBCvkf
: https://imgur.com/EXJFANr
: https://imgur.com/4KtJSxr
: https://imgur.com/B9c5Idp
: https://imgur.com/gQagjOS
: https://imgur.com/dXtErua
: https://imgur.com/AipakZK
: https://imgur.com/zpFbBHB
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.160.90.66 ※ 文章網址: https://www.ptt.cc/bbs/Trading/M.1538298154.A.36C.html ※ 編輯: sma1033 (118.160.90.66), 09/30/2018 17:03:17 ※ 編輯: sma1033 (118.160.90.66), 09/30/2018 17:03:47 ※ 編輯: sma1033 (118.160.90.66), 09/30/2018 17:04:51

09/30 17:12, 6年前 , 1F
感恩!我再來好好思考一下!謝謝
09/30 17:12, 1F

09/30 17:14, 6年前 , 2F
如果是(1)的開發方式,我可以輕易開發出績效爆表的策略喔
09/30 17:14, 2F

09/30 17:14, 6年前 , 3F
但是一點屁用都沒有... XD
09/30 17:14, 3F

09/30 17:21, 6年前 , 4F
感恩!所以簡單來說就是每五年回測做外插法五年!
09/30 17:21, 4F

09/30 17:22, 6年前 , 5F
我只是以為從1999年開始的話數據比較多統計比較有意義?
09/30 17:22, 5F

09/30 17:23, 6年前 , 6F
數據比較多 -> 有統計上的意義,這推論有前提必須滿足
09/30 17:23, 6F

09/30 17:24, 6年前 , 7F
前提是你的數據本身必須要一致,如果我說2001年的資料和
09/30 17:24, 7F

09/30 17:25, 6年前 , 8F
2011年的資料,其實並非同樣的資料,所以不能一起使用呢?
09/30 17:25, 8F

09/30 17:25, 6年前 , 9F
同一個商品,在不同的時間區段,反映出來的行為本就可能
09/30 17:25, 9F

09/30 17:26, 6年前 , 10F
不好意思!雖然還是不太理解!我的資料就是凱衛的台指期與
09/30 17:26, 10F

09/30 17:26, 6年前 , 11F
是不同的,所以想「一體適用」的把所有數據囊括近來統計
09/30 17:26, 11F

09/30 17:27, 6年前 , 12F
台灣加權指數現貨的資料!這樣能算是同樣的資料嗎!?
09/30 17:27, 12F

09/30 17:27, 6年前 , 13F
概念上可能本身是錯誤的
09/30 17:27, 13F

09/30 17:28, 6年前 , 14F
假設「市場行為模式不會隨時間改變」,這想法未必正確
09/30 17:28, 14F

09/30 17:30, 6年前 , 15F
2001年的A走勢會導致下跌,不代表2011年A走勢就會下跌喔
09/30 17:30, 15F

09/30 17:32, 6年前 , 16F
搞不好同樣是A走勢,在2001年與在2011年有完全相反的結果
09/30 17:32, 16F

09/30 17:33, 6年前 , 17F
這時候你要如何知道明天的市場行為與2001年比較接近還是
09/30 17:33, 17F

09/30 17:34, 6年前 , 18F
2011年,如果你選了比較不同的時間區間測試當作可信結果
09/30 17:34, 18F

09/30 17:35, 6年前 , 19F
當然明天的策略績效就很有可能跟過去的測試狀況差異很大
09/30 17:35, 19F

09/30 18:12, 6年前 , 20F
樓上的太學理派了吧,技術分析本來就是隨機碰機率的.
09/30 18:12, 20F

09/30 18:12, 6年前 , 21F
只要找出部分最佳解就可以了,要找到全域最佳解,大概是
09/30 18:12, 21F

09/30 18:13, 6年前 , 22F
上帝才辦得到.講難聽點勝率overall大於50%就已經及格了
09/30 18:13, 22F

09/30 18:15, 6年前 , 23F
我跑了76萬跟k棒,勝率很滿意就行了,只要最大損失是能
09/30 18:15, 23F

09/30 18:15, 6年前 , 24F
夠能受的值,就行了.
09/30 18:15, 24F

09/30 18:17, 6年前 , 25F
就像一個投手比了76萬場比賽,勝率超過7成,你會懷疑它嗎
09/30 18:17, 25F

09/30 18:18, 6年前 , 26F
你這麼厲害,放一張圖來看看阿.沒圖都是假的,就連有圖都
09/30 18:18, 26F

09/30 18:19, 6年前 , 27F
不一定為真實,何況,沒有圖的在說理論,很難信服.
09/30 18:19, 27F

09/30 18:19, 6年前 , 28F
我是覺得如果要用技術分析,就免不了要面對「過去」與
09/30 18:19, 28F

09/30 18:20, 6年前 , 29F
推高手
09/30 18:20, 29F

09/30 18:20, 6年前 , 30F
「未來」的差異這件事,沒有數據佐證,只憑猜測很危險
09/30 18:20, 30F

09/30 18:21, 6年前 , 31F
WFA就是強迫你在最佳化的時候要考慮「過去」與「未來」
09/30 18:21, 31F

09/30 18:35, 6年前 , 32F
其實1跟2是一樣的 因為只滿足2不滿足1的你也不會上線
09/30 18:35, 32F

09/30 18:51, 6年前 , 33F
反正1跟2都是不完整的回測方法,我自己的標準是至少做到3
09/30 18:51, 33F

09/30 19:03, 6年前 , 34F
回james,我認為問題的關鍵在於如何知道是「一個投手」
09/30 19:03, 34F

09/30 19:04, 6年前 , 35F
而不是「兩個投手」或是「多個投手」,商品名稱相同不
09/30 19:04, 35F

09/30 19:06, 6年前 , 36F
代表在不同時間依然會具有相同特性...
09/30 19:06, 36F

09/30 19:07, 6年前 , 37F
至少我自己做實驗得到的結論就是如此
09/30 19:07, 37F

09/30 19:09, 6年前 , 38F
市場唯一恆久不變的特性,就是市場本身一直在改變
09/30 19:09, 38F
※ 編輯: sma1033 (118.160.90.66), 09/30/2018 21:19:58

09/30 23:00, 6年前 , 39F
我之前用1死有點慘 現在用3 不知道如何QQ
09/30 23:00, 39F

09/30 23:01, 6年前 , 40F
通常WFO 大家都怎麼去評估策略 跟以哪些參數來參考
09/30 23:01, 40F

09/30 23:10, 6年前 , 41F
做WFA也要正確評估結果才行呀...不然測了也沒用
09/30 23:10, 41F

09/30 23:18, 6年前 , 42F
WFA跑完 不會評估(掩面
09/30 23:18, 42F

09/30 23:25, 6年前 , 43F
你可以把報表貼上來讓大家看看,說不定有好心人願意提點~
09/30 23:25, 43F

09/30 23:42, 6年前 , 44F
想請教一下 WFO的anchored跟非anchored移動窗格 大家
09/30 23:42, 44F

09/30 23:42, 6年前 , 45F
都用哪個比較多
09/30 23:42, 45F

10/01 01:55, 6年前 , 46F
以上講的全都是不知道自己怎麼進場怎麼離場的回測評估吧
10/01 01:55, 46F

10/01 01:56, 6年前 , 47F
尤其是那些程式交易只是數據> = <就進場離場的
10/01 01:56, 47F

10/01 01:56, 6年前 , 48F
如果你很明確知道自己的程式進場理由/離場理由,拉開加
10/01 01:56, 48F

10/01 01:57, 6年前 , 49F
權指數 搭配 曲線圖,不用上面那一堆評估啦
10/01 01:57, 49F

10/01 01:57, 6年前 , 50F
那麼,程式交易者,到底知不知道為什麼進場了呢???????
10/01 01:57, 50F

10/01 09:22, 6年前 , 51F
如果當時有看到這篇文,也許我不會離開程式交易
10/01 09:22, 51F

10/02 16:52, 6年前 , 52F
就很有勇氣~
10/02 16:52, 52F
文章代碼(AID): #1Ri94gDi (Trading)
文章代碼(AID): #1Ri94gDi (Trading)