作者phigroup (法意)
看板Trading
标题[心得] 程式交易:回测资料不正确,再多努力也枉然2/Job-Back adjus
时间Thu May 7 11:03:57 2009
程式交易:回测资料不正确,再多努力也枉然2/Job-Back adjusted换月跳空修正
图形分析请见:
http://www.wretch.cc/blog/phigroup/15741473
图:最佳化後的绩效-没有修正换月跳空(没有Back adjusted)的历史资料
图:最佳化後的绩效-有修正换月跳空(Back adjusted)的历史资料
.第二个例子:换月跳空
许多人回测历史资料时,使用的是没有修正换月跳空的连续月资料(没有Back adjusted)。
例如:我们在7月的合约放空一口大台,并在最後交易日前换仓到8月。但由於8月是除息
旺季,所以8月的价格都至少比7月低了100点以上。於是我们回测时,就会抓到原本赚不
到的钱。
使用未修正的连续月资料,就会在放空时,把这样的跳空当成利润计算。但换月跳空的影
响多大呢?我们以均线策略为例:
一般来说,近年都会高估10%、20%的获利,甚至在某些条件下,会高估50%的获利
我找了一个高估的例子:
2008年1月~2009年3月,最近15个月的资料,以净利最佳化为例:
1.站上n日均线,则下根k线开盘做多。
2.跌破n日均线,则下根k线开盘做空。
3.不考虑手续费,是为了看策略原型的效果。
请看最上方的图…
你会发现,约15个月的资料,使用没有修正的资料回测。「最佳化」後,一口大台就高估
了21.5%的获利。高估了122600元,613点的行情。一口就是4个月的薪水啊…你怎麽能不
在意呢?
.原因在於?
以历史来说,7、8、9月是除息旺季,但第二、三季往往是空头市场。所以均线策略经常
会在第三季时做空,在做最佳化时,就会抓到它原本赚不到的跳空。
另外,空头市场总是会逆价差,而多头市场,也经常会出现正价差的情况。均线策略,都
会补捉到这些原本就赚不到的跳空。
如果有人说:「因为有时是正价差、有时逆价差、有时我们做多,有时我们做空。因为这
一切会互抵,所以期货连续月的跳空不需要修正。」下次听到这句话时,就可以让它左耳
进、右耳出了。
结论是,做程式交易的人一定都会最佳化,去寻找那获利的高原。上述是很明显的例子,
你一眼就能看出错误之所在。但最佳化是隐晦的恶魔,它会在你不经意的时候欺骗你,引
诱你走上自毁的道路。
要走出这些迷途,仍然需要真枪实弹去赔,才会真正觉悟,才会了解这些「小事」的重要
性。
我承认我也在程式交易上赔过很多,我是真的赔过,也赔怕了,任何细节都不敢大意。因
为我知道,魔鬼就在细节中。
结论:
第一个例子说的是,发生从未发生的事件时,只要你做了最佳化,就一定会抓到那个「跳
空」。
第二个例子说的是,当资料不正确时,只要你做了最佳化,就一定会抓到那个「你原本赚
不到的获利」。
结论是,不论是人为的、或非人为的跳空,甚至是资料的错误。「最佳化」都会尽力抓到
它,於是你必然会高估的你获利,然後让自己用了过度的杠杆,
最後,
自毁前程。
程式交易延伸阅读
2009.05.04 程式交易:回测资料不正确,再多努力也枉然1/Job-以2004年为例
http://www.wretch.cc/blog/phigroup/15741425
--
PHI金融梦想家 部落格
http://www.wretch.cc/blog/phigroup
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 58.114.213.73
1F:推 yuting0103:只要回测资料量够大,分线等级的程式,可以忽略这个问题 05/07 11:26
2F:推 newred:一直在讨论这种最佳化 颇无聊的 @@ 05/07 11:47
3F:推 OhNeil:推 史瓦格也一直谈到连续月份产生的问题 05/07 12:00
4F:→ OhNeil:不过 一直修正连续期货的价差 最後好像会出现负值? 05/07 12:01
5F:推 littlegame:不无聊阿 很有趣 而且不是只有最佳化才会有这样的问题 05/08 00:04
6F:→ MarketWizard:赔钱的人才会想东想西想修正吧...:)) 05/09 12:16
7F:推 newred:Market 大说的颇中肯的 :P 05/09 16:43
8F:推 littlegame:这个跟赚赔没啥关系啦 如果是要"自动化"程式交易 05/11 11:57
9F:→ littlegame:那多注意一点回测的真实性不为过 05/11 11:57
10F:→ littlegame:我赚钱 但是也不会觉得这个没意义 :) 多看多学吧 05/11 11:59