Sunday, April 18, 2010

Pierwszy test strategii high-frequency trading dla EURUSD

Zacznę od tego, że wygląda to zbyt pięknie, by było prawdziwe... Dlatego też w następnych dniach będę głównie szukał dziury w całym.
Powyższy wykres przedstawia pierwszy test badanego algorytmu high-frequency dla EURUSD za okres ostatnich 2 lat (504 notowania).

Obliczenia uwzględniają 2 pkt. spread.

Ponieważ strategia nie przewiduje trzymania pozycji overnight, nie ponosi się kosztu punktów swapowych.

Porównanie wyników:
  • zmiana EURUSD w okresie: -15,12%
  • wyniki strategii: +96,45%


Tak jak zacząłem, dalsze analizy wkrótce...

UPDATE: 2010-04-18, 03:06: oczywiście w kodzie był błąd i po jego usunięciu wyniki strategii dość mocno spadły. No ale błąd ten wskazał nowe obszary poszukiwań rozwiązania :)

Friday, April 16, 2010

Spread / koszty transakcyjne czynią wielką różnicę przy high frequency trading

Na poniższym wykresie znajduje się prezentacja pewnej niezwykle prostej strategii inwestycyjnej przetestowanej na 4 tys. ostatnich sesji na WIG20 (użytego zamiast FW20). Czarna linia przedstawia wyniki strategii, podczas gdy czerwona - notowania WIG20 w tym samym okresie:
Jest to strategi typu high-frequency trading, wymagająca wykonywania dużej ilości transakcji.

Zobaczmy zatem co się stanie, jeżeli w obliczeniach uwzględnimy koszty transakcji w postacji 1-punktowego spreadu przy zakupie i sprzedaży każdego kontraktu:
Jak widać, strategia staje się nieprzewidywalna, a w wielu okresach po prostu się rozjeżdzą i zaczyna generować straty.

Z drugiej strony, tak jak zaznaczyłem wcześniej, to bardzo prosta strategia, którą można poprawić w celu uzyskiwania lepszych zwrotów na poszczególnych inwestycjach. Można się także zastanowić jak zminimalizować koszty transakcyjne :)

Thursday, April 15, 2010

EURPLN a błądzenie losowe

Kilka prób zajęło mi wygenerowanie w miare zbliżonej losowej trajektorii dla EURPLN.

W tym przypadku kurs rósł przez pierwszych niemal 2000 notowań (czyli jakieś 8 lat). Wygenerowana trajektoria losowa nie oddaje skali tego wzrostu, ale i tak jest najbardziej zbliżona z kilkunastu, które wyrzucił generator, co pozwala na jakieś porównanie.

Warto jednak na tej podstawie zauważyć, że taki 8-letni wzrost jest rzadkim przypadkiem przy założeniu błądzenia losowego...

Trochę parametrów:

  • średnia i mediana: odpowiednio  1.861e-04  i -5.726e-05 (czyli 1.8/10000 i -5.7/100000)
  • odchylenie standardowe: 0.006783567
  • zmiana w okresie: 105.3%
  • średnia roczna zmiana: ok. 4.2%
  • maksymalne zmiany: -0.03536 i 0.07268
  • kurtoza: 10.05750
  • skośność: 0.7354289

    SD, kurtoza i skośność jest możliwa do wyliczenia w przypadku rozkładu normalnego; jeżeli zmiany notowań podlegają rozkładowi Cauchy'ego, wariancja jest nieskończona, a 3 i 4 moment nie są określone

  • ilość notowań w ramach poszczególnych odchyleń standardowych:
    • 1 - 0.767173 (normalnie ok. 68%)
    • 2 - 0.9496713 (modelowo ok. 95%)
    • 3 - 0.9866243 (modelowo ok. 99,7%)
    • 4 - 0.9943324
    • 5 - 0.998413
    • 6 - 0.9993199 (standardowo 6 sigm to 0.999999998027)
  • odległość najdalszych notowań wyrażona w liczbie odchyleń standardowych:
    • najsilniejszy wzrost - 10.71457 sigm
    • najsilniejszy spadek - 5.211948 sigm
