Koneoppiminen ja algoritmit treidauksen tukena

Kaikki tietää Blumman terminaalit. Nyt on ilmeisesti tullut Open Source version: https://openbb.co/

ping @Verneri_Pulkkinen - säästäkää penninne.

4 tykkäystä

Blummassahan ei ole sovelluksena ihan hirveästi mitään erityistä. Kaikki ne pricerit ja muut työkalut saa myös opensource toteutuksena esimerkiksi quantlibin kautta. Blommassa (ja Eikonissa) maksaa se data jota ei oikein muualta saa sen halvemmalla ja se kaikki on yhdessä paikassa. Bloombergin koko bisnesmalli on se että myyvät dataa jota ei helposti saa mistään muualta ja Blommalla se on vielä valmiiksi pureskeltua ja siivottua. Tuossakin näyttää olevan lähinnä kryptodataa nopealla selailulla joka on muutenkin normaalia markkinadataa helpommin saatavilla. Tuskimpa edes murto-osaa siitä mitä blommalta löytyy.

1 tykkäys

Ketjun lukeneena nyt on vähän sellainen olo että tulen mopolla radalle missä muut ajavat kiihdytysautoilla mutta onko kenelläkään kokemuksia Capitalise.ai koodausvapaasta treidirobotista?

Tuolla kirjoitellaan siis ihan sanoilla mitä halutaan robotin tekevän ja on mahdollisuus ajallisesti rajalliseen back testaukseen (max 3kk). Robon voi laittaa toki myös simuloimaan reaaliajassa ja lopulta tekemään kauppaa oikealla rahalla.

Aika uusi palvelu joten vielä hieman kehitysvaiheessa mutta vaikuttaa lupaavalta ainakin sellaisille henkilöille jotka ei osaa koodata. Tiettyjä puutteita siis löytyy ja toiminnallisuudet osin rajallisia mutta homma kehittyy pikkuhiljaa, ja puutteita pystyy kätevästi kiertämään Tradingview kautta webhookeilla. Minkä tahansa alertin TV:stä voi heittää capitalise.ai palveluun triggeriksi. Asiakaspalvelukin vastaa eri foorumeiden kautta aika nopsaan ja auttaa ongelmissa.

Palvelu on ainakin IBKR kautta ilmainen, joten jos vähääkään kiinnostaa niin helppo kokeilla. Mielenkiintoisena seikkana mm. se, että pystyy käyttämään myös uutisia ja/tai kaikenlaisia yhtiötiedotteita triggereinä, esim. tällainen sanallinen entry on mahdollista tehdä: “If the Unemployment Claims (US) figures are below forecast and the SPX daily change crosses below -1% sell 10K SPDV”

3 tykkäystä

Tässä langassa ei ole hetkeen ollut pöhinää ja nautin itse ainakin tämän lukemisesta, joten ehkä voisin itse jotain kontribuoida niin josko elämä palaisi lankaan.

Olen pelaillut viimeaikoina jonkin verran Copuloiden kanssa. Copulahan on siis moniulotteinen jakaumafunktio, jonka marginaaliset distribuutiot ovat tasajakautuneita. Sellaisenaan ei kuulosta kovin mielenmiintoiselta, mutta nk. Sklarin teoreema osoittaa että minkä tahansa moniulotteisen jakauman voi esittää copula-funktion ja jakauman marginaalien avulla. Mikä tekee tästä erittäin hyödyllistä on se, että copulat mahdollistavat täten sen että moniuloitteisia ilmiöitä voidaan mallintaa monesti helpommin copulan kautta sillä se mahdollistaa marginaalien ja riippuvuusrakenteen erillisen mallintamisen.

Jos katsotaan vaikka Nasdaq ja SP500 indeksien yhteisjakaumaa esimerkkinä.


Kuten voi olettaa, korrelaatio on vahvaa. Tässä kuvassa on siis logaritmiset tuot plotattuna päivätasolla. Tätä moniulotteista jakaumaa voidaan lähteä mallintamaan muuntamalla ensiksi Copulamuotoon käyttämällä empiiristä distribuutiofunktiota. Saadaan seuraavanlainen kuva

Nyt marginaalijakaumat ovat tasajakautuneita ja jäljelle jää tavallaan vain copula muodossa näiden kahden välinen riippuvuus johon voidaan sovittaa jokin parametrinen copula. Tällaisia on esimerksi finanssikriisissä ryvettynyt Gaussinen copula, T-copula jne. Sen jälkeen pitäisi vielä mallintaa erikseen marginaaliset jakaumat.

Copulalla on siis helppo mallintaa esimerkiksi juuri monen assetin arvon yhteisjakaumaa, tai assettien riippuvuussuhdetta. Monesti riippuvuutta yritetään mallintaa korrelaatiolla, mutta on helppo nähdä missä tämä menee pieleen.
image
Kuvassa mustalla on taas SP500 ja Nasdaq indeksit ja punaisella on vastaavalla 0.95 korrelaatiolla simuloitu Gaussinen copula Gaussisilla marginaleilla. Korrelaatiot ovat samat, mutta riippuvuusrakenne ei selkeästi ole. Indeksien aikasarjoissa on selkeää häntäriippuvuutta jota ei Gaussisen copulan riippuvuusrakenne pysty nappaamaan. Nämä ei välttämättä ole kaikista paras esimerkki sillä riippuvuus on äärimmäisen positiivinen kuten olettaa voi kahden indeksin välillä, mutta tuottavat helposti koodattavan esimerkin.
Tässä vielä esimerkin vuoksi FANG datalle samanlaista viritelmää.



