(圖/shutterstock)
下圖是一個當沖策略
從 2010 年以後的的損益累積圖
總損益為 3342 點,總交易次數 1043 次,
平均毎筆獲利 3.2 點,最大連續虧損 509 點,
這樣的結果你滿意嗎?
看損益累計圖似乎還不錯,
獲利不斷的創新高(紅X),
連續虧損也在一個合理範圍內 (下面綠色區域)。
但注意到,
平均毎筆交易只獲利3.2點 (已扣5點滑價手續費),
似乎覺得有點少。
真是如此嗎?
繼續看下去...
我們計算一下,平均每次賺 3.2 點,
也就是 640 元。
假設一口期貨保證金 10 萬元 (事實上應該小於10萬),
每天可獲利0.64%
當然,我們不可能單純用一口保證金去做。
最大連續虧損 509 點告訴你
用 10 萬做一口會遭遇到相當大的破產風險。
保守計算,假設用 50 萬做一口大台 (如此槓桿也接近4倍),
按照每天賺 3.2 點的績效,
一年約 250 個交易日可賺 16 萬,年化報酬率約 32%,
這樣的績效
我想沒人會否認不優異!
然而,你有沒有想過,
台指期每天指數波動大約100點上下,
每秒的波動大約在1~2點上下,
快市時每秒波動甚至可到5點甚至10點以上。
如果你是用手動下單,
不管你下單手法多麼敏捷,
你如何能夠在訊號發生後,
瞬間( < 0.2秒) 完成下單動作,
而不經歷1~2點的波動?
(也許快速鍵可以,但還是容易有誤差)
如果你無法完成上述瞬間的下單動作,
而每秒的波動又在上下1~2點間,
偏偏你圖的又是每次交易平均3.2點的獲利,
你不覺得這個策略是一個風險極高的當沖策略嗎?
好在是這個策略先扣掉5點的滑價跟手續費了。
也就是每次交易雖然平均只賺3.2點,
事實上是賺了3.2+5=8.2點:
包括1點的手續費,新倉平倉上下2點的滑價
(有時高估有時低估)。
這也是為何當沖策略最好用程式交易的原因,
讓電腦自動下單,
完整確實的執行觸價後"瞬間成交"這件事。
然而,你以為這樣就萬事太平了嗎?
當我們辛辛苦苦地做完回測,
發現確實能夠獲利拿來使用時,
可能還有一件讓事情讓你崩潰。
有沒有想過你的回測結果
可能是錯誤的?
下圖是統計2010年~ 2015年3月每分鐘波動統計圖。
可以發現,這段時間每分鐘的 "高點-低點"
大約在1~5點之間,
最常發生是在2、3、4點,其次是1點、5點。
而我們通常用來回測的歷史資料是正是分K資料,
也就是我們有歷史行情每分鐘的開高收低,
這會造成回測上一個很大的問題。
舉例來說,用分K策略點執行30點的固定停損,
這樣的設定屬於"觸價停損",
也就是一旦盤中有觸碰到停損價位,
程式就自動執行下單,
也許成交在下一個tick;
若是發生快市滑價,也許成交在下2~3個價位以後。
可惜的是,用分K資料回測,
當第 I 分鐘X秒 (0<X<60) 發生觸價,
你該用第I分鐘的什麼價位去執行停損,
記得你的分K資料
只有第 I 分鐘的
"開"、"高"、"收"、"低",
你只有這四個數字可以使用。
兩種方式你可以選擇,
一種是用第 I 分鐘的最差價位去計算,
所謂最差價位,
可能是用最低價(多單停損)去計算,
可能是用最高價(空單停損)去計算。
另一種方式,
你可以用下一分鐘的開盤價去計算,
也就是第 I+1分鐘的開盤價。
總之,邏輯都是在 "實際可執行策略"
或是 "保守預估績效" 的的情況下去回測。
當然,你無法用第 I分鐘的"最佳價位"去執行停損,
那樣會佔去探多便宜。
不要以為這小小的
"1分鐘內的誤差" 微不足道
下面我們來做個實驗:
上述的策略,
如果我們在第I分鐘觸價停損,
我們用第I分鐘的最差價位去執行停損。損益累計圖如下。
總損益: -3105
總交易次數: 1043
平均每筆損益: -2.976989
獲利次數: 433
勝率: 41.51486 %
平均賺: 38.03002
平均賠: -32.08525
最大連續虧損: 3416
有沒有很誇張?
損益績效圖從一個
穩定向上看似很棒的策略
變成一路賠到底的損益績效圖
爛到連綠色的最大虧損我都不敢畫出來
如果我們改成 "第I分鐘觸價停損,
在第I+1分鐘的開盤價執行平倉",
則結果稍微好一點,但還是慘兮兮。
總損益: -900
總交易次數: 1043
平均每筆損益: -0.8628955
獲利次數: 433
勝率: 41.51486 %
平均賺: 38.03002
平均賠: -28.47049
最大連續虧損: 1677
如果將程式回策動個"小手腳":在第I分鐘觸價停損,
我們卻提早一點點就 "預知" 這件事,
在第I分鐘的開盤就先行平倉 (也就是提早知道X秒)。
則績效如下:
總損益: 3342
總交易次數: 1043
平均每筆損益: 3.204219
獲利次數: 437
勝率: 41.89837 %
平均賺: 37.71854
平均賠: -21.68482
最大連續虧損: 509
ㄟ~ 有沒有發現,這就是本文一開始呈現的策略績效。
換句話說,這個策略本身回測成果並非如此,
別以為預知不到 1 分鐘 (X秒) 影響不大,
事實證明,預知越多時間,影響越大。
也就是績效會愈好,下面是提早整整1分鐘的結果:
假設我們可預測下一分鐘會觸價停損,
也就是我們在第I-1分鐘的開盤就直接執平倉,
則績效如下:
總損益: 5339
總交易次數: 1043
平均每筆損益: 5.118888
獲利次數: 448
勝率: 42.95302 %
平均賺: 37
平均賠: -18.88571
最大連續虧損: 350
看到沒有,我們偷到的"預知1分鐘",
足以撼動整體策略績效,
現在你還敢用分K做當沖策略回測嗎?
用分K資料如何做當沖回測?
當然一個可行的方法,
是你就直接用觸發價當作進場價,
停損(利)價當做出場平倉價,
但記得要扣掉手續費與滑價5點。
也就是你若設定固定停損30點,
直接用停損價位扣掉滑價5點。
換句話說,每次交易停損後,都是賠35點。
下圖是損益圖與績效。
總損益: -454
總交易次數: 1205
平均每筆損益: -0.3767635
獲利次數: 495
勝率: 41.07884 %
平均賺: 40.83434
平均賠: -29.10845
最大連續虧損: 1592
這樣做的結果會比較符合實際交易的結果,
但誤差仍然是存在。
畢竟不是每次都剛好滑價5點(時高時低),
這點用分K做回測
任憑你再神通廣大也難以預估
未經授權,請勿轉載!