Ponownie mamy to czynienia ze znacznym odstępstwem od rozkładu normalnego. Najbardziej prawdopodobny jest rozkład Cauchy'ego.

WIG20 a błądzenie losowe

Powyżej porównanie wykresu WIG20 (czarny) z trajektorią wygenerowaną losowo (czerwony) w oparciu o rozkład normalny o parametrach równych średniej dziennej zmiany i odchyleniu standardowym zmian indeksu w analizowanym okresie.

Dodatkowo na wykresie znajduje się linia (niebieska) odpowiadająca równomiernemu wzrostowi indeksu o średnią zmianę dzienną.

A teraz porównanie rozkładu rzeczywistego WIG20 z danymi losowymi (czarne - dane rzeczywiste; niebieskie - dane wynikające z modelu normalnego):

  • rzeczywiste dzienne zmiany bywają okresowo bardziej nerwowe (większe) niż wynika to z modelu; można również zauważyć koncentrację takich "rozchwianych" zmian - jeżeli rynek wypadnie z równowagi, podwyższona zmienność utrzymuje się przez pewien czas

  • o ile w modelu normalnym na wykresie zależności zmiany od poprzedniej nie ma zbyt wielu przypadków odbiegających od ośrodka koncentracji i nie są one znaczne, w rzeczywistości występuje znacznie więcej wahań silnie odbiegających od ośrodka koncentracji

  • histogram pokazuje z jednej strony znacznie większą koncentrację niewielki zmian w danych rzeczywistych, ale z drugiej strony - znacznie częstrze występowanie dużych zmian, których prawdopodobieństwo wg modelu normalnego jest skrajnie niskie

Porównanie wybranych polskich funduszy inwestycyjnych i WIG



Do porównania wybranych zostało 6 funduszy akcyjne:
  • Arka Akcji (od 1998-04; akytwa: 3,189 mld zł) - zauważalnie lepszy niż rynek, praktycznie w całym okresie
  • DWS Akcji (od 1998-01; 181,8 mln zł) - lekko lepszy niż rynek; na początku 2000. radził sobie znacznie lepiej, potem nastąpiła konwergencja
  • ING Akcji (od 1998-03; 386,8 mln zł) - lekko lepszy niż rynek; podobnie jak DWS, na początku 2000. radził sobie lepiej, choć nie tak wyraźnie jak DWS
  • PioneerAgresywny (od 1995-12; 2,237 mld zł) - sporo słabszy niż rynek, praktycznie trwale od około 2005
  • PKO Akcji (od 1998-01; 873,2 mln zł) - sporo słabszy niż rynek, choć przed załamaniem w 2008 r. jego zachowanie były zbliżone do WIG
  • UniKorona Akcje (od 1997-01; 912,4 mln zł) - zauważalnie lepszy niż rynek, praktycznie w całym okresie
Co nie powino dziwić, generalnie fundusze akcyjne zachowują się podobnie jak rynek, będący ich benchmarkiem.



Dodatkowe porównania:
  • niebenchmarkowy fundusz Investors FIZ (od 2007 r.) vs WIG oraz najlepiej zachowujący się otwarty fundusz akcyjny Arka - fundusz całkiem nieźle poradził sobie z załamaniem 2008/9, choć nie w pełni wykorzystał odbicia które rozpoczęło się w marcu 2009 r.
  • deklarowany jako niebenchmarkowy fundusz Opera 3gr FIZ (do 2007 r.) - notowania funduszu spadły mocniej niż WIG, a fundusz nie był w stanie wykorzystać odbicia zapoczątkowanego w 2009 r.; można na tej podstawie przyjąć hipotezę, że deklarowana niebenchmarkowość funduszu nie była w praktyce realizowana przed krachem
Niebenchmarkowy fundusz (aktywo) może stanowić zabezpieczenie przed gwałtownymi ruchami na giełdzie. Trzeba się jednak upewnić, że deklarowana niebenchamrkowość (niska korelacja z rynkiem), rzeczywiście ma miejsce. Nie da się na pdst. dostępnych danych stwierdzić, czy w dłuższym okresie inwestycja w niebenchmarkowe aktywa przynosi wyższą stopę zwrotu niż w indeks.



