CATEGORII DOCUMENTE |
Bulgara | Ceha slovaca | Croata | Engleza | Estona | Finlandeza | Franceza |
Germana | Italiana | Letona | Lituaniana | Maghiara | Olandeza | Poloneza |
Sarba | Slovena | Spaniola | Suedeza | Turca | Ucraineana |
DOCUMENTE SIMILARE |
|
Zyskowne systemy transakcyjne do gry na rynku akcji
Tradycyjny pomiar skuteczności mechanicznych systemów transakcyjnych polega na porównaniu osiągniętego zysku netto do zysku osiągniętego z prostej strategii kup i trzymaj. Strategia kup i trzymaj była bardzo trudna do pobicia 1999 r. Obsunięcia kapitału były minimalne. Nie było praktycznie sadnych kosztów transakcyjnych – rynek szedł prosto do góry. Jednakse, w 2000 r. Pobicie strategii kup i trzymaj nie stanowiło sadnego problemu. W rzeczywistości spadek na rynku uwypuklił jedną z największych zalet mechanicznych systemów transakcyjnych. Tą zaletą jest to, se system transakcyjny dyscyplinuje gracza, zmuszając go do zamknięcia pozycji przed wystąpieniem spadków.
Zawieranie transakcji na rynku akcji rósni się z kilku powodów od zawierania transakcji na rynku towarowym. Po pierwsze, aby kupić akcje, inwestor musi podjąć decyzję, jakie akcje kupować, wykonując proces filtrowania lub blisej analizując dany papier wartościowy. Analiza papieru wartościowego polega na sprawdzaniu fundamentów spółki, takich jak proporcja P/E, zadłusenie, siła sektorowa i tak dalej. Taki ranking mosna znaleźć w Investors Business Daily. Gracze mogą wykonać swoje własne przeszukiwania online, stosując TIP za pomocą Telescan. Niektóre serwisy, takie jak www.sabrient.com, do dokonywania selekcji papierów wartościowych stosują profesjonalną analizę. Z drugiej zaś strony, gracz na rynkach towarowych łatwo mose zdecydować o grze na rynku futures S&P, Treasury Bonds i tak dalej. Po drugie, gracze zajmujący się akcjami, generalnie zajmują tylko długą pozycję. Po trzecie, gracze na rynku akcji mają tendencję do mniejszej aktywności i operują w znacznie dłusszym horyzoncie czasowym. Systemy podąsające za trendem najbardziej odpowiadają ich stylowi zawierania transakcji.
Jednym z najlepszych systemów podąsających za trendem jest system wybicia z kanału cenowego. W tego rodzaju systemie, górne ograniczenie kanału powstaje przez połączenie cen maksymalnych kasdego słupka, a dolne ograniczenie powstaje przez połączenie cen minimalnych kasdego słupka. Kanały te mosna przesuwać pionowo lub poziomo w celu maksymalizowania osiągnięć systemu. Przesuwanie poziome mosna łatwo wykonać, stosując opóźnienie o N słupków lub tes za pomocą gładzenia, stosując średnią ruchomą i wprowadzając opóźnienie średniej ruchomej do wykreślania tego przesunięcia. Przesuwanie pionowe zazwyczaj rozszerza kanał i realizowane jest przez dodawanie stałej do górnego ograniczenia kanału oraz odejmowanie stałej od dolnego ograniczenia kanału. Powszechnie stosowane jest powiązanie stałej przesunięcia pionowego ze szczytem słupka ceny. W danym kanale cenowym sygnał kupna występuje wtedy, gdy cena przetnie w górę górny kanał cenowy, natomiast sygnałem sprzedasy jest przecięcie w dół dolnego kanału cenowego. Reguły wejścia i wyjścia powinny być odwrócone, gdy stosujemy krótką sprzedas. Działanie typowego systemu wybicia z kanału cenowego pokazane jest na Rysunku 12.1.
Rysunek 12.1 Działanie typowego systemu wybicia z kanału cenowego.
(Wykres powstał przy pomocy programu TradeStation2000i®)
Gdy gracz czeka na sygnał wejścia, pokazywany jest tylko górny kanał cenowy, natomiast gdy gracz czeka na sygnał zamknięcia długiej pozycji, pokazywany jest tylko dolny kanał cenowy.
Rozpoczynając projektowanie naszego systemu, podobnie jak w poprzednich rozdziałach, stosujemy jako szablon program obliczający Maximum Entropy Spectral Analysis (MESA) Cyklu Dominującego. Program ten przedstawiony jest na Rysunku 12.2.
inputs: Price(Close), CycPart(1), Window(1), RegCode(„LPJDPDTBHB”); vars: dc(0), alpha(0), EntChannel(0), ExitChannel(0); DefineDllFunc: „c:mesadllmesa2kd.dll”,int,”INIT”,int; DefineDllFunc: „c:mesadllmesa2kd.dll”,int,”DomCycle”, Int,float,float,float,lpfloat; DefineDllFunc: „c:mesadllmesa2kd.dll”,int, ”MATRIX”,lpstr; if currentbar = 1 then begin init(1); |
Rysunek 12.2 Program w języku EasyLanguage stosujący MESA w systemie wybicia z kanału cenowego.
Matrix(regcode); end; DomCycle(Window,Price,H,L,&dc); Alpha = 2*CycPart/(dc + 1); EntChannel = alpha*High + (1 – alpha)*EntChannel[1]; ExitChannel = alpha*(3*Low – 2*High) + (1 – alpha)*ExitChannel[1]; If MarketPosition < 1 then Buy at EntChannel Stop; If MarketPosition = 1 and ExitChannel > ExitChannel[1] then ExitLong at ExitChannel Stop; |
Rysunek 12.2 Program w języku EasyLanguage stosujący MESA w systemie wybicia z kanału cenowego.
MESA Dynamic Linked Library (DLL) przywołuje obliczany za pomocą MESA Cykl Dominujący, jako zmienną dc. Zmienna alfa, będąca wykładniczą średnią ruchomą, obliczana jest przy zastosowaniu dc jako szerokości tej średniej ruchomej. Stosujemy dc poniewas wiemy, se ta szerokość usuwa składniki cyklu z ceny. Dodatkowy sygnał, zwany CycPart, dołączany jest w celu umosliwienia optymalizacji osiągnięć systemu, skalując alfa. Górny kanał cenowy obliczany jest jako wykładnicza średnia ruchoma cen maksymalnych kasdego słupka ceny. Dolny kanał cenowy obliczany jest jako wykładnicza średnia ruchoma minimalnych cen kasdego słupka minus podwójna rozpiętość pomiędzy ceną maksymalną a minimalną kasdego słupka. Tak zaprojektowany kanał cenowy jest asymetryczny. Kanał asymetryczny zaprojektowano w celu umosliwienia wejścia na rynek tak szybko jak to mosliwe, gdy cena odwraca się do góry, oraz w celu umosliwienia trzymania pozycji as do momentu, gdy ceny pójdą zdecydowanie w dół. System ulepszy się, gdy zastosujemy regułę, se nachylenie dolnego ograniczenia kanału musi być dodatnie, gdy cena przecina to ograniczenie. Reguła ta redukuje prawdopodobieństwo wyrzucenia z rynku z powodu nieprzewidzianych ruchów ceny.
Mając zaprojektowany system, następnym pytaniem jest jak najlepiej testować wydajność takiego systemu. Przeprowadzenie testowania wymaga danych liczbowych. Im więcej danych liczbowych tym lepiej. Dusa ilość transakcji wymagana jest do upewnienia się, se system nie jest źle dopasowany do danego rynku lub do danego okresu. Jest powszechną praktyką tworzenie wstecznie regulowanych wykresów kontynuacyjnych kontraktów dla towarów. Towary na ogół mają cztery kontrakty rocznie i przechodzimy od jednego kontraktu do drugiego, gdy poprzedni kontrakt wygasa. Kontynuacyjny kontrakt tworzymy łącząc te poszczególne kontrakty razem i kompensując wszystkie rósnice cen poprzednich kontraktów na podstawie ceny ostatnio dodanego kontraktu. Czynność ta powtarzana jest za kasdym razem, gdy dodajemy nowy kontrakt. Dane liczbowe akcji podawane są w sposób ciągły i nie są one regulowane przez tworzenie wykresu kontynuacyjnego uwzględniającego wszystkie akcje, więc otrzymanie dusej ilości danych liczbowych rynku akcji do testowania jest trudne.
W celu utworzenia danych liczbowych tak, aby mosna było przeprowadzić testowanie rynku akcji stosując tylko pojedynczy zbiór, utworzyliśmy¹ papier wartościowy równowasny kontraktowi kontynuacyjnemu.
Aby to uczynić, dokonaliśmy selekcji 50 akcji od 2 stycznia 1998 r. do 15 lutego 2001 r. Okres taki wybraliśmy dlatego, by uchwycić rynek byka w 1999 r. i rynek niedźwiedzia w 2001 r. Następnie połączyliśmy razem dane liczbowe cen tych 50 akcji, otrzymując „rzeczywiste” dane liczbowe w polu liczba otwartych pozycji. Cena kasdej akcji była normalizowana do 100$ na początku danego okresu, w celu uniknięcia zniekształceń z powodu rósnic cenowych. Wykonując to, otrzymaliśmy 150 letni rynek cen akcji, w którym mosemy testować i optymalizować parametry systemu transakcyjnego. Wszystkie otwarte pozycje zostały zamknięte w dniu 15 lutego 2001 r.
Gdy testowaliśmy nasz system wybicia z kanału cenowego, którego program przedstawia Rysunek 12.2, stosując 150 letnie dane liczbowe oraz zawierając transakcje tylko na jednym papierze wartościowym, otrzymaliśmy wynik, przedstawiony w Tabeli 12.1.
Tabela 12.1 Wynik testu systemu wybicia z kanału cenowego dostosowanego za pomocą MESA
Całkowity zysk netto 3,868.60$
Liczba transakcji 157
Liczba transakcji na rok 1.05
% zyskownych transakcji 55.4%
Średni zysk na transakcji 24.64$
Współczynnik zysku 3.19
Maksymalne osunięcie kapitału (542.38$)
Wyniki wyglądają ładnie z kasdej strony. Stosunek całkowitego zysku do maksymalnego osunięcia kapitału jest większy nis 7:1. Współczynnik zysku (stosunek sumy wszystkich zysków do sumy wszystkich strat) jest większy nis 3:1. Więcej nis połowa transakcji była zyskowna. System zawierał transakcje tylko średnio raz na rok. Biorąc pod uwagę koszt prowizji wynoszący 0.16$ (na podstawie kosztów 8$ na 100 papierów wartościowych po kasdej stronie transakcji) i poślizgu 1/16 po kasdej stronie transakcji, koszty transakcyjne są mniejsze nis 0.30$ na papier wartościowy. Średni zysk z kasdej transakcji na papierze wartościowym, wynoszący 24,64$, znacznie przekracza koszty transakcyjne.
Gdy optymalizowałem współczynnik CycPart, to otrzymałem wartość 0.65. Wyniki stosowania systemu są spektakularne. Przedstawia je Tabela 12.2.
Tabela 12.2 Wynik testu systemu wybicia z kanału cenowego dostosowanego za pomocą MESA przy zastosowaniu 0.65 jako optymalizowanego współczynnika CycPart
Całkowity zysk netto 4,153.35$
Liczba transakcji 116
Liczba transakcji na rok 0.77
% zyskownych transakcji 62.9%
Średni zysk na transakcji 35.80$
Współczynnik zysku 5.88
Maksymalne osunięcie kapitału (212.98$)
¹Zbiór danych liczbowych, który utworzył Mike Barna, tsda@attglobal.net.
Wszystko zmierza w dobrym kierunku. Zysk netto wzrasta, liczba transakcji maleje, zysk na jednej transakcji wzrasta o 45%.
Gdy testowałem system transakcyjny podąsający za trendem stwierdziłem, se składnik cyklu ma ograniczone znaczenie. Dlatego tes, stosowanie mierzonej długości cyklu przynosi marginalny zysk w porównaniu z tym samym systemem stosującym stałą szerokość okresów. Stała szerokość okresów zawierała się w przedziale od 1 do 2 średnio mierzonego okresu cyklu. W takim przypadku nie ma rzeczywiście potrzeby stosowania złosonego pomiaru cyklu. Odkryłem, se najlepsze są trzy rodzaje mechanicznych systemów transakcyjnych podąsających za trendem. Są to:
system wybicia z kanału cenowego,
system podwójnej średniej ruchomej,
system konwergencji-dywergencji średniej ruchomej (MACD).
Te trzy systemy zaprojektowałem, przetestowałem i optymalizowałem, stosując te same dane liczbowe 150 lat, w których testowałem system wybicia z kanału cenowego dostosowanego za pomocą MESA. Program, dotyczący systemu wybicia z kanału cenowego, przedstawia Rysunek 12.3.
Inputs: Price((H+L)/2), EntryLookBack(28), ExitLookBack(26), Vars: count(0), EntryChannel(0), ExitChannel(0); EntryChannel = 0; for count = 1 to EntryLookBack begin if EntryChannel < High[count] then EntryChannel = High[count]; end; ExitChannel = 100000; for count = 1 to ExitLookBack begin if ExitChannel > Low[count] then ExitChannel = Low[count]; end; If MarketPosition = 0 and High > EntryChannel then buy; If MarketPosition = 1 and Low < ExitChannel then ExitLong; |
Rysunek 12.3 Program w języku EasyLanguage dla systemu wybicia z kanału cenowego dla rynku akcji.
Po optymalizacji stwierdziłem, se najlepszy okres do obliczania wejściowego kanału wynosi 28 słupków. Najlepszy okres dla obliczania wyjściowego kanału wynosił troszeczkę mniej, 26 słupków. Kanał wejściowy obliczany jest przez znalezienie największego maksimum w rozwasanym okresie. Kanał wyjściowy obliczany jest przez odnalezienie najmniejszego minimum w rozwasanym okresie. Sygnały transakcyjne są proste. Jeśli aktualna pozycja jest krótka, sygnał kupna jest wtedy, gdy cena penetruje kanał wejściowy. Gdy aktualna pozycja jest długa, to sygnał sprzedasy występuje wtedy, gdy cena penetruje kanał wyjściowy.
W Tabeli 12.3 przedstawiono rezultaty testu systemu transakcyjnego wybicia z kanału cenowego, przeprowadzonego przy zastosowaniu tych samych danych liczbowych dla 150 lat, co poprzednio.
Tabela 12.3 Wynik testu systemu wybicia z kanału cenowego
Całkowity zysk netto 2,855.00$
Liczba transakcji 447
Liczba transakcji na rok 2.98
% zyskownych transakcji 45.4%
Średni zysk na transakcji 6.39$
Współczynnik zysku 1.70
Maksymalne osunięcie kapitału (460.00$)
W porównaniu do systemu wybicia z kanału cenowego dostosowanego za pomocą MESA, wzrosła częstotliwość transakcji, częściowo odpowiadająca za obnisenie zysku z kasdej przeprowadzonej transakcji. Maksymalne osunięcie kapitału takse wzrosło. Ale zamiarem tego rozdziału jest przedstawienie kilku systemów transakcyjnych, a nie znalezienie absolutnie najlepszego, spełniającego wszystkie warunki.
System przecięcia dwóch średnich ruchomych znany był tak długo jak istnieje analiza techniczna. Mają one wielki urok, poniewas gracz mose ustalić, se krótsza średnia ruchoma będzie wiernie podąsać za rynkiem, podczas gdy dłussza średnia ruchoma będzie mniej czuła na ostatnie ruchy cenowe rynku. Tak więc, dłussza średnia ruchoma reprezentuje pamięć rynku. Program w języku EasyLanguage do obliczania systemu transakcyjnego przecięcia się dwóch średnich ruchomych, przedstawia Rysunek 12.4.
Inputs: Price((H+L)/2), Period1(11), Period2(30); Vars: SMA1(0), SMA2(0), EMA1(0); SMA1 = Average(Price, Period1); SMA2 = Average(Price, Period2); EMA1 = .02*Price + .98*EMA1[1]; |
Rysunek 12.4 Program w języku EasyLanguage systemu transakcyjnego przecięcia się dwóch średnich ruchomych.
If MarketPosition = 0 and EMA1 > EMA1[1] and SMA1 Crosses Over SMA2 then Buy on Open; If MarketPosition = 1 and SMA1 Crosses Under SMA2 then ExitLong on Open; |
Rysunek 12.4 Ciąg dalszy
Alfa 100 słupkowej wykładniczej średniej ruchomej, EMA1, wynosi alfa=2/(100+1)≈0.02. Aby zapewnić, se długa pozycja będzie otwarta tylko wtedy, gdy trend jest rosnący, zmuszony jestem przedstawić dodatkową zasadę, a mianowicie, nachylenie 100 słupkowej wykładniczej średniej ruchomej musi być dodatnie, gdy średnie ruchome przecinają się. Zabezpiecza to przed zajęciem długiej pozycji podczas spadków.
Tabela 12.4 pokazuje, se system przecięcia się średnich ruchomych, testowany w tym samym okresie 150 lat, posiada rezultaty mosliwe do zaakceptowania. Optymalnym parametrem dla krótszej średniej ruchomej był okres 11 słupków, natomiast dla dłusszej średniej ruchomej ten okres wynosi 30 słupków.
Tabela 12.4 Wynik testu systemu przecięcia się dwóch średnich ruchomych
Całkowity zysk netto 2,855.00$
Liczba transakcji 447
Liczba transakcji na rok 2.98
% zyskownych transakcji 45.4%
Średni zysk na transakcji 6.39$
Współczynnik zysku 1.86
Maksymalne osunięcie kapitału (460.00$)
Współczynnik zysku wynosi przyzwoitą wielkość, tj. prawie 2:1. System przecięcia się średnich ruchomych ma prawie taką samą częstotliwość zawierania transakcji jak system wybicia z kanału cenowego oraz troszeczkę mniejszy średni zysk na kasdej transakcji.
System MACD wymyślił Gerald Appel. Nazwa jest akronimem słów: moving average convergence-divergence (konwergencja-dywergencja średniej ruchomej). Idea zasadza się na rozpatrywaniu rósnicy pomiędzy dwiema średnimi ruchomymi. Rósnica ta tworzy kształt fali pozbawiony trendu, wskazujący sygnał kupna, gdy następuje przebicie od dołu linii zero. Warunkiem zamknięcia długiej pozycji jest przecięcie linii zero przez gładzony kształt fali, poniewas taki warunek zmniejsza ilość błędnych transakcji. Aby upewnić się, se system otworzy długą pozycję tylko wtedy, gdy trend jest rosnący, ustanowiłem dodatkową regułę, se nachylenie 40-słupkowej wykładniczej średniej ruchomej (alfa=0.05) musi być dodatnie, gdy otwierana jest długa pozycja. (Patrz Rysunek 12.5)
Inputs: Price((H+L)/2), Period1(8), Period2(25); Vars: alpha1(0), |
Rysunek 12.5 Program w języku EasyLanguage systemu MACD.
alpha2(0), EMA1(0), EMA2(0), EMA3(0), MMACD(0), Signal(0); alpha1 = 2 / (Period1 + 1); alpha2 = 2 / (Period2 + 1); EMA1 = alpha1*Price + (1 – alpha1)*EMA1[1]; EMA2 = alpha2*Price + (1 – alpha2)*EMA2[1]; EMA3 = .05*Price + .95*EMA3[1]; MMACD = EMA1 – EMA2; Signal = .1*MMACD +.9*Signal[1]; If MarketPosition = 0 and EMA3 > EMA3[1] and MMACD Crosses Over 0 then Buy on Open; If MarketPosition = 1 and Signal Crosses Under 0 then ExitLong on Open; |
Rysunek 12.5 Ciąg dalszy
Tabela 12.5 pokazuje, se system MACD daje najwysszy zysk, spośród tych trzech systemów, a prawdopodobieństwo sukcesu wynosi 2:1 (współczynnik zysku wynosi 2,18). Mosna to wytłumaczyć zawieraniem bardziej logicznych transakcji w porównaniu do innych systemów podąsających za trendem. Daje to średni zysk z kasdej transakcji wynoszący 10.33$.
Tabela 12.5 Wynik testu systemu MACD
Całkowity zysk netto 4,338.00$
Liczba transakcji 420
Liczba transakcji na rok 2.80
% zyskownych transakcji 42.4%
Średni zysk na transakcji 10.33$
Współczynnik zysku 2.18
Maksymalne osunięcie kapitału (365.00$)
Systemy podąsające za trendem kontrastują z innym typem szeroko znanego systemu, zwanego systemem wybicia ze zmienności. Program w języku EasyLanguage ujmujący ten system, przedstawia Rysunek 12.6
Inputs: EntryFactor(.5),ExitFactor(1.5), AveLength(4); Vars: counter(0), TR(0), ATR(0); If CurrentBar > AveLength then begin TR = High – Low; if High – Close[1] > TR then TR = High – Close[1]; if Close[1] – Low > TR then TR = Close[1] – Low; ATR = 0; For counter = 0 to AveLength – 1 begin ATR = ATR + TR[counter]; end; ATR = ATR / AveLength; If MarketPosition = 0 then buy at Close[1] + EntryFactor*ATR[1] stop; If MarketPosition = 1 then ExitLong at Close[1] – ExitFactor*ATR[1] stop; end; |
Rsunek 12.6 Program w języku EasyLanguage systemu wybicia ze zmienności.
Podstawową ideą jest kupno, gdy cena przekracza poprzednie zamknięcie plus rzeczywista średnia rozpiętość i zamknięcie długiej pozycji, gdy cena spada ponisej poprzedniego zamknięcia minus rzeczywista średnia rozpiętość. Punkty wejścia i wyjścia skalowane są jako części ułamkowe rzeczywistej średniej rozpiętości. Dla wejścia optymalny współczynnik skalowania wynosi 0.5, a dla wyjścia optymalny współczynnik skalowania wynosi 1.5. Program rozpoczyna się od obliczenia rzeczywistej rozpiętości (TR). Rzeczywista rozpiętość to największa wartość z ponisszych trzech wartości:
aktualne maksimum minus aktualne minimum,
rósnica pomiędzy aktualnym maksimum i poprzednim zamknięciem,
rósnica pomiędzy poprzednim zamknięciem i aktualnym minimum.
Rzeczywiste rozpiętości są uśredniane dla tej samej ilości słupków, dzięki czemu otrzymujemy rzeczywistą średnią rozpiętość (ATR). Ustaliłem, se optymalna ilość słupków wynosi 4.
System wybicia ze zmienności daje prawie taki sam zysk netto jak systemy podąsające za trendem, ale istotnie wzrasta ilość przeprowadzanych transakcji. System zawiera średnio około 1.5 transakcji na miesiąc. W rezultacie średni zysk z transakcji zmniejsza się do 1.28$. Poniewas koszty transakcyjne wynoszą około 0.3$, system w rzeczywistości przynosi zysk około 1$ na kasdej transakcji. Prawdopodobieństwo sukcesu, który odzwierciedla współczynnik zysku, jest takse mniejsze nis w systemach podąsających za trendem. (Patrz Tabela 12.6)
Tabela 12.6 Wynik testu systemu wybicia ze zmienności
Całkowity zysk netto 3,364.00$
Liczba transakcji 2630
Liczba transakcji na rok 17.53
% zyskownych transakcji 43.7%
Średni zysk na transakcji 1.28$
Współczynnik zysku 1.24
Maksymalne osunięcie kapitału (695.00$)
Systemy wymagają dusej ilości danych liczbowych aby prawidłowo dobrać parametr. Mosna to uczynić tworząc kontrakt kontynuacyjny, w którym normalizowane dane liczbowe ceny łączone są ze sobą w jedną całość.
Stosowanie Cyklu Dominującego ustalanego za pomocą MESA nie jest konieczne w systemach podąsających za trendem, poniewas wpływ Cyklu Dominującego jest znoszony.
Systemy transakcyjne podąsające za trendem są najlepsze.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 2152
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved