模組的優劣比較有諸多方法,這裡介紹過度加碼的概念。直覺的,過度加碼並不能用在實際交易,因為交易者無法承擔破產風險,不過當模組在回測時,利用當前累積獲利金額的某一個比例來進行加碼,而且是過度加碼的方式來進行實驗,此時可以直覺地猜想,績效差的模組會因為沒有累積獲利而無法加碼。因此同樣的回測期間,績效差的模組永遠只能進行1口單的基本買賣;同理,績效好的模組可以透過加碼方式讓獲利呈現幾何級數方式大爆增。也就是說透過過度加碼的極端壓力測驗方式,可以讓好的模組與壞的模組績效差距拉得更開,透過最後一次下單的口數大小,來比較模組之間的優劣。
那甚麼是過度加碼 ? 依據凱利公式的敘述,最適的加碼比例與平均贏輸金額的比例和勝率有關,只要加碼方式跟這兩個數據無關,就不是最適加碼的方法,這邊我簡單列舉幾個回測用的加碼方式,用來評鑑模組間的優劣
1. 當前累積獲利的金額/2倍的保證金金額,這個意思大約就是台指期這個商品每每累積獲利一個40萬,就加碼一口 !
2. 當前累積獲利的金額/當前最大一筆損失金額的3倍
3. 當前累積獲利的金額/當前價格變動2%的虧損金額
4. 當前累積獲利的金額/當前最大的淨值回落金額
...
其他的加碼方式,就靠讀者的想像力,最終目的是鑑別模組的優劣,利用過度加碼的概念拉開優勝劣敗者的距離。也就是說,單一一口單的模組,透過過度加碼方式,比較其最後下單的口數,就能輕易比較兩者間的優劣。
例如,A模組、B模組下單商品都是台指期、一口單的情況下,都有同樣的NetProfit/MDD的比例,但是A模組的MDD發生位置在比較早期,B模組的MDD發生在比較在近期,明顯的,B模組的評鑑理應輸給A模組,但是Multicharts的績效報表無法提供這個比較,需要自行仔細目測績效走勢圖,所以一個過度加碼的概念可以輔助你做模組評鑑的決策,以下提供簡單的過度加碼的參考程式碼
Vars:xQuota(0),NP(0),MDD(0),LongPrice(0),ShortPrice(0);
If TotalTrades<=30 then xQuota=1;
If TotalTrades>30 then begin
MDD=MaxIDDrawDown;
NP=NetProfit;
If MDD<>0 then xQuota=IntPortion(-1*(NP/MDD));
If MDD=0 then xQuota=1;
If NP<0 then xQuota=1;
End;
Buy xQuota contracts next bar at LongPrice stop;
SellShort xQuota contracts next bar at ShortPrice stop;