Näissä on hyvin monimutkainen riippuvuusrakenne jo. Mallintaminen tässä on paljon helpompaa jos saa sovittaa riippuvuusrakenteen ja marginaalit erikseen.

6 tykkäystä

Tiedä sitten mikä tämänkin viestin kontribuutio oli.

Mutta vastataan nyt kunnolla silti. Selittämälläni tasolla ei kovin hienoa tietenkään. Viestini tarkoitus oli lähinnä selostaa jotain hyödyllisestä työkalusta joka ei välttämättä ole ihmisille tuttu ja samalla nostaa ketjua pinnalle taas sillä tätä on ollut mukava lukea ja sääli että keskustelu loppunut. Niinkuin alussa sanoinkin, toivon langan uudelleen heräämistä kun sitä välillä vähän nostaa :slight_smile:

Jos kommenttisi taas oli että mitä merkitystä Copuloilla on ylipäätään, niin se kertoo sitten enemmän sinusta. Copulat ovat käytännössä modernin kvantitatiivisen rahoituksen kulmakivi. Ne löytyy käytöstä aina BIS:n vakavaraisuuskaavoista CDSien ja muiden strukturoitujen sijoitustuotteiden hinnoitteluun. Relevantimmin itse langan aiheeseen, Copulat ovat myös kvantitatiivisten sijoitus strategioiden kulmakivi, ja monesti statistista arbitaasia harjoittavat kvanttirahastot perustavat strategiansa juurikin Copuloihin.

Tässä muutamia artikkeleita.

Cointegraation mallinnusta
https://journals.sagepub.com/doi/full/10.1177/0008068319838146

Volatiliteetti riippuvuuden mallinnuksesta

StatArb sovellus (tosin julkaistut parametrit tuskin tosielämässä toimii mutta selostaa hyvin prosessia)
https://www.tandfonline.com/doi/full/10.1080/14697688.2018.1438642

Pair tradingia (sama huomatus julkaistusta mallista pätee tähän)

Lisäksi sanon myös anekdoottina, että eräs tuttuni on töissä eurooppalaisessa kvanttirahastossa ja keskustelumme perusteella heillä on käytössä copuloihin pohjautuva strategia.

12 tykkäystä

Alkaa taas olemaan opiskelujen jälkeen enemmän aikaa keskityä sijoittamiseen. Aika paljon tullut väännettyä viime aikoina Lineaarisen ohjelmoinnin kanssa ja miksipä sitä ei koittaisi soveltaa myös sijoittamiseen. Kokeilen tässä ensin pientä Excel ratkaisua niin pääsee vähän kärryille. Tässä optimoidaan portfolion tuottoa, kun 2 osakkeeen tuotot on estimoitu seuraavalle yhdeksälle päivälle. Molempien osakkeiden tuotot on nyt samat ja vuopäivinä tuotot on +5% ja -2%. Osakkeen maksimipaino on 75% ja ostoon kohdistuu ensimmäisessä ratkaisussa 1% kulu. Tuoton ja ostoajankohdat pienemmässä taulukossa. Isommassa taulukossa itse malli, jonka yläreunassa osakkeiden tuotot ja kulut kaupankäynnistä. Riveiltä 7-35 löytyy rajoitteet päiväkohtaisesti, jossa portfolion koko on 100 ja maksimipaino 75. Kahdessa pienemmässä alueessa määritelty kaupankäyntiin liittyvän kulun toteutuminen. Alareunassa päätösmuuttujat kertoo sijoituksen päivittäisen osuuden portfoliosta.

Ratkaisimen parametrin määritetty näin

Ensimmäisessä ratkaisussa ostot toteutuisi joka toinen päivä.

Toisessa ratkaisussa kaupankäynnin kulut on -3%, jolloin ratkaisu muuttuu. Nyt kannattaa ottaa mieluummin markkinoilta -2% ja tehdä vähän kauppaa. Osakkeet ostetaan toisena päivänä ja myydään yhdeksäntenä päivänä.

1 tykkäys

Jatkoa edelliseen viestiin todellisemmalla tilanteella. Toteutus Pythonilla ja viimeistely Excelissä. Otin joulukuun viimisen päivän ennusteet ja optimoin salkun niiden ja 0,2% kaupankäyntikuluilla. Maksimipaino yksittäiselle osakkeelle on 10%, eli käytännössä tarkoittaa tasahajautusta.

Ei sitte kannata tän perusteella sijoitella :slight_smile:

Yllättävän hyvin osunut noi tammikuun yhtiövalinnat tähän mennessä. Vasemman reunan tuotot päivittäiselle ylituotolle ja oikeanpuoleinen kumulatiiviselle ylituotolle.

