[爆卦]程式交易 回 測是什麼?優點缺點精華區懶人包

為什麼這篇程式交易 回 測鄉民發文收入到精華區:因為在程式交易 回 測這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者sma1033 (死馬)看板Trading標題Re: [問題] 新手程式交易回測與交易請益時間S...

程式交易 回 測 在 我要做富翁|平民化教學|投資不是大鱷專利 Instagram 的最佳貼文

2021-03-06 09:51:18

恒指改革,成份股目標增至100隻。究竟係股市回調的情況下,係咪應該乘機追入新貴或者潛在藍籌股?大市彈出又彈入,令好多「韭菜」被震走,究竟點樣可以避開不必要虧損? 明天下午1點,富翁電視MTTV節目「富翁講場」請到程式交易專家Dennis,同各位分析大市,股市見頂/下跌又會有咩訊號?同場加映一個簡單...


其實我覺得看起來應該還是回測的方法有問題,因為文長所以打一篇回覆

回測的方法有幾種,分成以下

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
willchen: 感恩!我再來好好思考一下!謝謝 09/30 17:12
sma1033: 如果是(1)的開發方式,我可以輕易開發出績效爆表的策略喔 09/30 17:14
sma1033: 但是一點屁用都沒有... XD 09/30 17:14
willchen: 感恩!所以簡單來說就是每五年回測做外插法五年! 09/30 17:21
willchen: 我只是以為從1999年開始的話數據比較多統計比較有意義? 09/30 17:22
sma1033: 數據比較多 -> 有統計上的意義,這推論有前提必須滿足 09/30 17:23
sma1033: 前提是你的數據本身必須要一致,如果我說2001年的資料和 09/30 17:24
sma1033: 2011年的資料,其實並非同樣的資料,所以不能一起使用呢? 09/30 17:25
sma1033: 同一個商品,在不同的時間區段,反映出來的行為本就可能 09/30 17:25
willchen: 不好意思!雖然還是不太理解!我的資料就是凱衛的台指期與 09/30 17:26
sma1033: 是不同的,所以想「一體適用」的把所有數據囊括近來統計 09/30 17:26
willchen: 台灣加權指數現貨的資料!這樣能算是同樣的資料嗎!? 09/30 17:27
sma1033: 概念上可能本身是錯誤的 09/30 17:27
sma1033: 假設「市場行為模式不會隨時間改變」,這想法未必正確 09/30 17:28
sma1033: 2001年的A走勢會導致下跌,不代表2011年A走勢就會下跌喔 09/30 17:30
sma1033: 搞不好同樣是A走勢,在2001年與在2011年有完全相反的結果 09/30 17:32
sma1033: 這時候你要如何知道明天的市場行為與2001年比較接近還是 09/30 17:33
sma1033: 2011年,如果你選了比較不同的時間區間測試當作可信結果 09/30 17:34
sma1033: 當然明天的策略績效就很有可能跟過去的測試狀況差異很大 09/30 17:35
jamestian: 樓上的太學理派了吧,技術分析本來就是隨機碰機率的. 09/30 18:12
jamestian: 只要找出部分最佳解就可以了,要找到全域最佳解,大概是 09/30 18:12
jamestian: 上帝才辦得到.講難聽點勝率overall大於50%就已經及格了 09/30 18:13
jamestian: 我跑了76萬跟k棒,勝率很滿意就行了,只要最大損失是能 09/30 18:15
jamestian: 夠能受的值,就行了. 09/30 18:15
jamestian: 就像一個投手比了76萬場比賽,勝率超過7成,你會懷疑它嗎 09/30 18:17
jamestian: 你這麼厲害,放一張圖來看看阿.沒圖都是假的,就連有圖都 09/30 18:18
jamestian: 不一定為真實,何況,沒有圖的在說理論,很難信服. 09/30 18:19
sma1033: 我是覺得如果要用技術分析,就免不了要面對「過去」與 09/30 18:19
nds3ds: 推高手 09/30 18:20
sma1033: 「未來」的差異這件事,沒有數據佐證,只憑猜測很危險 09/30 18:20
sma1033: WFA就是強迫你在最佳化的時候要考慮「過去」與「未來」 09/30 18:21
john668: 其實1跟2是一樣的 因為只滿足2不滿足1的你也不會上線 09/30 18:35
sma1033: 反正1跟2都是不完整的回測方法,我自己的標準是至少做到3 09/30 18:51
sma1033: 回james,我認為問題的關鍵在於如何知道是「一個投手」 09/30 19:03
sma1033: 而不是「兩個投手」或是「多個投手」,商品名稱相同不 09/30 19:04
sma1033: 代表在不同時間依然會具有相同特性... 09/30 19:06
sma1033: 至少我自己做實驗得到的結論就是如此 09/30 19:07
sma1033: 市場唯一恆久不變的特性,就是市場本身一直在改變 09/30 19:09
※ 編輯: sma1033 (118.160.90.66), 09/30/2018 21:19:58
micbrimac: 我之前用1死有點慘 現在用3 不知道如何QQ 09/30 23:00
micbrimac: 通常WFO 大家都怎麼去評估策略 跟以哪些參數來參考 09/30 23:01
sma1033: 做WFA也要正確評估結果才行呀...不然測了也沒用 09/30 23:10
micbrimac: WFA跑完 不會評估(掩面 09/30 23:18
sma1033: 你可以把報表貼上來讓大家看看,說不定有好心人願意提點~ 09/30 23:25
micbrimac: 想請教一下 WFO的anchored跟非anchored移動窗格 大家 09/30 23:42
micbrimac: 都用哪個比較多 09/30 23:42
darkMood: 以上講的全都是不知道自己怎麼進場怎麼離場的回測評估吧 10/01 01:55
darkMood: 尤其是那些程式交易只是數據> = <就進場離場的 10/01 01:56
darkMood: 如果你很明確知道自己的程式進場理由/離場理由,拉開加 10/01 01:56
darkMood: 權指數 搭配 曲線圖,不用上面那一堆評估啦 10/01 01:57
darkMood: 那麼,程式交易者,到底知不知道為什麼進場了呢??????? 10/01 01:57
yuiop0929: 如果當時有看到這篇文,也許我不會離開程式交易 10/01 09:22
israelii: 就很有勇氣~ 10/02 16:52

你可能也想看看

搜尋相關網站