新手程式交易回測與交易請益 - 財經

Table of Contents

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

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

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

--

All Comments

Sierra Rose avatarSierra Rose2018-10-03
感恩!我再來好好思考一下!謝謝
William avatarWilliam2018-10-07
如果是(1)的開發方式,我可以輕易開發出績效爆表的策略喔
但是一點屁用都沒有... XD
Olga avatarOlga2018-10-10
感恩!所以簡單來說就是每五年回測做外插法五年!
Vanessa avatarVanessa2018-10-13
我只是以為從1999年開始的話數據比較多統計比較有意義?
Audriana avatarAudriana2018-10-17
數據比較多 -> 有統計上的意義,這推論有前提必須滿足
Barb Cronin avatarBarb Cronin2018-10-20
前提是你的數據本身必須要一致,如果我說2001年的資料和
Faithe avatarFaithe2018-10-23
2011年的資料,其實並非同樣的資料,所以不能一起使用呢?
同一個商品,在不同的時間區段,反映出來的行為本就可能
Frederic avatarFrederic2018-10-26
不好意思!雖然還是不太理解!我的資料就是凱衛的台指期與
Leila avatarLeila2018-10-30
是不同的,所以想「一體適用」的把所有數據囊括近來統計
Edith avatarEdith2018-11-02
台灣加權指數現貨的資料!這樣能算是同樣的資料嗎!?
Mason avatarMason2018-11-05
概念上可能本身是錯誤的
Kyle avatarKyle2018-11-08
假設「市場行為模式不會隨時間改變」,這想法未必正確
Sandy avatarSandy2018-11-12
2001年的A走勢會導致下跌,不代表2011年A走勢就會下跌喔
Mason avatarMason2018-11-15
搞不好同樣是A走勢,在2001年與在2011年有完全相反的結果
Candice avatarCandice2018-11-18
這時候你要如何知道明天的市場行為與2001年比較接近還是
Sandy avatarSandy2018-11-22
2011年,如果你選了比較不同的時間區間測試當作可信結果
Olga avatarOlga2018-11-25
當然明天的策略績效就很有可能跟過去的測試狀況差異很大
Damian avatarDamian2018-11-28
樓上的太學理派了吧,技術分析本來就是隨機碰機率的.
只要找出部分最佳解就可以了,要找到全域最佳解,大概是
Skylar DavisLinda avatarSkylar DavisLinda2018-12-01
上帝才辦得到.講難聽點勝率overall大於50%就已經及格了
Oliver avatarOliver2018-12-05
我跑了76萬跟k棒,勝率很滿意就行了,只要最大損失是能
夠能受的值,就行了.
Dinah avatarDinah2018-12-08
就像一個投手比了76萬場比賽,勝率超過7成,你會懷疑它嗎
Jacob avatarJacob2018-12-11
你這麼厲害,放一張圖來看看阿.沒圖都是假的,就連有圖都
Linda avatarLinda2018-12-14
不一定為真實,何況,沒有圖的在說理論,很難信服.
Jacky avatarJacky2018-12-18
我是覺得如果要用技術分析,就免不了要面對「過去」與
Hamiltion avatarHamiltion2018-12-21
推高手
Belly avatarBelly2018-12-24
「未來」的差異這件事,沒有數據佐證,只憑猜測很危險
Donna avatarDonna2018-12-28
WFA就是強迫你在最佳化的時候要考慮「過去」與「未來」
Skylar Davis avatarSkylar Davis2018-12-31
其實1跟2是一樣的 因為只滿足2不滿足1的你也不會上線
Ingrid avatarIngrid2019-01-03
反正1跟2都是不完整的回測方法,我自己的標準是至少做到3
Xanthe avatarXanthe2019-01-06
回james,我認為問題的關鍵在於如何知道是「一個投手」
Rachel avatarRachel2019-01-10
而不是「兩個投手」或是「多個投手」,商品名稱相同不
Leila avatarLeila2019-01-13
代表在不同時間依然會具有相同特性...
Zanna avatarZanna2019-01-16
至少我自己做實驗得到的結論就是如此
Daniel avatarDaniel2019-01-19
市場唯一恆久不變的特性,就是市場本身一直在改變
Tom avatarTom2019-01-23
我之前用1死有點慘 現在用3 不知道如何QQ
Rebecca avatarRebecca2019-01-26
通常WFO 大家都怎麼去評估策略 跟以哪些參數來參考
Frederic avatarFrederic2019-01-29
做WFA也要正確評估結果才行呀...不然測了也沒用
Quintina avatarQuintina2019-02-01
WFA跑完 不會評估(掩面
Freda avatarFreda2019-02-05
你可以把報表貼上來讓大家看看,說不定有好心人願意提點~
Heather avatarHeather2019-02-08
想請教一下 WFO的anchored跟非anchored移動窗格 大家
都用哪個比較多
Ida avatarIda2019-02-11
以上講的全都是不知道自己怎麼進場怎麼離場的回測評估吧
Madame avatarMadame2019-02-15
尤其是那些程式交易只是數據> = <就進場離場的
如果你很明確知道自己的程式進場理由/離場理由,拉開加
Connor avatarConnor2019-02-18
權指數 搭配 曲線圖,不用上面那一堆評估啦
那麼,程式交易者,到底知不知道為什麼進場了呢???????
Ina avatarIna2019-02-21
如果當時有看到這篇文,也許我不會離開程式交易
Brianna avatarBrianna2019-02-24
就很有勇氣~