Jeszcze jedno porównanie:
  • fundusz Pioneer Obligacji Plus (pomarańczowa linia) vs WIG, Pioneer Akcji i Arka Akcji - mimo załamania, inwestycja w akcje wydaje się bardziej opłacalna niż w obligacje skabowe w analizowanym okresie
Można postawić hipotezę, że znaczne odchylenie wartości akcji od zyskowności obligacji może być oznaką przereagowania rynku w jedną lub drugą stronę.

 Źródła:

S&P500 vs trajektoria losowa o rozkładzie normalnym zmian

Wykres przedstawia zestawienie notowań S&P500 (czarny) w okresie 1928-2010 oraz przykładowej trajektorii losowej (czerwony), opartej na rozkładzie normalnym i parametrach M=0.026% i SD=1.2% (w oryginale: M=0.0002607 i SD=0.01158964). Skala y logarytmiczna.

BTW:
  • przy założeniu 250-252 sesji w roku, dzienna zmiana o 0.026% oznacza 6.7-6.8% rocznie. W rzeczywistości w badanym okresie, średnioroczny wzrost indeksu wyniósł 5,226%
  • dla porównania, w okresie ostatnich 19 lat, średnioroczny wzrost na WIG20 wyniósł  18.69% przy "wzroście implikowanym" na pdst. zmian dziennych na poziomie 28.96-29.22%

Wednesday, April 14, 2010

Złoto - kolejny Cauchy?

Kolejne aktywo - futures na złoto.


Wyniki obliczeń:
  • średnia i mediana: odpowiednio  0.0004107 i 0.0000000
  • odchylenie standardowe: 0.01336887
  • maksymalne zmiany: -0.1838000 i 0.1503000
  • kurtoza: 16.32789
  • skośność: 0.2508968
  • ilość notowań w ramach poszczególnych odchyleń standardowych:
    • 1 - 0.8062061 (normalnie ok. 68%)
    • 2 - 0.9449649 (modelowo ok. 95%)
    • 3 - 0.9814598 (modelowo ok. 99,7%)
    • 4 - 0.9931694
    • 5 - 0.9971702
    • 6 - 0.9985363 (standardowo 6 sigm to 0.999999998027)
  • odległość najdalszych notowań wyrażona w liczbie odchyleń standardowych:
    • najsilniejszy wzrost - 11.24392 sigm
    • najsilniejszy spadek - 13.75209 sigm

WIG20 - krótsze ogony dzięki widełkom? Ale wciąż daleko do rozkładu normalnego

No to tym razem na warsztacie lokalny WIG20 za okres od 16. kwietnia 1991 r. do 13. kwietnia 2010 - prawie 19 lat.



Wyniki obliczeń:
  • średnia i mediana: odpowiednio  0.0010180 i 0.0003657
  • odchylenie standardowe: 0.02286821
  • maksymalne zmiany: -0.2047000 i 0.1661000
  • kurtoza: 7.185876 - znów daleko od rozkładu normalnego
  • skośność: 0.1611263
  • ilość notowań w ramach poszczególnych odchyleń standardowych:
    • 1 - 0.7805162 (normalnie ok. 68%)
    • 2 - 0.944199 (modelowo ok. 95%)
    • 3 - 0.9823297 (modelowo ok. 99,7%)
    • 4 - 0.9913973
    • 5 - 0.9993025
    • 6 - 0.999535 (standardowo 6 sigm to 0.999999998027)
  • odległość najdalszych notowań wyrażona w liczbie odchyleń standardowych:
    • najsilniejszy wzrost - 6.967802 sigm
    • najsilniejszy spadek - 5.773904 sigm
Wykres WIG20 zachowuje się nieco spokojniej (krótsze ogony) w badanym okresie niż S&P500 (który był analizowany w dłuższym okresie).

Wciąż, rozkład zmian znacznie odbiega od modelu normalnego.

Co prawda ogony są krótsze, ale za to skupienie najczęściej występujących zmian wydaje się mniejsze.

Wpływ na krótsze ogony mają zapewne obowiązujące na GPW mechanizmy ograniczające wahania kursów (widełki statyczne i dynamiczne).

Notowania S&P500 - silne skupienie najczęstrzych zmian i długie ogony

