Uniwersytet Warszawski Wydział Nauk Ekonomicznych Projekt systemu transakcyjnego dla kontraktów terminowych indeksu WIG20. Marcin Chlebus Nr albumu: 220657 Warszawa, czerwiec 2009
Wstęp Celem niniejszej pracy jest stworzenie optymalnego (jak najlepszego) systemu transakcyjnego na zbiorze notowao kontraktów terminowych indeksu WIG20. Okres wzięty do optymalizacji zaczyna się 20 grudnia 1999 roku a kooczy 1 czerwca 2007 roku 1. Zbiór notowao kontraktów terminowych na indeks WIG20 z ostatnich dwóch lat (od 2 czerwca 2007 roku do 1 czerwca 2009 roku) posłużył za okres prognozy. Wyodrębnienie okresu prognozy pozwoli stwierdzid czy zoptymalizowany system dobrze działa również na zbiorze, który nie służył do jego optymalizacji. Badanie przeprowadziłem w programie Metastosck 8.0. Tworzenie systemu transakcyjnego Tworzenie systemu transakcyjnego rozpocząłem od wykorzystania wskaźnika MACD (Moving Average Convergence / Divergence). Jest to wskaźnik stworzony przez Geralda Appela. Wskaźnik ten jest różnicą wartości krótkoterminowej i długoterminowej wykładniczej średniej kroczącej. Dokładniej, według twórcy, różnicą 12 okresowej i 26 okresowej wykładniczej średniej kroczącej. Do wygenerowania sygnałów kupna i sprzedaży wykorzystuje się również tzw. linię sygnalną, która w tym przypadku jest wykładniczą średnią kroczącą samego wskaźnika (zazwyczaj 9 okresową). Sygnał kupna zostanie wygenerowany gdy linia MACD przetnie od dołu linie sygnalną, natomiast przecięcie linii sygnalnej przez linię MACD od góry generuje sygnał sprzedaży 2. Na początku uznałem, że nie będę zmieniał okresów średnich kroczących a jedynie zoptymalizuję ilośd okresów wziętych do wyliczenia linii sygnalnej. Zamiast wziąd 9 okresową wykładniczą średnią kroczącą, zdecydowałem się wybrad tę wartośd z przedziału <4,20> z krokiem równym 1. Okazało się, że optymalny wybór długości okresów wziętych do wyliczenia wartości linii sygnalnej równy jest 7 okresów. Uzyskane wyniki przedstawiają tabele 1 i 2, a linię equity wykres 1. 1 Taki zbiór danych był dostępny na protalu internetowym bossa.pl. 2 Wikipedia.pl 1
Wykres 1. Linia equity dla systemu opartego na wskaźniku MACD. Tabela 1. Zakładka Summary dla systemu opartego na wskaźniku MACD. Summary Macd_moj Simulation Date 2009-06-03 00:45:06 Optimized System Points Only Test FW20 (FW20) 1869 Daily Bars 1999-12-20 Through 2007-06-01 (2720 Days) Profit 2458.0000 Pts Annualized Buy & Hold Profit 1821.0000 Pts Buy & Hold Buy & Hold Annualized Trade Summary Total Trades 149 Trade Efficiency -14.34 % Average Profit/Average Loss Profitable Trades Total 56 Long 30 Short 26 Average Profit 126.6786 Pts Highest Profit 569.0000 Pts Lowest Profit 7.0000 Pts Most Consecutive 6 Unprofitable Trades Total 93 Long 45 Short 48 Average Loss -49.8495 Pts Highest Loss -195.0000 Pts Lowest Loss Most Consecutive 10 Maximum Position Excursions Long Favorable 654.0000 Pts Short Favorable 713.0000 Pts Long Adverse -215.0000 Pts Short Adverse -196.0000 Pts Trade Efficiency Average Entry 53.36 % Average Exit 32.30 % Average Total -14.34 % Average Long Entry 56.69 % Average Long Exit 35.17 % Average Long Total -8.15 % Indices Buy & Hold Index 34.98 % Profit/Loss Index 34.65 % Reward/Risk Index 87.54 % Accounting Initial Equity Trade Profit Trade Loss Interest Credited Interest Charged Final Equity Open Account Variation Highest Account Balance Lowest Account Balance Highest Portfolio Value Highest Open Drawdown Highest d Drawdown Account Events 7094.0000 Pts -4636.0000 Pts 298.0000 Pts 2458.0000 Pts 2544.0000 Pts -35 654.0000 Pts -35-349.0000 Pts Margin Calls 0 Overdrafts 0 Profitable Timing Average Trade Length 20 Longest Trade Length 53 Shortest Trade Length 6 Total Trade Length 1139 Unprofitable Timing Average Trade Length 7 Longest Trade Length 27 Shortest Trade Length 1 Total Trade Length 698 Out of Timing Average 10 Longest 31 Total 32 Optimization Variables OPT1 7.00 OPT2 OPT3 OPT4 2
Average Short Entry 49.98 % Average Short Exit 29.39 % Average Short Total -20.63 % OPT5 OPT6 OPT7 OPT8 OPT9 OPT10 Tabela 2. Zakładka System dla systemu opartego na wskaźniku MACD. System Details Copy of Equis - MACD w/optimization Optimized Order Bias Long Portfolio Bias Single Position Limit 1 Notes Buys/sells when the MACD goes above/below its trigger. Select "Optimize" to specify the periods in the trigger. Buy Order Sell Short Order MACD() > Mov( MACD(), opt1, EXPONENTIAL) MACD() < Mov( MACD(), opt1, EXPONENTIAL) Sell Order Buy to Cover Order MACD() < Mov( MACD(), opt1, EXPONENTIAL) MACD() > Mov( MACD(), opt1, EXPONENTIAL) Stops BreakEven Stop Floor Level Stop Loss Stop Value Trailing Stop Profit Risk Value Trailing Periods 0.0 Inactivity Stop Minimum Value Periods 0.0 Profit Target Target Value Simulation Options General Options Points Only Test Initial Equity 10000. Broker Options Interest Rates Margin 5.00 % 3
Default Size 100 Units Trade Long Trade Short Optimization Results 10 Trade Execution Options Realistic Prices No Buy Price Sell Price Sell Short Price Buy To Cover Price Delay To Open 0 Slippage Buy Sell Sell Short Buy to Cover Money 3.00 % Margin Requirement Long Initial 100.00 % Long Maintenance 0.00 % Short Initial 150.00 % Short Maintenance 150.00 % Entry Exit Linia equity nie ma zbyt dobrego kształtu, co prawda widad pewną tendencję wzrostową, ale jest ona poszarpana i istnieją długie okresy spadków. Ponadto widad w niektórych miejscach silne wzrosty, które poprawiają zysk, ale nie wynikają raczej ze skuteczności systemu, a specyfiki danych. Zysk jest w miarę dobry, przekracza o 700 punktów strategię typu Buy&Hold. System generuje prawie dwukrotnie więcej transakcji stratnych, w dodatku niektóre z nich generują dośd duże straty (nawet 195 punktów). Wynika z tego, że warto spróbowad ulepszyd reguły transakcyjne tak by system generował zyski w bardziej stabilny sposób. Poprawę systemu rozpocząłem od poprawy wskaźnika MACD. Uznałem, że nie ma konieczności by ilośd okresów wziętych do wyliczenia średnich kroczących była równa 12 i 26. Dopuściłem by ilośd okresów dla średniej krótkookresowej mogła zmieniad się w granicach zbioru <8,16> z krokiem równym 1, a dla średniej długookresowej w zbiorze <20,40> również z krokiem równym 1. Ponownie poddałem optymalizacji liczbę okresów wziętych do wyliczenia linii sygnalnej. Ze względu na dużą liczbę kombinacji zbiór dla dopuszczalnych wartości parametru dla linii sygnalnej tym razem ograniczyłem do zbioru <6,16>. Okazało się, że optymalne wartości wynoszą: 16 (średnia krótkookresowa), 29 (średnia długookresowa) i 13 (ilośd okresów wziętych do wyliczenia linii sygnalnej). Uzyskane wyniki przedstawiają tabele 3 i 4, a linię equity wykres 2. Wykres 2. Linia equity dla systemu opartego na wskaźniku MACD z optymalizacją parametrów. Tabela 3. Zakładka Summary dla systemu opartego na wskaźniku MACD z optymalizacją parametrów. 4
Summary aa_macd_opt Simulation Date 2009-06-03 09:32:22 Optimized System Points Only Test FW20 (FW20) 1869 Daily Bars 1999-12-20 Through 2007-06-01 (2720 Days) Profit 2963.0000 Pts Annualized Buy & Hold Profit 1821.0000 Pts Buy & Hold Buy & Hold Annualized Trade Summary Total Trades 127 Trade Efficiency -10.74 % Average Profit/Average Loss Profitable Trades Total 54 Long 28 Short 26 Average Profit 130.6481 Pts Highest Profit 68 Lowest Profit 2.0000 Pts Most Consecutive 4 Unprofitable Trades Total 73 Long 36 Short 37 Average Loss -56.0548 Pts Highest Loss -235.0000 Pts Lowest Loss -2.0000 Pts Most Consecutive 8 Maximum Position Excursions Long Favorable 681.0000 Pts Short Favorable 841.0000 Pts Long Adverse -19 Short Adverse -236.0000 Pts Trade Efficiency Average Entry 54.19 % Average Exit 35.07 % Average Total -10.74 % Average Long Entry 54.86 % Average Long Exit 38.00 % Average Long Total -7.14 % Average Short Entry 53.52 % Average Short Exit 32.09 % Average Short Total -14.39 % Indices Buy & Hold Index 62.71 % Profit/Loss Index 42.00 % Reward/Risk Index 84.68 % Accounting Initial Equity Trade Profit Trade Loss Interest Credited Interest Charged Final Equity Open Account Variation Highest Account Balance Lowest Account Balance Highest Portfolio Value Highest Open Drawdown Highest d Drawdown Account Events 7055.0000 Pts -4092.0000 Pts 254.0000 Pts 2963.0000 Pts 3103.0000 Pts -536.0000 Pts 717.0000 Pts -536.0000 Pts -441.0000 Pts Margin Calls 0 Overdrafts 0 Profitable Timing Average Trade Length 21 Longest Trade Length 50 Shortest Trade Length 2 Total Trade Length 1179 Unprofitable Timing Average Trade Length 8 Longest Trade Length 27 Shortest Trade Length 1 Total Trade Length 652 Out of Timing Average 12 Longest 37 Total 38 Optimization Variables OPT1 13.00 OPT2 16.00 OPT3 29.00 OPT4 OPT5 OPT6 OPT7 OPT8 OPT9 OPT10 Tabela 4. Zakładka System dla systemu opartego na wskaźniku MACD z optymalizacją parametrów. System Details aa_macd_opt Optimized Order Bias Long Portfolio Bias Single Position Limit 1 Notes Buys/sells when the MACD goes above/below its trigger. Select "Optimize" to specify the periods in the trigger. Buy Order Sell Short Order 5
mov( close, OPT2, E) - mov( close, OPT3, E)> mov( macd(), OPT1, E) mov( close, OPT2, E) - mov( close, OPT3, E)< mov( macd(), OPT1, E) Sell Order Buy to Cover Order mov( close, OPT2, E) - mov( close, OPT3, E)< mov( macd(), OPT1, E) mov( close, OPT2, E) - mov( close, OPT3, E)> mov( macd(), OPT1, E) Stops BreakEven Stop Floor Level Stop Loss Stop Value Trailing Stop Profit Risk Value Trailing Periods 0.0 Inactivity Stop Minimum Value Periods 0.0 Profit Target Target Value Simulation Options General Options Points Only Test Initial Equity 10000. Default Size 100 Units Trade Long Trade Short Optimization Results 10 Trade Execution Options Realistic Prices No Buy Price Sell Price Sell Short Price Buy To Cover Price Delay To Open 0 Slippage Buy Sell Sell Short Buy to Cover Broker Options Interest Rates Margin 5.00 % Money 3.00 % Margin Requirement Long Initial 100.00 % Long Maintenance 0.00 % Short Initial 150.00 % Short Maintenance 150.00 % Entry Exit 6
Dopuszczenie innych wartości dla optymalizowanych parametrów sprawiło, że linia equity nieco się poprawiła, stała się mniej poszarpana. Oznacza to, że system ten lepiej generuje sygnały kupna i sprzedaży, jednak jakośd tych sygnałów jest jeszcze daleka od pożądanej. Problem w tym, że linia equity w większości okresów jest w zasadzie płaska. Oznacza to, że system nie przynosi przez długi czas zysków. Mimo to udało się osiągnąd zysk na poziomie 2963 punktów. Zmniejszyła się liczba transakcji stratnych, ale zwiększyła się wielkośd maksymalnej straty do 295 punktów. Dlatego następnym krokiem w poprawie systemu jest włączenie do systemu stop lossa. Zdecydowałem się wybrad dopuszczalną maksymalną stratę z transakcji równą 70 punktów. Uzyskane wyniki przedstawiają tabele 5 i 6, a linię equity wykres 3. Wykres 3. Linia equity dla systemu opartego na wskaźniku MACD z optymalizacją parametrów oraz z uwzględnieniem stop loss na poziomie 70 punktów. Tabela 5. Zakładka Summary dla systemu opartego na wskaźniku MACD z optymalizacją parametrów oraz z uwzględnieniem stop loss na poziomie 70 punktów. Summary aa_macd_opt_stopy Simulation Date 2009-06-03 03:42:01 Optimized System Points Only Test FW20 (FW20) 1869 Daily Bars 1999-12-20 Through 2007-06-01 (2720 Days) Profit 2092.0000 Pts Annualized Buy & Hold Profit 1821.0000 Pts Buy & Hold Buy & Hold Annualized Trade Summary Total Trades 169 Trade Efficiency -17.97 % Average Profit/Average Loss Profitable Trades Total 59 Long 30 Short 29 Average Profit 130.9322 Pts Highest Profit 68 Lowest Profit 2.0000 Pts Most Consecutive 3 Unprofitable Trades Total 110 Long 50 Short 60 Indices Buy & Hold Index 14.88 % Profit/Loss Index 27.08 % Reward/Risk Index 79.36 % Accounting Initial Equity Trade Profit Trade Loss Interest Credited Interest Charged Final Equity Open Account Variation Highest Account Balance Lowest Account Balance Highest Portfolio Value Highest Open Drawdown Highest d Drawdown Account Events 7725.0000 Pts -5633.0000 Pts 338.0000 Pts 2092.0000 Pts 2399.0000 Pts -544.0000 Pts 717.0000 Pts -544.0000 Pts -503.0000 Pts Margin Calls 0 Overdrafts 0 Profitable Timing Average Trade Length 19 Longest Trade Length 49 7
Average Loss -51.2091 Pts Highest Loss -112.0000 Pts Lowest Loss -2.0000 Pts Most Consecutive 8 Maximum Position Excursions Long Favorable 681.0000 Pts Short Favorable 841.0000 Pts Long Adverse -19 Short Adverse -156.0000 Pts Trade Efficiency Average Entry 51.25 % Average Exit 30.78 % Average Total -17.97 % Average Long Entry 52.60 % Average Long Exit 33.51 % Average Long Total -13.89 % Average Short Entry 50.03 % Average Short Exit 28.33 % Average Short Total -21.63 % Shortest Trade Length 1 Total Trade Length 1161 Unprofitable Timing Average Trade Length 5 Longest Trade Length 23 Shortest Trade Length 0 Total Trade Length 659 Out of Timing Average 3 Longest 37 Total 49 Optimization Variables OPT1 13.00 OPT2 16.00 OPT3 29.00 OPT4 OPT5 OPT6 OPT7 OPT8 OPT9 OPT10 Tabela 6. Zakładka System dla systemu opartego na wskaźniku MACD z optymalizacją parametrów oraz z uwzględnieniem stop loss na poziomie 70 punktów. System Details aa_macd_opt_stopy Optimized Order Bias Long Portfolio Bias Single Position Limit 1 Notes Buys/sells when the MACD goes above/below its trigger. Select "Optimize" to specify the periods in the trigger. Buy Order Sell Short Order mov( close, OPT2, E) - mov( close, OPT3, E)> mov( macd(), OPT1, E) mov( close, OPT2, E) - mov( close, OPT3, E)< mov( macd(), OPT1, E) Sell Order Buy to Cover Order mov( close, OPT2, E) - mov( close, OPT3, E)< mov( macd(), OPT1, E) mov( close, OPT2, E) - mov( close, OPT3, E)> mov( macd(), OPT1, E) 8
Stops BreakEven Stop Floor Level Stop Loss Stop Value Long & Short 7 Trailing Stop Profit Risk Value Trailing Periods 0.0 Inactivity Stop Minimum Value Periods 0.0 Profit Target Target Value Simulation Options General Options Points Only Test Initial Equity 10000. Default Size 100 Units Trade Long Trade Short Optimization Results 10 Trade Execution Options Realistic Prices No Buy Price Sell Price Sell Short Price Buy To Cover Price Delay To Open 0 Slippage Buy Sell Sell Short Buy to Cover Broker Options Interest Rates Margin 5.00 % Money 3.00 % Margin Requirement Long Initial 100.00 % Long Maintenance 0.00 % Short Initial 150.00 % Short Maintenance 150.00 % Entry Exit Wprowadzenie maksymalnej straty na poziomie 70 punktów, w oczywisty sposób zmniejszyło maksymalną stratę. Natomiast pogorszyło wygląd linii equity, stała się bardziej poszarpana, zwiększyło także liczbę stratnych transakcji. Mimo to zastosowanie takiego wyjścia ewakuacyjnego dla systemu wydaje się byd niezbędne, dlatego zamiast zrezygnowad ze stop lossa zdecydowałem się próbowad poprawid system w inny sposób. Ilośd stratnych transakcji sugeruje, że system zbyt często generuje błędne sygnały. Żeby to poprawid zdecydowałem się zastosowad dodatkowy wskaźnik generujący sygnały kupna i sprzedaży. Wybrałem wskaźnik RSI (Relative Strenght Index). Jest to jeden z najpopularniejszych i najczęściej używanych oscylatorów. Nie jest to jednak, jak wskazuje nazwa, typowy miernik siły względnej. Jak klasyczny oscylator zyskuje wartości w przedziale 0-100. Podstawowa analiza zakłada poszukiwanie dywergencji względem wykresu cenowego. RSI jest również miernikiem stanów wykupienia / wyprzedania rynku. Zazwyczaj wartości powyżej 70 pkt., są odbierane jako wykupienie rynku, poniżej 30 pkt. jako wyprzedanie rynku 3. W moim badaniu zdecydowałem się zoptymalizowad te wartości i dopuścid by się zmieniały w zbiorze wartości <20,40> (dla strefy wyprzedania) oraz <60,80> dla strefy wykupienia. W ramach tego wskaźnika sygnał kupna generowany jest gdy wartośd 3 Bossa.pl 9
RSI spadnie poniżej granicy strefy wyprzedania, a sygnał sprzedaży gdy wartośd RSI przekroczy granicę strefy wykupienia. Dodatkowo zdecydowałem się zoptymalizowad parametr wzięty do wyliczenia wskaźnika RSI przyjmuje on wartości ze zbioru <6,16>. Tym razem parametry dla wskaźnika MACD nie były już optymalizowane 4. Uznałem, że oszacowania z poprzednich modeli są właściwe i je postanowiłem przyjąd. Wartości, które optymalizowałem przyjęły wartośd: 30 (granica strefy wyprzedaży), 73 (granica strefy wykupienia) oraz 19 (dla parametru potrzebnego do wyliczenia RSI). Uzyskane rezultaty przedstawiają tabele 7 i 8, a linię equity przedstawia wykres 4. Wykres 4. Linia equity dla systemu opartego na wskaźniku MACD i RSI z optymalizacją parametrów(dla RSI) oraz z uwzględnieniem stop loss na poziomie 70 punktów. Tabela 7. Zakładka System dla systemu opartego na wskaźniku MACD i RSI z optymalizacją parametrów(dla RSI) oraz z uwzględnieniem stop loss na poziomie 70 punktów. System Details aa_macd_rsi Optimized Order Bias Long Portfolio Bias Single Position Limit 1 Notes Buys/sells when the MACD goes above/below its trigger. Select "Optimize" to specify the periods in the trigger. Buy Order Sell Short Order mov( close, 16, E) - mov( close, 29, E)> mov( macd(), 13, E) AND cross(rsi(opt4),opt5) mov( close, 16, E) - mov( close, 29, E)< mov( macd(), 13, E) and Cross(OPT6, RSI(opt4)) Sell Order Buy to Cover Order mov( close, 16, E) - mov( close, 29, E)< mov( macd(), 13, E) mov( close, 16, E) - mov( close, 29, E)> mov( macd(), 13, E) 4 Oszacowałem, że aby móc zoptymalizowad ten system łącznie potrzebne byłoby ok. 100 godzin. 10
and Cross(OPT6, RSI(opt4)) AND cross(rsi(opt4),opt5) Stops BreakEven Stop Floor Level Stop Loss Stop Value Long & Short 7 Trailing Stop Profit Risk Value Trailing Periods 0.0 Inactivity Stop Minimum Value Periods 0.0 Profit Target Target Value Simulation Options General Options Points Only Test Initial Equity 10000. Default Size 100 Units Trade Long Trade Short Optimization Results 10 Trade Execution Options Realistic Prices No Buy Price Sell Price Sell Short Price Buy To Cover Price Delay To Open 0 Slippage Buy Sell Sell Short Buy to Cover Broker Options Interest Rates Margin 5.00 % Money 3.00 % Margin Requirement Long Initial 100.00 % Long Maintenance 0.00 % Short Initial 150.00 % Short Maintenance 150.00 % Entry Exit Tabela 8. Zakładka Summary dla systemu opartego na wskaźniku MACD i RSI z optymalizacją parametrów(dla RSI) oraz z uwzględnieniem stop loss na poziomie 70 punktów. Summary aa_macd_rsi Simulation Date 2009-06-03 14:14:45 Optimized System Points Only Test FW20 (FW20) 1869 Daily Bars 1999-12-20 Through 2007-06-01 (2720 Days) Profit 2355.0000 Pts Annualized Buy & Hold Profit 1821.0000 Pts Buy & Hold Buy & Hold Annualized Trade Summary Total Trades 4 Trade Efficiency -26.29 % Average Profit/Average Loss Indices Buy & Hold Index 29.32 % Profit/Loss Index 91.81 % Reward/Risk Index 90.30 % Accounting Initial Equity Trade Profit 2565.0000 Pts Trade Loss -21 8.0000 Pts Interest Credited Interest Charged 11
Profitable Trades Total 1 Long 1 Short 0 Average Profit 2565.0000 Pts Highest Profit 2565.0000 Pts Lowest Profit 2565.0000 Pts Most Consecutive 1 Unprofitable Trades Total 3 Long 3 Short 0 Average Loss -7 Highest Loss -7 Lowest Loss -7 Most Consecutive 3 Maximum Position Excursions Long Favorable 2573.0000 Pts Short Favorable Long Adverse -88.0000 Pts Short Adverse Trade Efficiency Average Entry 43.00 % Average Exit 30.71 % Average Total -26.29 % Average Long Entry 43.00 % Average Long Exit 30.71 % Average Long Total -26.29 % Average Short Entry 0.00 % Average Short Exit 0.00 % Average Short Total 0.00 % Final Equity 2355.0000 Pts Open Account Variation Highest Account Balance 2356.0000 Pts Lowest Account Balance -253.0000 Pts Highest Portfolio Value 2573.0000 Pts Highest Open Drawdown -253.0000 Pts Highest d Drawdown -21 Account Events Margin Calls 0 Overdrafts 0 Profitable Timing Average Trade Length 1215 Longest Trade Length 1215 Shortest Trade Length 1215 Total Trade Length 1215 Unprofitable Timing Average Trade Length 6 Longest Trade Length 11 Shortest Trade Length 2 Total Trade Length 20 Out of Timing Average 105 Longest 312 Total 634 Optimization Variables OPT1 OPT2 OPT3 OPT4 19.00 OPT5 30.00 OPT6 73.00 OPT7 OPT8 OPT9 OPT10 Połączenie tych dwóch wskaźników okazało się złym pomysłem. Cały system generuje tylko 4 transakcje w ciągu 8 lat, z czego 3 są transakcjami stratnymi. Linia equity wygląda bardzo źle. Na początku jest płaska z trzema stąpnięciami na nieopłacalne transakcje, a na koocu system zawiera tylko jedną zyskowna transakcje. Połączenie tych dwóch wskaźników jednocześnie jest zbyt wymagający warunkiem do zawarcia transakcji. Byd może warto było by sprawdzid jak sygnały kupna i sprzedaży generuje sam wskaźnik RSI(optymalizacja jak poprzednio). Uzyskane rezultaty przedstawiają tabele 9 i 10, a linię equity wykres 5. Wykres 5. Linia equity dla systemu opartego na wskaźniku RSI z optymalizacją parametrów oraz z uwzględnieniem stop loss na poziomie 70 punktów. 12
Tabela 9. Zakładka Summary dla systemu opartego na wskaźniku RSI z optymalizacją parametrów oraz z uwzględnieniem stop loss na poziomie 70 punktów. Summary aa_rsi Simulation Date 2009-06-04 04:53:16 Optimized System Points Only Test FW20 (FW20) 1869 Daily Bars 1999-12-20 Through 2007-06-01 (2720 Days) Profit 2266.0000 Pts Annualized Buy & Hold Profit 1821.0000 Pts Buy & Hold Buy & Hold Annualized Trade Summary Total Trades 14 Trade Efficiency -23.40 % Average Profit/Average Loss Profitable Trades Total 3 Long 2 Short 1 Average Profit 1017.6667 Pts Highest Profit 2202.0000 Pts Lowest Profit 283.0000 Pts Most Consecutive 2 Unprofitable Trades Total 11 Long 10 Short 1 Average Loss -71.5455 Pts Highest Loss -87.0000 Pts Lowest Loss -7 Most Consecutive 10 Maximum Position Excursions Long Favorable 221 Short Favorable 312.0000 Pts Long Adverse -106.0000 Pts Short Adverse -144.0000 Pts Trade Efficiency Average Entry 44.65 % Average Exit 31.95 % Average Total -23.40 % Average Long Entry 44.56 % Average Long Exit 25.49 % Average Long Total -29.96 % Average Short Entry 45.21 % Average Short Exit 70.74 % Average Short Total 15.95 % Indices Buy & Hold Index 24.44 % Profit/Loss Index 74.22 % Reward/Risk Index 75.63 % Accounting Initial Equity Trade Profit Trade Loss Interest Credited Interest Charged Final Equity Open Account Variation Highest Account Balance Lowest Account Balance Highest Portfolio Value Highest Open Drawdown Highest d Drawdown Account Events 3053.0000 Pts -787.0000 Pts 28.0000 Pts 2266.0000 Pts 2267.0000 Pts -73 221-73 -717.0000 Pts Margin Calls 0 Overdrafts 0 Profitable Timing Average Trade Length 471 Longest Trade Length 887 Shortest Trade Length 56 Total Trade Length 1413 Unprofitable Timing Average Trade Length 12 Longest Trade Length 45 Shortest Trade Length 1 Total Trade Length 137 Out of Timing Average 22 Longest 85 Total 319 Optimization Variables OPT1 OPT2 OPT3 OPT4 22.00 OPT5 38.00 OPT6 80.00 OPT7 OPT8 OPT9 OPT10 Tabela 10. Zakładka System dla systemu opartego na wskaźniku RSI z optymalizacją parametrów oraz z uwzględnieniem stop loss na poziomie 70 punktów. System Details aa_rsi Optimized Order Bias Long Notes Buys/sells when the MACD goes above/below its trigger. Select "Optimize" to specify the periods in the trigger. 13
Portfolio Bias Position Limit 1 Single Buy Order Sell Short Order cross(rsi(opt4),opt5) Cross(OPT6, RSI(opt4)) Sell Order Buy to Cover Order Cross(OPT6, RSI(opt4)) cross(rsi(opt4),opt5) Stops BreakEven Stop Floor Level Stop Loss Stop Value Long & Short 7 Trailing Stop Profit Risk Value Trailing Periods 0.0 Inactivity Stop Minimum Value Periods 0.0 Profit Target Target Value Simulation Options General Options Points Only Test Initial Equity 10000. Default Size 100 Units Trade Long Trade Short Optimization Results 10 Trade Execution Options Realistic Prices No Buy Price Sell Price Sell Short Price Buy To Cover Price Delay To Open 0 Slippage Buy Sell Broker Options Interest Rates Margin 5.00 % Money 3.00 % Margin Requirement Long Initial 100.00 % Long Maintenance 0.00 % Short Initial 150.00 % Short Maintenance 150.00 % Entry Exit 14
Sell Short Buy to Cover Wykorzystanie samego wskaźnika RSI też nie jest zbyt dobre, przez ten cały okres zawartych jest 14 transakcji w tym 11 stratnych. Linia equity jest w połowie płaska, czyli w najlepszym przypadku system nie przynosi strat. Po tej analizie zdecydowałem się powrócid do koncepcji wykorzystania wskaźnika MACD. Ponadto zdecydowałem się, że do generowania sygnałów kupna i sprzedaży wykorzystam również dwie średnie kroczące. Sygnał kupna generowany jest gdy krótkookresowa średnia przebije od dołu wartośd średniej długookresowej, sygnał sprzedaży zaś gdy krótkookresowa średnia krocząca przebije długookresową średnią od góry. Uznałem, że krótkookresowa średnia krocząca może byd wyliczana ze zbioru <3,18> okresów, natomiast długookresowa ze zbioru <20,100> okresów. Optymalne wartości wyniosły 4 i 75. Dla tak stworzonego systemu wyniki przedstawiają tabele 11 i 12, a linie equity przedstawia wykres 6. Wykres 6. Linia equity dla systemu opartego na wskaźniku MACD i przecięciu średnich kroczących z optymalizacją parametrów(dla średnich) z uwzględnieniem stop loss na poziomie 70 punktów. Tabela 11. Zakładka Summary dla systemu opartego na wskaźniku MACD i przecięciu średnich kroczących z optymalizacją parametrów(dla średnich) z uwzględnieniem stop loss na poziomie 70 punktów. Summary aa_macd_mov Simulation Date 2009-06-04 13:55:50 Optimized System Points Only Test FW20 (FW20) 1869 Daily Bars 1999-12-20 Through 2007-06-01 (2720 Days) Profit 1884.0000 Pts Annualized Buy & Hold Profit 1821.0000 Pts Buy & Hold Buy & Hold Annualized Trade Summary Total Trades 45 Trade Efficiency -18.69 % Average Profit/Average Loss Profitable Trades Total 17 Long 10 Short 7 Average Profit 202.1176 Pts Highest Profit 1029.0000 Pts Indices Buy & Hold Index 3.46 % Profit/Loss Index 54.83 % Reward/Risk Index 95.49 % Accounting Initial Equity Trade Profit Trade Loss Interest Credited Interest Charged Final Equity Open Account Variation Highest Account Balance Lowest Account Balance Highest Portfolio Value Highest Open Drawdown 3436.0000 Pts -1552.0000 Pts 9 1884.0000 Pts 239-89.0000 Pts 1448.0000 Pts -89.0000 Pts 15
Lowest Profit 5.0000 Pts Most Consecutive 4 Unprofitable Trades Total 28 Long 15 Short 13 Average Loss -55.4286 Pts Highest Loss -7 Lowest Loss -6.0000 Pts Most Consecutive 6 Maximum Position Excursions Long Favorable 1448.0000 Pts Short Favorable 877.0000 Pts Long Adverse -113.0000 Pts Short Adverse -12 Trade Efficiency Average Entry 57.47 % Average Exit 23.84 % Average Total -18.69 % Average Long Entry 58.25 % Average Long Exit 26.26 % Average Long Total -15.49 % Average Short Entry 56.49 % Average Short Exit 20.82 % Average Short Total -22.69 % Highest d Drawdown -88.0000 Pts Account Events Margin Calls 0 Overdrafts 0 Profitable Timing Average Trade Length 83 Longest Trade Length 244 Shortest Trade Length 29 Total Trade Length 1416 Unprofitable Timing Average Trade Length 11 Longest Trade Length 40 Shortest Trade Length 0 Total Trade Length 324 Out of Timing Average 11 Longest 82 Total 129 Optimization Variables OPT1 4.00 OPT2 75.00 OPT3 OPT4 OPT5 OPT6 OPT7 OPT8 OPT9 OPT10 Tabela 12. Zakładka System dla systemu opartego na wskaźniku MACD i przecięciu średnich kroczących z optymalizacją parametrów(dla średnich) z uwzględnieniem stop loss na poziomie 70 punktów. System Details aa_macd_mov Optimized Order Bias Long Portfolio Bias Single Position Limit 1 Notes Buys/sells when the MACD goes above/below its trigger. Select "Optimize" to specify the periods in the trigger. Buy Order Sell Short Order mov( close, 16, E) - mov( close, 29, E)> mov( macd(), 13, E) AND Mov(C,opt1,E) > Mov(C,opt2,E) mov( close, 16, E) - mov( close, 29, E)< mov( macd(), 13, E) and Mov(C,opt1,E) < Mov(C,opt2,E) Sell Order Buy to Cover Order 16
mov( close, 16, E) - mov( close, 29, E)< mov( macd(), 13, E) and Mov(C,opt1,E) < Mov(C,opt2,E) mov( close, 16, E) - mov( close, 29, E)> mov( macd(), 13, E) AND Mov(C,opt1,E) > Mov(C,opt2,E) Stops BreakEven Stop Floor Level Trailing Stop Profit Risk Value Trailing Periods 0.0 Profit Target Target Value Stop Loss Long & Short Stop Value 7 Inactivity Stop Minimum Value Periods 0.0 Simulation Options General Options Points Only Test Initial Equity 10000. Default Size 100 Units Trade Long Trade Short Optimization Results 10 Trade Execution Options Realistic Prices No Buy Price Sell Price Sell Short Price Buy To Cover Price Delay To Open 0 Slippage Buy Sell Sell Short Buy to Cover Broker Options Interest Rates Margin 5.00 % Money 3.00 % Margin Requirement Long Initial 100.00 % Long Maintenance 0.00 % Short Initial 150.00 % Short Maintenance 150.00 % Entry Exit Linia equity uległa wyraźnej poprawie, rośnie w miarę jednostajnie. Oczywiście nie udało się uniknąd płaskich okresów, nawet dośd długich, ale wygląd tej linii jest bliżej oczekiwanego, co oznacza, że poprawy systemu idą w dobrą stronę. Potwierdzenie sygnałów kupna i sprzedaży przez dwa składniki ogranicza liczbę transakcji stratnych, ale także zmniejsza liczbę transakcji zyskownych. Jednakże obniża liczbę transakcji stratnych przypadających na jedną transakcję zyskowną, co można uznad za dobry rezultat. Liczba transakcji jest mniejsza (45), niż dla wskaźnika MACD (169), ale dużo większa niż dla wskaźników MACD i RSI (4). Z analizy linii equity widad, że system w niektórych okresach lepiej radzi sobie niż w innych. Z mojej analizy wynika, że system lepiej radzi sobie w sytuacji silnych trendów, gorzej natomiast dla trendu horyzontalnego. Aby uwzględnid tę sytuację zdecydowałem się uwzględnid wskaźnik ADX, jego zadaniem jest pomiar wielkości i siły trendu, 17
jednak bez wskazania jego kierunku. Rosnące wartości wskaźnika informują o wzroście siły dominującego trendu. Spadek wskaźnika mówi o słabnięciu trendu sugerując jego bliskie przełamanie 5. Dołączyłem zatem wskaźnik ADX, w taki sposób by system w przypadku dużych jego wartości generował sygnały kupna i sprzedaży na podstawie poprzedniego modelu, natomiast przy niskiej wartości ADX nie robił nic. Chciałem ustalid od jakiej wartości ADX możemy uznad, że siła trendu jest na tyle duża by mój system dobrze działał. Optymalizowałem dwie wartości: granicę dużej/małej siły trendu ze zbioru wartości <10,100> (krok równy 5) oraz parametr do wyliczenia wskaźnika ADX, który przybiera wartości z przedziału <10,20>. Wartością optymalną dla granicy siły trendu okazała się wartośd 25, natomiast parametr do stworzenia wskaźnika ADX wyniósł 13. Uzyskane rezultaty przedstawiają tabele 13 i 14, a linię equity przedstawia wykres 7. Wykres 7. Linia equity dla systemu opartego na wskaźniku MACD i przecięciu średnich kroczących oraz wskaźnika ADX z optymalizacją parametrów(dla ADX) z uwzględnieniem stop loss na poziomie 70 punktów. Tabela 13. Zakładka Summary dla systemu opartego na wskaźniku MACD i przecięciu średnich kroczących oraz wskaźnika ADX z optymalizacją parametrów(dla ADX) z uwzględnieniem stop loss na poziomie 70 punktów. Summary aa_macd_mov_adx Simulation Date 2009-06-04 15:19:16 Optimized System Points Only Test FW20 (FW20) 1869 Daily Bars 1999-12-20 Through 2007-06-01 (2720 Days) Profit 2544.0000 Pts Annualized Buy & Hold Profit 1821.0000 Pts Buy & Hold Buy & Hold Annualized Trade Summary Total Trades 19 Trade Efficiency -4.82 % Average Profit/Average Loss Profitable Trades Total 8 Long 5 Short 3 Average Profit 406.8750 Pts Highest Profit 921.0000 Pts Lowest Profit 19.0000 Pts Most Consecutive 2 Unprofitable Trades Indices Buy & Hold Index 39.70 % Profit/Loss Index 78.16 % Reward/Risk Index 96.04 % Accounting Initial Equity Trade Profit Trade Loss Interest Credited Interest Charged Final Equity Open Account Variation Highest Account Balance Lowest Account Balance Highest Portfolio Value Highest Open Drawdown Highest d Drawdown Account Events 3255.0000 Pts -711.0000 Pts 38.0000 Pts 2544.0000 Pts 2545.0000 Pts -105.0000 Pts 1372.0000 Pts -105.0000 Pts -7 Margin Calls 0 5 Bossa.pl 18
Total 11 Long 3 Short 8 Average Loss -64.6364 Pts Highest Loss -7 Lowest Loss -37.0000 Pts Most Consecutive 3 Maximum Position Excursions Long Favorable 1372.0000 Pts Short Favorable 1158.0000 Pts Long Adverse -106.0000 Pts Short Adverse -133.0000 Pts Trade Efficiency Average Entry 64.68 % Average Exit 30.51 % Average Total -4.82 % Average Long Entry 72.95 % Average Long Exit 42.76 % Average Long Total 15.71 % Average Short Entry 58.66 % Average Short Exit 21.59 % Average Short Total -19.75 % Overdrafts 0 Profitable Timing Average Trade Length 170 Longest Trade Length 295 Shortest Trade Length 20 Total Trade Length 1367 Unprofitable Timing Average Trade Length 24 Longest Trade Length 81 Shortest Trade Length 0 Total Trade Length 271 Out of Timing Average 23 Longest 84 Total 231 Optimization Variables OPT1 13.00 OPT2 25.00 OPT3 OPT4 OPT5 OPT6 OPT7 OPT8 OPT9 OPT10 Tabela 14. Zakładka System dla systemu opartego na wskaźniku MACD i przecięciu średnich kroczących oraz wskaźnika ADX z optymalizacją parametrów(dla ADX) z uwzględnieniem stop loss na poziomie 70 punktów. System Details aa_macd_mov_adx Optimized Order Bias Long Portfolio Bias Single Position Limit 1 Notes Buys/sells when the MACD goes above/below its trigger. Select "Optimize" to specify the periods in the trigger. Buy Order Sell Short Order (mov( close, 16, E) - mov( close, 29, E)> mov( macd(), 13, E) AND Mov(C,4,E) > Mov(C,85,E) and adx(opt1)>opt2) (mov( close, 16, E) - mov( close, 29, E)< mov( macd(), 13, E) and Mov(C,4,E) < Mov(C,85,E) and adx(opt1)>opt2) Sell Order Buy to Cover Order (mov( close, 16, E) - mov( close, 29, E)< mov( macd(), 13, E) and Mov(C,4,E) < Mov(C,85,E) and adx(opt1)>opt2) (mov( close, 16, E) - mov( close, 29, E)> mov( macd(), 13, E) AND Mov(C,4,E) > Mov(C,85,E) and adx(opt1)>opt2) 19
Stops BreakEven Stop Floor Level Stop Loss Stop Value Long & Short 7 Trailing Stop Profit Risk Value Trailing Periods 0.0 Inactivity Stop Minimum Value Periods 0.0 Profit Target Target Value Simulation Options General Options Points Only Test Initial Equity 10000. Default Size 100 Units Trade Long Trade Short Optimization Results 209 Trade Execution Options Realistic Prices No Buy Price Sell Price Sell Short Price Buy To Cover Price Delay To Open 0 Slippage Buy Sell Sell Short Buy to Cover Broker Options Interest Rates Margin 5.00 % Money 3.00 % Margin Requirement Long Initial 100.00 % Long Maintenance 0.00 % Short Initial 150.00 % Short Maintenance 150.00 % Entry Exit Znów kształt linii equity poprawił się, co prawda linia nadal jest trochę poszarpana, ale rośnie w miarę jednostajnie, co jest pożądane. Dodatkowo wzrósł zysk do poziomu 2544 punktów, który w połączeniu z kształtem linii equity jest zadawalający. W naturalny sposób dodanie dodatkowego założenia dla sygnałów kupna i sprzedaży ogranicza liczbę transakcji, ale co ważne system znów poprawił liczbę transakcji stratnych na jedną zyskowną. System wykorzystujący dodatkowo wskaźnik ADX uzyskuje lepsze parametry oceniające jakośd systemu, w tym Average long entry, Average long exit, Average short entry i Average short exit. Wyniki dla tak stworzonego systemu prezentują się zupełnie dobrze i mógłby zostad uznany za wystarczająco dobry, można jednak próbowad poprawid go jeszcze bardziej. Kolejnym pomysłem na poprawę systemu było uwzględnienie kryterium generującego sygnały kupna i sprzedaży przy małej wartości ADX. W związku z tym, że małe wartości ADX sugerują słabnącą siłę trendu i dużo prawdopodobieostwo zmiany trendu, można przypuszczad, że przy małej wartości tego wskaźnika często mamy do czynienia z trendem horyzontalnym. Stosowanym do takiej sytuacji jest Oscylator Bollingera. Jest on wskaźnikiem przedstawiającym zależnośd pomiędzy kursem a wstęgą Bollingera. Sygnał 20
kupna zostaje wygenerowany, gdy linia wskaźnika spada poniżej dolnej wstęgi ( w oscylatorze jest to prosta, zazwyczaj na poziomie 0), zaś sygnał sprzedaży zostaje wygenerowany, gdy linia wskaźnika wychodzi ponad górną wstęgę (tutaj też prosta, zazwyczaj na poziomie 100). Zalecany jest do stosowania właśnie w przypadku braku silnego trendu, czyli w przypadku trendu horyzontalnego 6. Uznałem, że poziom na którym zostaną zawieszone wstęgi nie musi byd koniecznie równy 0 i 100, dlatego dopuściłem, że dolna wstęga może przyjmowad wartośd ze zbioru <-5,20>, a górna ze zbioru <80, 110>. Okazało się, że optymalne wartości to 6 i 107. Uzyskane rezultaty z takiego systemu przedstawiają tabele 15 i 16, a linie equity przedstawia wykres 8. Wykres 8. Linia Equity dla systemu opartego na wskaźniku MACD i przecięciu średnich kroczących dla wysokiej wartości ADX oraz oscylatora Bollingera dla małych wartości ADX z optymalizacją parametrów(dla oscylatora Bollingera) z uwzględnieniem stop loss na poziomie 70 punktów. Tabela 15. Zakładka Summary dla systemu opartego na wskaźniku MACD i przecięciu średnich kroczących dla wysokiej wartości ADX oraz oscylatora Bollingera dla małych wartości ADX z optymalizacją parametrów(dla oscylatora Bollingera) z uwzględnieniem stop loss na poziomie 70 punktów. Summary aa_macd_mov_adx_bollinger_opt Simulation Date 2009-06-04 17:48:01 Optimized System Points Only Test FW20 (FW20) 1869 Daily Bars 1999-12-20 Through 2007-06-01 (2720 Days) Profit 2013.0000 Pts Annualized Buy & Hold Profit 1821.0000 Pts Buy & Hold Buy & Hold Annualized Trade Summary Total Trades 80 Trade Efficiency -5.59 % Average Profit/Average Loss Profitable Trades Total 29 Long 14 Short 15 Average Profit 173.7241 Pts Highest Profit 961.0000 Pts Lowest Profit 1.0000 Pts Indices Buy & Hold Index 10.54 % Profit/Loss Index 39.96 % Reward/Risk Index 92.85 % Accounting Initial Equity Trade Profit Trade Loss Interest Credited Interest Charged Final Equity Open Account Variation Highest Account Balance Lowest Account Balance Highest Portfolio Value Highest Open Drawdown Highest d Drawdown 5038.0000 Pts -3025.0000 Pts 16 2013.0000 Pts 2091.0000 Pts -155.0000 Pts 961.0000 Pts -155.0000 Pts -145.0000 Pts 6 http://www.wdsoftware.com/pl/encyklopedia-at/bos.html. 21
Most Consecutive 4 Unprofitable Trades Total 51 Long 33 Short 18 Average Loss -59.3137 Pts Highest Loss -7 Lowest Loss Most Consecutive 6 Maximum Position Excursions Long Favorable 961.0000 Pts Short Favorable 47 Long Adverse -172.0000 Pts Short Adverse -133.0000 Pts Trade Efficiency Average Entry 56.61 % Average Exit 37.80 % Average Total -5.59 % Average Long Entry 51.45 % Average Long Exit 38.02 % Average Long Total -10.53 % Average Short Entry 63.95 % Average Short Exit 37.50 % Average Short Total 1.45 % Account Events Margin Calls 0 Overdrafts 0 Profitable Timing Average Trade Length 35 Longest Trade Length 180 Shortest Trade Length 1 Total Trade Length 1020 Unprofitable Timing Average Trade Length 11 Longest Trade Length 79 Shortest Trade Length 0 Total Trade Length 583 Out of Timing Average 11 Longest 84 Total 266 Optimization Variables OPT1 OPT2 6.00 OPT3 107.00 OPT4 OPT5 OPT6 OPT7 OPT8 OPT9 OPT10 Tabela 16. Zakładka System dla systemu opartego na wskaźniku MACD i przecięciu średnich kroczących dla wysokiej wartości ADX oraz oscylatora Bollingera dla małych wartości ADX z optymalizacją parametrów(dla oscylatora Bollingera) z uwzględnieniem stop loss na poziomie 70 punktów. System Details aa_macd_mov_adx_bollinger_opt Optimized Order Bias Long Portfolio Bias Single Position Limit 1 Notes Buys/sells when the MACD goes above/below its trigger. Select "Optimize" to specify the periods in the trigger. Buy Order Sell Short Order (mov( close, 16, E) - mov( close, 29, E)> mov( macd(), 13, E) AND Mov(C,4,E) > Mov(C,85,E) and adx(13)>25) or (adx(13)<25 and ((C+2*Std(C,21)- Mov(C,21,S))/(4*(Std(C,21)))*100)<opt2) (mov( close, 16, E) - mov( close, 29, E)< mov( macd(), 13, E) and Mov(C,4,E) < Mov(C,85,E) and adx(13)>25) or (adx(13)<25 and ((C+2*Std(C,21)- Mov(C,21,S))/(4*(Std(C,21)))*100)>opt3) Sell Order Buy to Cover Order 22
(mov( close, 16, E) - mov( close, 29, E)< mov( macd(), 13, E) and Mov(C,4,E) < Mov(C,85,E) and adx(13)>25) or (adx(13)<25 and ((C+2*Std(C,21)- Mov(C,21,S))/(4*(Std(C,21)))*100)>opt3) (mov( close, 16, E) - mov( close, 29, E)> mov( macd(), 13, E) AND Mov(C,4,E) > Mov(C,85,E) and adx(13)>25) or (adx(13)<25 and ((C+2*Std(C,21)- Mov(C,21,S))/(4*(Std(C,21)))*100)<opt2) Stops BreakEven Stop Floor Level Stop Loss Stop Value Long & Short 7 Trailing Stop Profit Risk Value Trailing Periods 0.0 Inactivity Stop Minimum Value Periods 0.0 Profit Target Target Value Simulation Options General Options Points Only Test Initial Equity 10000. Default Size 100 Units Trade Long Trade Short Optimization Results 25 Trade Execution Options Realistic Prices No Buy Price Sell Price Sell Short Price Buy To Cover Price Delay To Open 0 Slippage Buy Sell Sell Short Buy to Cover Broker Options Interest Rates Margin 5.00 % Money 3.00 % Margin Requirement Long Initial 100.00 % Long Maintenance 0.00 % Short Initial 150.00 % Short Maintenance 150.00 % Entry Exit Zastosowanie Oscylatora Bollingera pogarsza w zasadzie wszystkie ważne wskaźniki. Linia equity również wygląda dużo gorzej, jest znacznie bardziej poszarpana. Zwiększa się istotnie liczba transakcji stratnych. System generuje znacznie więcej fałszywych sygnałów. Zysk się zmniejszają, co oznacza, że zastosowanie Oscylatora Bollingera przynosi stratę względem systemu, który nic nie robił przy małych wartościach ADX. Wniosek z tego, że należy zrezygnowad z tego oscylatora i szukad innych rozwiązao polepszających system. Kolejnym pomysłem jaki miałem było ponowne wykorzystanie średnich kroczących, ale optymalizowanych niezależnie dla przypadku, gdy ADX jest mniejsze od 25. Dla krótkookresowej średniej wybrałem zakres <2,10>, a dla długookresowej <6,80>. Rezultaty przedstawiają tabele 17 i 18, a linię equity wykres 9. 23
Wykres 9. Linia equity dla systemu opartego na wskaźniku MACD i przecięciu średnich kroczących dla wysokiej wartości ADX oraz przecięcia średnich kroczących dla małych wartości ADX z optymalizacją parametrów(dla średnich kroczących w przypadku małej wartościwskażnika ADX) z uwzględnieniem stop loss na poziomie 70 punktów. Tabela 17. Zakładka Summary dla systemu opartego na wskaźniku MACD i przecięciu średnich kroczących dla wysokiej wartości ADX oraz przecięcia średnich kroczących dla małych wartości ADX z optymalizacją parametrów(dla średnich kroczących w przypadku małej wartościwskażnika ADX) z uwzględnieniem stop loss na poziomie 70 punktów. Summary aa_macd_mov_adx_mov Simulation Date 2009-06-04 18:03:45 Optimized System Points Only Test FW20 (FW20) 1869 Daily Bars 1999-12-20 Through 2007-06-01 (2720 Days) Profit 2544.0000 Pts Annualized Buy & Hold Profit 1821.0000 Pts Buy & Hold Buy & Hold Annualized Trade Summary Total Trades 19 Trade Efficiency -4.82 % Average Profit/Average Loss Profitable Trades Total 8 Long 5 Short 3 Average Profit 406.8750 Pts Highest Profit 921.0000 Pts Lowest Profit 19.0000 Pts Most Consecutive 2 Unprofitable Trades Total 11 Long 3 Short 8 Average Loss -64.6364 Pts Highest Loss -7 Lowest Loss -37.0000 Pts Most Consecutive 3 Maximum Position Excursions Long Favorable 1372.0000 Pts Short Favorable 1158.0000 Pts Long Adverse -106.0000 Pts Short Adverse -133.0000 Pts Trade Efficiency Average Entry 64.68 % Average Exit 30.51 % Average Total -4.82 % Average Long Entry 72.95 % Indices Buy & Hold Index 39.70 % Profit/Loss Index 78.16 % Reward/Risk Index 96.04 % Accounting Initial Equity Trade Profit Trade Loss Interest Credited Interest Charged Final Equity Open Account Variation Highest Account Balance Lowest Account Balance Highest Portfolio Value Highest Open Drawdown Highest d Drawdown Account Events 3255.0000 Pts -711.0000 Pts 38.0000 Pts 2544.0000 Pts 2545.0000 Pts -105.0000 Pts 1372.0000 Pts -105.0000 Pts -7 Margin Calls 0 Overdrafts 0 Profitable Timing Average Trade Length 170 Longest Trade Length 295 Shortest Trade Length 20 Total Trade Length 1367 Unprofitable Timing Average Trade Length 24 Longest Trade Length 81 Shortest Trade Length 0 Total Trade Length 271 Out of Timing Average 23 Longest 84 Total 231 Optimization Variables OPT1 6.00 OPT2 6.00 24
Average Long Exit 42.76 % Average Long Total 15.71 % Average Short Entry 58.66 % Average Short Exit 21.59 % Average Short Total -19.75 % Tabela 18. Zakładka System dla systemu opartego na wskaźniku MACD i przecięciu średnich kroczących dla wysokiej wartości ADX oraz przecięcia średnich kroczących dla małych wartości ADX z optymalizacją parametrów(dla średnich kroczących w przypadku małej wartościwskażnika ADX) z uwzględnieniem stop loss na poziomie 70 punktów. OPT3 OPT4 OPT5 OPT6 OPT7 OPT8 OPT9 OPT10 System Details aa_macd_mov_adx_mov Optimized Order Bias Long Portfolio Bias Single Position Limit 1 Notes Buys/sells when the MACD goes above/below its trigger. Select "Optimize" to specify the periods in the trigger. Buy Order Sell Short Order (mov( close, 16, E) - mov( close, 29, E)> mov( macd(), 13, E) AND Mov(C,4,E) > Mov(C,85,E) and adx(13)>25) or (adx(13)<25 and (Mov(C,opt1,E) > Mov(C,opt2,E) )) (mov( close, 16, E) - mov( close, 29, E)< mov( macd(), 13, E) and Mov(C,4,E) < Mov(C,85,E) and adx(13)>25) or (adx(13)<25 and (Mov(C,opt1,E) < Mov(C,opt2,E) )) Sell Order Buy to Cover Order (mov( close, 16, E) - mov( close, 29, E)< mov( macd(), 13, E) and Mov(C,4,E) < Mov(C,85,E) and adx(13)>25) or (adx(13)<25 and (Mov(C,opt1,E) < Mov(C,opt2,E) )) (mov( close, 16, E) - mov( close, 29, E)> mov( macd(), 13, E) AND Mov(C,4,E) > Mov(C,85,E) and adx(13)>25) or (adx(13)<25 and (Mov(C,opt1,E) > Mov(C,opt2,E) )) Stops BreakEven Stop Stop Loss Long & Short Floor Level Stop Value 7 Trailing Stop Profit Risk Value Trailing Periods 0.0 Inactivity Stop Minimum Value Periods 0.0 Profit Target Target Value 25
Simulation Options General Options Points Only Test Initial Equity 10000. Default Size 100 Units Trade Long Trade Short Optimization Results 25 Trade Execution Options Realistic Prices No Buy Price Sell Price Sell Short Price Buy To Cover Price Delay To Open 0 Slippage Buy Sell Sell Short Buy to Cover Broker Options Interest Rates Margin 5.00 % Money 3.00 % Margin Requirement Long Initial 100.00 % Long Maintenance 0.00 % Short Initial 150.00 % Short Maintenance 150.00 % Entry Exit Okazało się, że w tym przypadku optymalny system tworzy się dla równej liczby okresów wziętych dla średniej krótkookresowej i długookresowej. Oznacza to, że ten warunek się samoistnie niweluje, gdyż obie średnie będą zawsze sobie równe, co oznacza, że nigdy nie zostanie wygenerowanych sygnał kupna, ani sprzedaży. Wynika z tego, że ten system sprowadza się do tego, w którym dla małych wartości ADX nie robimy nic. Wydaje się, że właśnie wspomniany model będzie najlepszy, ale jeszcze dla upewnienia, zdecydowałem się wziąd Oscylator Stochastyczny do generowania sygnałów kupna i sprzedaży przy małym ADX. Został on stworzony przez dr George'a Lane i monitoruje zmianę ceny zamknięcia od minimum w stosunku do rozpiętości między ceną minimalną a maksymalną. Wspomniane zmiany następnie uśrednia się przy pomocy średniej ruchomej 7. W przypadku tego wskaźnika optymalizuję wartośd linii sygnalnych. Wartośd linii wykupienia pochodzi z przedziału <50,95> (krok 5), a linii wyprzedania z przedziału <5,50> (krok 5). Optymalne wartości wyniosły odpowiednio 5 i 95. Uzyskane rezultaty przedstawiają tabele 19 i20, a linię equity wykres 10. Wykres 10. Linia equity dla systemu opartego na wskaźniku MACD i przecięciu średnich kroczących dla wysokiej wartości ADX oraz oscylatora Stochastycznego dla małych wartości ADX z optymalizacją parametrów(dla oscylatora Stochastycznego) z uwzględnieniem stop loss na poziomie 70 punktów. 7 http://www.wdsoftware.com/pl/encyklopedia-at/sts.html 26
Tabela 19. Zakładka Summary dla systemu opartego na wskaźniku MACD i przecięciu średnich kroczących dla wysokiej wartości ADX oraz oscylatora Stochastycznego dla małych wartości ADX z optymalizacją parametrów(dla oscylatora Stochastycznego) z uwzględnieniem stop loss na poziomie 70 punktów. Summary aa_macd_mov_adx_stoch FW20 (FW20) Simulation Date 2009-06-10 11:20:17 1869 Daily Bars 1999-12-20 Through 2007-06-01 (2720 Days) Optimized System Points Only Test Indices Profit 1784.0000 Pts Buy & Hold Index -2.03 % Profit/Loss Index 60.74 % Annualized Reward/Risk Index 92.24 % Buy & Hold Profit 1821.0000 Pts Accounting Buy & Hold Initial Equity Buy & Hold Annualized Trade Profit 2937.0000 Pts Trade Summary Trade Loss -1153.0000 Pts Total Trades 28 56.0000 Pts Trade Efficiency -10.79 % Interest Credited Average Profit/Average Loss Interest Charged Profitable Trades Final Equity 1784.0000 Pts Total 10 Open Long 6 Account Variation Short 4 Highest Account Balance 2222.0000 Pts Average Profit 293.7000 Pts Highest Profit 829.0000 Pts Lowest Profit 19.0000 Pts Most Consecutive 2 Unprofitable Trades Total 18 Long 8 Short 10 Lowest Account Balance -15 Highest Portfolio Value 1372.0000 Pts Highest Open Drawdown -15 Highest d Drawdown -14 Account Events Margin Calls 0 Overdrafts 0 Profitable Timing Average Trade Length 126 Average Loss -64.0556 Pts Longest Trade Length 237 Highest Loss -82.0000 Pts Shortest Trade Length 20 Lowest Loss -1 Total Trade Length 1261 27
Most Consecutive 5 Unprofitable Timing Maximum Position Excursions Average Trade Length 20 Long Favorable 1372.0000 Pts Longest Trade Length 81 Short Favorable 885.0000 Pts Shortest Trade Length 0 Long Adverse -132.0000 Pts Total Trade Length 373 Short Adverse -133.0000 Pts Out of Timing Trade Efficiency Average 13 Average Entry 61.48 % Longest 84 Average Exit 27.72 % Total 235 Average Total -10.79 % Optimization Variables Average Long Entry 65.64 % Average Long Exit 31.98 % Average Long Total -2.38 % OPT1 5.00 OPT2 95.00 OPT3 OPT4 Average Short Entry 57.33 % OPT5 Average Short Exit 23.46 % OPT6 Average Short Total -19.21 % OPT7 OPT8 OPT9 OPT10 Tabela 20. Zakładka System dla systemu opartego na wskaźniku MACD i przecięciu średnich kroczących dla wysokiej wartości ADX oraz oscylatora Stochastycznego dla małych wartości ADX z optymalizacją parametrów(dla oscylatora Stochastycznego) z uwzględnieniem stop loss na poziomie 70 punktów. System Details aa_macd_mov_adx_stoch Optimized Order Bias Long Portfolio Bias Single Position Limit 1 Notes Buys/sells when the MACD goes above/below its trigger. Select "Optimize" to specify the periods in the trigger. Buy Order Sell Short Order (mov( close, 16, E) - mov( close, 29, E)> mov( macd(), 13, E) AND Mov(C,4,E) > Mov(C,85,E) and adx(13)>25) or (adx(13)<25 and Ref( Stoch(5,3), -1) <= opt1 AND Stoch(5,3) > opt1) (mov( close, 16, E) - mov( close, 29, E)< mov( macd(), 13, E) and Mov(C,4,E) < Mov(C,85,E) and adx(13)>25) or (adx(13)<25 and Ref(Stoch(5,3), -1) >= opt2 AND Stoch(5,3) < opt2) 28