Loppu kuukausi olikin sitten vähän heikompi, mutta ylituottoa kuukaudelta silti 2,56%. Viimisen päivän kurssitietojen haussa tapahtu jotain erikoista eikä oikeita tuottoja ole nyt mukana.

Meni sen verran kivasti, että kokeillaan uudestaan, mutta ainoastaan viidellä yhtiöllä. Usein tämmönen pienempi määrä yhtiöitä on toiminut vähän paremmin. Fiskars tuntuu erityisesti miellyttävän algoritmia.

3 tykkäystä

Kysytään pitkästä aikaa tältä ketjulta mielipidettä. Vastaus saattaa löytyä vanhoista keskusteluista, mutta ehkä viimeisen vuoden aikana on kuitenkin saatu uuttakin tietoa josta tänne ei ole kirjoiteltu.

Eli pitäisi saada seuraavaa historiadataa markkinoista. Tällä hetkellä livedata ei ole tarpeen, koska haluan vain käsitellä dataa ja opetella/testailla sen avulla eri teorioita.

  • historiadataa osakkeista viimeisten vuosien ajalta, päivätasolla sekä esim. 5min tasolla
  • mielellään Helsinginpörssi, mutta muutkin käyvät
  • myös muu kuin kurssidata kiinnostaa, vaikka eri tunnuslukuja jne.

Alphavantage on useasti mainittu, onko tämä edelleen se paras ylläolevan datan hakemiseen? Löytyykö kryptopörsseistä edelleen data helpommin (periaatteessa ei väliä mikä on kohde, koska teorioita tässä vaan testataan). Onko kellään ollut hyviä kokemuksia Nordnetin APIn käytöstä?

Kahlailen ketjua vielä ajatuksella läpi, uusia kysymyksiä/kommentteja varmasti tulossa.

Kiitti

Reilu vuosi vierähtänyt edellisestä viestistä tässä ketjussa kiireiden takia. Nyt vähän uutta projektia testiin, joka on ollut jo jonkin aikaa mielessä. Aineistossa kokonaisuudessaan ladattu yfinance:n avulla. Tällä hetkellä aineistossa 3,24 miljoonaa päivittäistä kurssitietoa.

Tarkoituksena esimerkissä on etsiä aineistosta Telian kurssikäyrää lähellä olevat havainnot, joista tarkastellaan toistaiseksi joka toista päivää. Näitä on kuvattu punaisella ja vihreällä viivalla, jotka ovat yhden keskihajonnan päässä keskiarvosta.

Musta pystyviiva kuvaa tätä hetkeä. Vasen puoli mennyttä 149 kaupankäyntipäivää ja oikea puoli seuraavia 49 kaupankäyntipäivää. Sininen viiva kuvaa toteutunutta kurssia tai ennustetun kurssikehityksen keskiarvoa. Ennuste näyttäisi tässä tapauksessa aluksi aika neutraalilta ja nousevan loppua kohden lievästi.

Alla vanhin vastaava kurssi kehitys, jonka kurssia kerroin vastaamaan Telian kurssitasoa. Silmämääräisestikin vastaa aika hyvin kurssikehitystä.

Täällä saattaisi olla kiinnostusta tätä Hudson et Thames juuri open sourcettua kirjastoa kohtaan. Nopealla vilkaisulla näytti suhteellisen kattavalta.

Laitetaanpa tähän pieni testisetti Hesulin ennusteista nykyversiolla. Aineiston koko nyt n. 25 miljoonaa riviä, jossa mukana nyt viimeisten 200 päivän tuotot. Ennustejakso on pidetty 50 (tai oikeastaan 49) päivässä ja taulukossa ennustettu tuotto jakson viimeisenä päivänä. Lista on järjestetty laskemalla Tuotto*Tuotto / Riski ja sorttaamalla sen mukaisesti. Tuoton ollessa negatiivinen on arvo kerrottu vielä -1:llä.

Listan perusteella 15 potentiaalisinta nousijaa vähän tarkemmin.

Nää ei muuten ole sijoitussuosituksia!

4 tykkäystä

Innostuin kokeilemaan ilmaista Pythonanywhere.com palvelua, joka on kyllä aika näppärä ainakin pieniin sovelluksiin. Kohtalaisen näppärästi saa sivut luotua Flask:n avulla. Uutta asiaa tuli opittua melko reippaasti, että sai edes tämän verran tehtyä. Suurimman osan aikaa vievästä laskennasta suoritan omalla koneella, jonka tulokset lataan toistaiseksi manuaalisesti sivustolle. Projektissa mukana toistaiseksi vain melkein kaikki suomalaiset osakkeet. Koko prosessi pitäisi kyllä ollla mahdollista automatisoida.

Alla tuore ennuste Incap kurssikehitykseen perustuen. Verrataan ensin First North:n osakkeisiin, jossa Incap merkattu punaisella.

Yhtiökohtainen sivu havainnollistaa aineiston sopivuutta Incapin kurssikäyrään ja aineiston lähimpien havaintojen toteutuneita tuottoja.