Tym razem na warsztat w R trafiły ponownie (i na pewno nie po raz ostatni) notowania S&P500 za okres od początku 1928 roku do 5. kwietnia 2010 r. We wcześniejszym poście wyrysowałem sam wykres zależności zmian danego dnia od zmiany w dniu poprzednim.

Na niebiesko zaznaczyłem odchylenia o 6 SD.
 



Stopniowo dodaję kolejne obliczenia do skryptu w R i oto co z niego do tej pory wynika:
  • średnia i mediana: odpowiednio  0.0002607 i 0.0004606
  • odchylenie standardowe: 0.01158964 
  • maksymalne zmiany: -0.2047000 i 0.1661000
  • kurtoza: 20.51813 - to mi zdecydowanie nie wygląda na rozkład normalny...
  • skośność: -0.07152403
  • ilość notowań w ramach poszczególnych odchyleń standardowych:
    • 1 - 0.8141418 (normalnie ok. 68%)
    • 2 - 0.9529374 (tu wracamy do normalności, modelowo w okolicach 95%)
    • 3 - 0.9831623 (znów zaczynami się lekko oddalać: 99,7%)
    • 4 - 0.9919952
    • 5 - 0.9961816
    • 6 - 0.9978378 (standardowo 6 sigm to 0.999999998027)
  • odległość najdalszych notowań wyrażona w liczbie odchyleń standardowych:
    • najsilniejszy wzrost - 14.33140 sigm
    • najsilniejszy spadek - 17.65967 sigm
Wygląda z tego, że dzienne zmiany S&P500 są co prawda silnie skupione (ilość notowań w 1 SD), ale z drugiej strony wartości skrajne mogą być mocno oddalone od średniej.

Następnym krokiem powinno być przetestowanie, czy rozkład zmian pasuje do modelu Cauchy'ego.

Sunday, April 11, 2010

Wstępna analiza notowań EURUSD

W ramach ćwiczeń w R, tym razem wziąłem na warsztat notowania EURUSD w okresie od początku 1971 r. do 19. lutego 2010 r.

Oto rezultaty:



I jeszcze kilka parametrów:
  • średnia zmiana dzienna: 0.01143% (max = 6.395%, min=-5.702%)
  • dzienne odchylenie standardowe: 0.64466%
  • kurtosis: 7.268211 (rozkład normalny = 3)
  • skewness: 0.1196650 (rozkład normalny = 0)

Tuesday, April 6, 2010

Długi ogon rozkładu dziennych zmian

Histogram dziennych zmian pokazuje występowanie długich ogonów oraz potwierdza asymetrię rozkładu.

MIN = -20,46%, MAX = 16,61%

Pogranicza chaosu 2

Postanowiłem dzisiaj sprawdzić zależność dziennych zmian na indeksie S&P500 w dłużym okresie. Tym razem wziąłem dane od początku 1928 roku. Było tego niemal 22 tys. punktów. Excel niestety nie podołał... :)

Sięgnąłem zatem po pakiet R i powyżej widać pierwszy efekt.

Można zauważyć koncentrację zmian w stosunkowo niewielkim obszarze, oraz spadek częstotliwości wystąpień w miarę oddalania się od ośrodka koncentracji. Struktura jest również asymetryczna.

Dalsze analizy wkrótce :)

Monday, April 5, 2010

Pogranicza chaosu


Wykres przedstawia zależność dziennej zmiany wartości kontraktu terminowego na S&P500 od zmiany na poprzedniej sesji w okresie od początku 2010 r. do 2. kwietnia br.

Arkusz kalkulacyjny z obliczeniami

Saturday, April 3, 2010

Rozliczenie struktury na złocie z 14. listopada 2009 r.

Rozliczenie struktury zaproponowanej 14. listopada ur.

Kurs złota w dniu 1. kwietnia 2010 r. wyniósł $1126.80, czyli praktycznie bez zmian od 14. listopada ($1130).

Zakupione opcje out-of-money wygasły zatem na 0.

Przy założonej stopie wolnej od ryzyka na poziomie 5%, strategia praktycznie wyszłaby na zero (minimalny zysk poniżej 0.5%).