Omat Rahat: Valuuttatreidaus – parannettu algoritmi
Ensimmäinen algoritmi perustui 100-päivän liukuvaan keskiarvoon, sekä 20 päivän ja 50 päivän prosentuaalisiin muutoksiin. Tämä perustui pelkästään näiden muuttujien korrelaatioon tulevan kuukauden kurssimuutokseen. Mikään ei siis taannut että juuri nämä muuttuja olisivat parhaita ja parhaalla painolla mukana.
Nyt yritän hieman parnataa algoritmiä ottamalla mukaan enemmän muuttujia alkuanalyysiin ja optimoimalla eri muuttujien painokertoimia.
Tavoite on siis ennustaa mahdollisimman hyvin valuuttakursisn muutos 20 päivää tulevaisuuteen käyttämällä 3…4 helposti saatavan olevaa muuttujaa, kuten liukuvat keksiarvot ja prosentuaaliset muutokset eri pituisten aikavälien yli.
Datana käytin euron vaihtokurssia 11 muun valuutan kanssa (USD, TRY, JPY, GBP, SEK, CHF, NOK, AUD, NZD, ZAR ja ILS) välillä 29-11-2010 .. 28-12-2011.
Muuttujakandidaateiksi valitsin seitsemän barchart.com sivustolta helposti saatavia muuttujia ja niistä laskettuja johdannaisia:
Prosentuaalinen erotus liukuvaan keskiarvoon: M100, M50, M20, jossa numero on liukuvan keskiarvon pituus.
Prosentuaalinen muutos: D5, D20, D50, D100.
Tulevan kuukauden kursismuutosennuste oli lineaarikombinaation näistä muuttujista, jossa siis kullakin muuttujalla oli vapaasti muuttuja painokerroin. Painokeroimnet optiomidana minimoimalla ennustevirheiden neliösumma.
Koko datan neliösumma oli 1.44237. Parhaiten ennustava yksittäinen muuttuja oli M20, painokertoimella -0.39606 jolla päästiin mallin hyvyydessä tasolle R^2 0.058. Kuinka ollakkaan juuri 20 päivän liukuva keksiarvo oliparas ennustaja kun tavoitepäivä oli 20 päivän päässä.
Näin etenin lisäämällä muuttujamäärää yhdellä ja valitsemalla parhaan R^2 – tason antavan muuttujan mukaan. Neljän muuttujan jälkeen ennustavuus ei enää merkittävästi parantunut.
Sovituksessa olivat silloin mukana M50, M20, D100 ja D20 painoilla: 0.535522, -0.54434, -0.06783 ja -0.27334. Tällä päästiin sovitukseen jonka R^2 oli 0.098, eli merkittävästi parempi kuin mikään yksittäinen muuttuja.
Oma tunteeni on että olisi kaivattu mukaan vielä pitempää aikajaksoa kuin 100 päivää. Mielenkiintoista on että M50 ja M20 "tappelevat vastakkain", eli lyhyllä aikavälillä palaudutaan keskiarvoon, mutta pidemällä välillä seurataan trendiä.
Tämähän ei toki vielä kovin hyvä korrelaatio ole, mutta jos arvaamalla pääsee 50% tulokseen, eli joka toisen kerran voittoa joka toinen kerta tappiota, niin ei tarvita montakaan prosenttia sattumaa parempaa ennustetta kun jo voi yrittää kaupankäyntiä.
Alla on tuore valuuttataulokko, jossa k.o. muutujat muutamalla valuuttaparille ja mallin avulla ennustettu muutos 20 päivää eteenpäin:
Sym | Name | Last | M50 | M20 | D100 | D20 | Indikaattori | |
CHFJPY | Swiss Franc/Japanese Yen | 82.416 | -2.7 % | -1.0 % | -16.4 % | -2.6 % | 0.90 % | |
EURJPY | Euro Fx/Japanese Yen | 100.218 | -3.7 % | -1.9 % | -8.3 % | -4.0 % | 0.68 % | |
NZDJPY | New Zealand Dollar/Japanese Yen | 59.856 | -0.3 % | 0.1 % | -6.2 % | -1.2 % | 0.52 % | |
CADJPY | Canadian Dollar/Japanese Yen | 75.856 | 0.0 % | -0.1 % | -2.3 % | -0.7 % | 0.43 % | |
EURUSD | Euro Fx/U.S. Dollar | 1.29293 | -3.7 % | -1.4 % | -9.2 % | -3.5 % | 0.37 % | |
USDJPY | U.S. Dollar/Japanese Yen | 77.503 | 0.0 % | -0.4 % | 1.1 % | -0.6 % | 0.31 % | |
AUDJPY | Australian Dollar/Japanese Yen | 78.706 | -0.1 % | 0.1 % | -0.9 % | -1.2 % | 0.30 % | |
USDCNY | U.S. Dollar/Chinese Yuan | 6.3078 | -0.6 % | -0.5 % | -1.2 % | -0.9 % | 0.27 % | |
EURGBP | Euro Fx/British Pound | 0.83747 | -1.8 % | -0.5 % | -4.3 % | -2.5 % | 0.27 % | |
EURCAD | Euro Fx/Canadian Dollar | 1.32056 | -3.7 % | -1.7 % | -6.1 % | -3.3 % | 0.26 % | |
EURSEK | Euro Fx/Swedish Krona | 8.91773 | -1.7 % | -1.0 % | -3.8 % | -1.4 % | 0.26 % | |
NZDUSD | New Zealand Dollar/U.S. Dollar | 0.77244 | -0.3 % | 0.5 % | -7.2 % | -0.6 % | 0.21 % | |
GBPAUD | British Pound/Australian Dollar | 1.51923 | -1.9 % | -1.4 % | -3.3 % | -0.5 % | 0.12 % | |
GBPUSD | British Pound/U.S. Dollar | 1.54351 | -1.9 % | -0.9 % | -5.2 % | -1.0 % | 0.11 % | |
USDHKD | U.S. Dollar/Hong Kong Dollar | 7.7684 | -0.1 % | -0.1 % | -0.3 % | 0.0 % | 0.01 % | |
AUDUSD | Australian Dollar/U.S. Dollar | 1.01561 | -0.1 % | 0.5 % | -1.9 % | -0.6 % | -0.02 % | |
EURNOK | Euro Fx/Norwegian Krone | 7.78119 | 0.3 % | 0.5 % | -1.0 % | 0.5 % | -0.12 % | |
EURTRY | Euro Fx/Turkish New Lira | 2.477168 | 0.6 % | 0.5 % | -2.1 % | 1.3 % | -0.14 % | |
USDCAD | U.S. Dollar/Canadian Dollar | 1.02129 | 0.0 % | -0.3 % | 3.4 % | 0.2 % | -0.15 % | |
USDSEK | U.S. Dollar/Swedish Krona | 6.89728 | 2.0 % | 0.5 % | 6.0 % | 2.1 % | -0.16 % | |
USDPLN | U.S. Dollar/Polish Zloty | 3.4318 | 3.7 % | 0.7 % | 18.0 % | 2.4 % | -0.28 % | |
USDSGD | U.S. Dollar/Singapore Dollar | 1.2974 | 0.8 % | 0.1 % | 7.1 % | 1.0 % | -0.38 % | |
USDILS | U.S. Dollar/Israeli Shekel | 3.817302 | 2.3 % | 1.2 % | 8.2 % | 1.9 % | -0.49 % | |
USDNOK | U.S. Dollar/Norwegian Krone | 6.019 | 4.1 % | 1.9 % | 9.0 % | 4.1 % | -0.55 % | |
GBPCHF | British Pound/Swiss Franc | 1.45123 | 0.8 % | -0.3 % | 14.7 % | 1.1 % | -0.65 % | |
CADCHF | Canadian Dollar/Swiss Franc | 0.9201 | 2.8 % | 0.9 % | 16.9 % | 1.9 % | -0.65 % | |
USDZAR | U.S. Dollar/South African Rand | 8.09684 | -0.4 % | -1.3 % | 13.2 % | 1.0 % | -0.68 % | |
USDZAR | U.S. Dollar/South African Rand | 8.09684 | -0.4 % | -1.3 % | 13.2 % | 1.0 % | -0.68 % | |
USDKRW | U.S. Dollar/Korean Won | 1157.91 | 1.8 % | 0.8 % | 7.5 % | 2.8 % | -0.74 % | |
USDCHF | U.S. Dollar/Swiss Franc | 0.94023 | 2.8 % | 0.6 % | 20.9 % | 2.1 % | -0.83 % | |
USDRUB | U.S. Dollar/Russian Ruble | 32.211 | 3.8 % | 2.0 % | 11.1 % | 4.1 % | -0.96 % | |
USDMXN | U.S. Dollar/Mexican Peso | 13.998 | 2.2 % | 1.4 % | 13.8 % | 2.7 % | -1.25 % | Lyhyt |
USDCZK | U.S. Dollar/Czech Koruna | 19.9611 | 5.4 % | 2.5 % | 17.7 % | 6.4 % | -1.43 % | Lyhyt |
kerroin | 0.535522 | -0.54434 | -0.06783 | -0.27334 |
Eli jos rajaksi ottaa ±1% muutosennusteen tulee salkkuun lyhyet positiot USDMXN ja USDCZK-pareille.
Ennen kuin innostutte liikaa, niin alla kuvaaja ennustetuista muutoksista ja toteuneista … havonta on isoa, joten älkää hyvät ihmiset ottako liian isoja positioita tämän perusteella…
Muuten saa kyllä olla tarkkana .. itsekin tyrin pahemman kerran kun piti avata lyhyt positio USDCZK. Joulunpyhät väliin ja selkäranka oli jo unohtanut miten position arvo määrittyy! Muistisääntöhän on että ensimmäinen osa valuuttaparista kertoo arvon. 10 kpl USDCZK valuuttaparia on arvoltaan siis n. 10 USD eikä 10 Korunaa (CZK). Tulipa otettua 20 kertaa suurempi positio kun oli aikomus…huhuh. Onneksi huomasin melkein heti että jokin oli pielessä enkä jättänyt jättipositiota roikkumaan 5% stop-lossin varaan!
Be carefull out there…
Kommentit