Maskinlæring og algoritmer som støtte til trading

{“content”:“Da denne mangler her, tænkte jeg på at oprette den. Jeg begyndte selv at udforske verden af maskinlæring og algoritmer ud af egen interesse (og lidt på grund af mit arbejde). Kort sagt: Jeg har længe været (og vil fortsat være) en tilhænger af teknisk analyse, men man lægger ikke altid mærke til alt med sine egne øjne, og jeg anser udnyttelsen af maskinlæring og algoritmer til at indhente og visualisere data som vigtig.\n\nI algo-strategier bruger jeg primært skildpaddestrategien, hvilket refererer til trend-trading, der blev gjort kendt af sin tids superstjerne Richard Dennis. Som støtte hertil bruger jeg ABCD-strategien.\n\nJeg stoler ikke fuldt ud på algoritmer og baserer stadig mine handlinger på TA, så ved at analysere data fra forskellige synsvinkler, såsom afkast, volatilitet, sentimenter, følelser, gennemsnitligt momentum, cykliske mønstre, trends, sæsoner, lineær analyse, sandsynlighedsregning osv., tror jeg, at handelslandskabet kan befries for fremtidens tågeslør. Jeg bruger Jupyter Notebook som platform på grund af dets grafiske egenskaber og kode-segmentering.\n\nMaskinlæring har udviklet sig hurtigt de seneste år, men er stadig i sin vorden, så de påstande, jeg fremsætter i denne tråd, bør stadig behandles med en vis kritisk sans og resultaterne bør stilles spørgsmålstegn ved.\n\nData er hentet fra Yahoo Finance med daglig granularitet, og den primære tidsramme, der er brugt, er fem år. Dette betyder, at maskinen i visse tilfælde ikke er blevet trænet i, hvad en krise betyder (2008). Data kan selvfølgelig hentes andre steder og med bedre tidsrammer, men problemet andre steder er, at man normalt ikke finder den finske børs der. Indtil videre er den mest behagelige API, jeg er stødt på til at undersøge f.eks. amerikanske børser, Alphavantage.\n\nDer findes allerede en separat tråd her for TA, som jeg bruger som supplement, så jeg anbefaler, at TA-relaterede spørgsmål stilles her.\n\nJeg afslører ikke alle hemmelighederne bag metoderne, men hvis der opstår spørgsmål, ønsker eller anmodninger, hjælper jeg gerne.”,“target_locale”:“da”}

16 Synes om

Som et lille udstillingsvindue for, hvad denne tråd handler om, for dem, der ikke gider læse introduktionen, men hellere vil kigge på billeder, vil jeg give to eksempler. Det første eksempel omhandler porteføljer. I porteføljer er det vigtigt, at investeringerne er godt diversificerede, og at volatiliteten per aktie er på et tåleligt niveau i forhold til ens risikoniveau. Ved at bruge resultat (+/-), kursudvikling, gennemsnit og volatilitet kan aktier sammenlignes ud fra et teknisk perspektiv.

Til eksemplet har jeg taget en håndfuld finske virksomheder, børsposterne på billederne:

Det lader til, at Orion, Kone, Renkaat, Sampo, Elisa osv. er aktier med lav volatilitet, mens Vaisala, Valmet, Metsä Board osv. er de mere volatile i sammenligningsgruppen. Maskinen giver altså ovenstående anbefalinger baseret på afkast i den ene retning og volatilitet i den anden retning, adskilt af en divisor. Dataene er fra fem år.

Hvis man ikke var ved at købe, men ville lave en risikovurdering af sin egen portefølje (alle aktierne i eksemplet tilsammen), kunne det visualiseres med samme data som følger:


Diversificeringen er altså relativt alsidig.

Hvis man derimod var ved at købe og hypotetisk fokuserede på virksomheder i “Køb”-området, ville risikovurderingen se sådan ud:

Senere i aften vil jeg poste endnu et eksempel på en aktiespecifik analyse ved hjælp af metoderne fra trådens introduktionsindlæg for at demonstrere, hvordan man får et bredt teknisk overblik over en aktie.

18 Synes om

Nu er der interessant læsning. Kan du også vise maskinanalyse af Nokia?

2 Synes om

Jeg overvejede i første omgang at lave eksemplet fra Metsä Board, men lad os hurtigt smide en hastigt lavet Nokia-analyse op her. En påmindelse om, at dette slet ikke har taget højde for sociale medier, funds eller andre eksterne faktorer ud over prisen.

Maskinerne blev fodret med Nokias kursdata for de sidste 4 år (<18.7.2019). For at få en idé om, hvor Nokia ville ligge i forhold til andre virksomheder, kørte jeg først en pris sammenligning for Nokia. I en optimal situation ville dette gøres i forhold til konkurrenterne, men jeg kørte det nu med andre tilfældige virksomheder, hvis kursdata jeg allerede havde indsamlet. Jeg farvede Nokia rød for bedre synlighed.

Når man kender aktiens position nogenlunde i forhold til andre aktier, kan man begynde at analysere den gennem synlige data. Den simpleste måde at vurdere præstationen på er at sammenligne årene med hinanden for at finde stærke og svage perioder. Nedenfor er de sidste 4 år i ét billede.

Opdelt ser årene sådan ud:


Årsskiftet har altså ofte fungeret som et vendepunkt for prisen. Denne information er god at have i mente, men det er kun en observation, som vi i sidste ende ikke gør meget mere ud af her.

Det, der interesserer os, er aktiens prisprofil. Profilen findes ved at beregne det mest almindelige prisniveau for aktien:


Tilsyneladende er Nokias mest almindelige niveau omkring fem euro. En præcisering af dette opnås fra det 4-årige gennemsnit ved at beregne CloseMean, altså gennemsnittet af lukkekurserne.

Ved at tilføje det lineære gennemsnit til billedet bemærker vi, at Nokia i gennemsnit har været faldende de sidste 4 år.

Ved at bruge det lineære gennemsnit kan vi også illustrere, hvordan kursen ser ud i forhold til den gennemsnitlige nedgang:
6hinnankuvausgraafi
Fra denne beregning kan man om nødvendigt også konstruere en indikator til overvågning af priserne.

Ved at tilføje MA12 til kortet får vi følgende billede, hvis resultater vi vil bruge i fremtiden:

Og den fremtid kommer her. Ved at bruge MA12 og lukkekurserne kan vi beregne og visualisere gennemsnittet for kursens retning samt gennemsnitlige kursafvigelser (finurligheder i det finske sprog). Teknisk set ser du altså sort som standard, blå som lukkekurs og orange som MA12. Moll-tonen er tydelig.

Hvad betyder dette for selve aktien? Kan dette gøres mere forståeligt for almindelige mennesker? Takket være datoer, priser og algoritmer kan vi også udskille sæsonbetonede prisændringer fra dataene:


Det tydeligste mønster er den nedadgående trend, og det mest interessante er nok den sæsonbetonede variation. Ifølge grafen er vi om et par dage tilsyneladende igen nede i midlertidige lavpunkter.

Men! Betyder det, at man bør købe?

Det er et personligt spørgsmål for alle og afhænger af den enkelte. Jeg venter gerne, til alle stjerner står i kø, hvis en købsbeslutning skal træffes. At konstatere en overreaktion i kursen er i nogle tilfælde nyttigt:


Den foregående overreaktion skete altså i foråret, da prisen nåede 4,23. Dette ville have været et godt tidspunkt at smide linen ud.

Hvordan opfører aktien sig så på forskellige prisniveauer? Volatilitet/spredning i prisen kan beskrives som følger:
11scatter-vola
Den mest stabile pris er mellem 4,2 og 5,8 euro.

Omregnet til et 3D-billede:

Hvordan ville en algoritme identificere købsmuligheder?

Dette afhænger af den anvendte algoritme. Hvis algoritmen er baseret på prisafvigelser og sigter mod et normalt niveau, dvs. identificerer prisens yderpunkter og sælger på dette grundlag, kan outputtet se ud som følger:

Dette oversat til et søjlediagram viser de mest gunstige købs- og salgsmuligheder over en periode på 4 år:


Jo mindre rødt, jo roligere og mindre risikabel har bevægelsen været. De røde punkter illustrerer punkterne i billedet ovenfor, og den blå er prisniveauet.

Til kortlægning af resultater kan man også anvende Monte Carlo-simuleringsmetoden, som så vidt jeg ved bruges i bl.a. vejrudsigter. Man kan læse mere om metoden på Wikipedia.
Kort fortalt opbygger simuleringen et givet antal tilfældige prognoser, som kan frasorteres efter sandsynlighed. Jeg bruger ikke metoden i denne analyse, udover som demonstration. Nedenfor demonstreres de 100 mest sandsynlige kursforløb baseret på 4 års data.

Dette er også meget lettere at læse i et søjlediagram:

Ikke en egentlig investeringsstrategi, men giver et godt billede af, hvad man kan forvente af fremtiden ved at kombinere dette med alle de andre data, der er gennemgået ovenfor.

Men, men! Hvornår kigger vi på algoritmernes resultater?
Lad os kigge på dem nu.

Jeg bruger selv gerne en kombination af to forskellige algoritmer. Den ene er baseret på den legendariske Richard Dennis’ (se Turtle-strategien) lære om trendændringer, og den anden er baseret på ABCD-mønstret på børsen.

Nedenfor er den førstnævnte. Regler: Maks. køb: 200, Maks. salg: 1000:
dag 314: køb 200 enheder til pris 887.600000, samlet saldo 9112.400000 (INV 200)
dag 324: køb 200 enheder til pris 864.800000, samlet saldo 8247.600000 (INV 400)
dag 325: køb 200 enheder til pris 830.000000, samlet saldo 7417.600000 (INV 600)
dag 326: køb 200 enheder til pris 813.600000, samlet saldo 6604.000000 (INV 800)
dag 327: køb 200 enheder til pris 794.400000, samlet saldo 5809.600000 (INV 1000)
dag 329: køb 200 enheder til pris 787.200000, samlet saldo 5022.400000 (INV 1200)
dag 330: køb 200 enheder til pris 771.600000, samlet saldo 4250.800000 (INV 1400)
dag 337: køb 200 enheder til pris 762.000000, samlet saldo 3488.800000 (INV 1600)
dag 451, sælg 1000 enheder til pris 5370.000000, investering 40.944882 %, samlet saldo 8858.800000, (INV 600)
dag 452, sælg 600 enheder til pris 3231.000000, investering 41.338583 %, samlet saldo 12089.800000, (INV 0)
dag 453: kan ikke sælge noget, beholdning 0
dag 454: kan ikke sælge noget, beholdning 0
dag 455: kan ikke sælge noget, beholdning 0
dag 456: kan ikke sælge noget, beholdning 0
dag 466: kan ikke sælge noget, beholdning 0
dag 603: køb 200 enheder til pris 802.800000, samlet saldo 11287.000000 (INV 200)
dag 605: køb 200 enheder til pris 784.000000, samlet saldo 10503.000000 (INV 400)
dag 607: køb 200 enheder til pris 780.000000, samlet saldo 9723.000000 (INV 600)
dag 608: køb 200 enheder til pris 774.000000, samlet saldo 8949.000000 (INV 800)
dag 886, sælg 800 enheder til pris 4344.000000, investering 40.310078 %, samlet saldo 13293.000000, (INV 0)
dag 887: kan ikke sælge noget, beholdning 0
dag 958: køb 200 enheder til pris 872.800000, samlet saldo 12420.200000 (INV 200)
dag 959: køb 200 enheder til pris 868.400000, samlet saldo 11551.800000 (INV 400)
dag 960: køb 200 enheder til pris 854.200000, samlet saldo 10697.600000 (INV 600)
dag 961: køb 200 enheder til pris 853.700000, samlet saldo 9843.900000 (INV 800)
dag 962: køb 200 enheder til pris 846.500000, samlet saldo 8997.400000 (INV 1000)

Og nedenfor et billede af ABCD-resultaterne på kortet:


Samt i indikatorform:
Forskellen mellem disse to er, som de mest skarpsindige nok har bemærket, at den første egner sig til lange tidsrammer og den anden til mellemlange tidsrammer. I den første bruger jeg 4 års data og i ABCD bruger jeg 1 års data.

Jeg smider den skov b herind på et tidspunkt.

Og endelig, hvis I har gode strategier og observationer i tankerne, så råb op.

18 Synes om

{“content”:“Jeg fandt ikke direkte noget i ovenstående beskrivelse, som jeg ikke selv kan finde i TA (Teknisk Analyse). Med TA kan man ikke direkte forudsige, men det er baseret på optimal timing af købs- og salgsøjeblikke. Disse er så desuden afhængige af positionens tidshorisont. Men jeg kunne ikke se, hvordan fremtidsforudsigelsen sker, og hvor meget data der er om det (succesraten for forudsigelserne).\nDa du selv er bekendt med TA, vil du så uddybe lidt, hvordan dette adskiller sig fra det (sammenlignet med de TA-metoder, du selv har anvendt). Beregninger/algoritmer skal køre i realtid for at være nyttige, f.eks. i trading.”,“target_locale”:“da”}

2 Synes om

Du har delvist ret i det. Jeg vil opdele det lidt. Hvis man ønsker at gå direkte over til ren algo-trading og selv trække sig tilbage i baggrunden, kræver det adgang via en API-grænseflade til live-data, der feedes fra en børs, f.eks. fra Alpha Vantage. Jeg har desværre ikke fundet nogen API-grænseflade, hvorfra man direkte kan hente live-data fra de finske børser, som jeg selv handler med, så jeg har været nødt til at nøjes med at indlæse såkaldt statisk data via en CSV-fil. Dette udelukker naturligvis live-trading med algoritmer og tvinger mig til dag- og ugetrading. Hvis du er interesseret i at handle med den tyske DAX, kan DAX findes på Alpha Vantage som den nærmeste børs til Finland. AV’s API er gratis.

Hvis du er interesseret i at bygge en fuldautomatisk algoritme, der udfører handler for dig med en reaktionstid på sekunder, er den bedste måde at komme i gang med dette lige nu enten at fokusere fuldstændig på krypto på grund af det faktum, at mange børser deler deres egen API, hvorigennem du både får live-data og ordrer udført, og API’erne er ofte helt gratis. I børsverdenen er fuld automatisering mere udfordrende og fokuserer primært på store aktører. På krypto-siden findes et godt bibliotek til opsætning af algoritmer her.

Nordnet her er sandsynligvis en pioner, der tilbyder sin egen API-grænseflade, men tilsyneladende ikke helt gratis. Desuden er den seneste nyhed fire år gammel, så der er ingen garanti for, at den fungerer. :confused:

For at besvare dit spørgsmål om forskellene mellem TA og maskinbaseret daghandel er det, at de råd og strategier, der er lært fra TA, kan undervises i algoritmer gennem dyb læring. Processen er i en nøddeskal, at du koder en række indikatorer og regler, lærer modellen gennem iterationer, i hvilke situationer man skal handle og hvad. Når modellen er færdig, kan du enten beholde den eller ændre træningsdata og indstillinger. En passende model bør gemmes og tages i brug. Takket være flere iterationer i forbindelse med træningsdata lærer modellerne at identificere de rigtige købs- og salgstidspunkter meget mere pålideligt end mennesker, hvilket igen er vigtigt i live-handel netop på grund af reaktionstiden. Populære modeller at undervise i er forskellige variationer, der bruger ARIMA, CNN og LSTM separat eller sammen. Det vigtigste i modellens funktion er sandsynlighedsberegning og vurdering af forskellige muligheder, så en “perfekt model” findes ikke.

Et visuelt eksempel på, hvordan modellen “ser” de givne regler, f.eks. ved MA-kryds:


Ovenfor er der givet data til maskinen med forskellige typer Moving Averages. Nedenfor er der data om, hvad modellen forventer, der vil ske i forskellige krydssituationer.

Hvis man vil gå ind i at forudsige fremtiden, er der ikke tale om lige så pålidelig information som baseret på indikatorer. Her taler man ofte ikke længere om algoritmer, men om ren maskinlæring, der netop er blevet en tidlig teenager. Jeg ville ikke stole for meget på 100% ML-baserede modeller endnu, men et eksempel på “fremtidsforudsigelse” er billedet nedenfor. Teknologien, der blev brugt, var en JavaScript-version af TensorFlow.


Billedforklaring:
Linjerne er plottede MA’er, og det lysegrønne er TensorFlows forudsagte prisudvikling med et års træningsdata, der er gennemgået 50 gange under træningen. Derudover er den forudsagte volumenmængde. Hvis man ønsker lidt mere pålidelige resultater end ovenstående demo-plot af Metsä Boards kurs, anbefales et antal iterationer/epoker i tusindvis.
Den nederste venstre graf viser modellens forudsigelser side om side med den realiserede pris i træningsdataene, i nederste højre hjørne ses antallet af træningsmængder og hvor godt læringen er gået igennem hver gang, dvs. jo lavere loss i dataene, desto bedre. Jeg kan ikke understrege nok, at hvis man udelukkende stoler på ML til at forudsige fremtiden, skal dataene være fra lang tid tilbage, og der skal være mange iterationer.

I en optimal model får kunstig intelligens værktøjer, som den læres at bruge. Med maskinlæring læres modellen en bestemt aktiekurs’ adfærd samt visse “særlige egenskaber”, hvis de findes i træningsdataene. Fremtidsforudsigelser bør kobles til en variation af Monte Carlo-modellen, hvor maskinlæring og AI ved hjælp af indikatorer kunne vælge de mest sandsynlige resultater. Derudover skal modellen være koblet til en NLP-processor, der kan undersøge nyhedsdata. Den simpleste NLP-model, der kan implementeres, er en Twitter-sentimentanalysator, f.eks. ved hjælp af Tweepy og TextBlob, men i bedste fald bør data også komme direkte fra emnets nyhedskilder, sandsynligvis med en webscraper som BeautifulSoup4.

Jeg er ikke rigtig lærertype (har aldrig været det), men jeg håber, at denne opdeling af svaret gav dig nogle svar på dine spørgsmål :slight_smile:

11 Synes om

Tak, dit svar stemte ret godt overens med min opfattelse af, hvad du har beskrevet. Derfor er bottens/algoritmes fordel (historisk databeregning baseret på den valgte model) i realtidshandel ikke så ligetil, hvis man mestrer TA godt. Den menneskelige hjerne er en kraftig processor, og ud over at analysere mønstre/indikatorer kan et menneske også behandle meget andet relateret til sagen (f.eks. nyheder, chat-diskussioner osv.).

Behandling og udnyttelse af online-data er i øjeblikket kun muligt, hvis du har råd til at betale for data (hvilket f.eks. på de amerikanske børser er meget dyrt). Derfor er kryptobørser ret stærkt bemandet med bots. Da der endnu ikke er meget fundament, følger og manipulerer botsene stærkt modeller af forskellige TA-indikatorer, som også TA-handlere følger. Men da botsene er hurtige, taber mennesket denne kamp, hvilket betyder, at man ofte er nødt til at handle på en lidt større tidsramme. For et par år siden handlede jeg meget efter 1-minuts flow.

Jeg ville selv finde på mange ting, der ville være nyttige i min egen handel. Jeg ville ikke have nogen auto-bot, der udfører handlerne, men snarere ny beregningsmæssig hjælp til at tolke situationer, når man leder efter entry/exit-punkter. Men på en måde, så de anvendte data er opdaterede, kombineret med historiske data. Jeg har en lang baggrund som programmør, så bots’ logik/algoritmetænkning er i den henseende ret let at forstå.

Men at behandle udelukkende historiske data og udlede nye ting derfra er ikke nødvendigvis en fordel, hvis man kender TA. Jeg kan selvfølgelig tage fejl, men det er det billede, der indtil videre har dannet sig hos mig. Et virkelig interessant emne. Fortsæt endelig med at beskrive sagen. Det faldt mig også ind, at programmøren selvfølgelig fastlåser, hvad botten gør. Altså selv de ma/ema krydsninger – hvor meget vægter man dem overhovedet.

9 Synes om

Ja. Den største fordel ville være, hvis man kunne få live-data direkte fra børsen. Det forhindrer dog ikke brugen af maskinlæring inden for analyse på store daglige/ugentlige tidsrammer – især når modellen er lavet, og det er nok at give den et par CSV-filer, og man ikke selv behøver at tænke for meget, da modellen allerede leverer resultaterne.

Jeg overvejede lidt at oprette en ny tråd på grund af analyseaspektet eller fortsætte under TA, men vi endte her :slight_smile:

edit. Forskelle og ligheder kan ses her

Virkelig interessante ting!

Hvor realtidsdata har du tænkt dig at skulle bruge? Gør en forsinkelse på et par sekunder noget? Jeg har selv bygget forskellige måder at indsamle data på til min egen kandidatafhandling, hvor min tanke er at kombinere forskellige utraditionelle datakilder med maskinlæring i forbindelse med investeringsbeslutninger. I den forbindelse har jeg også udviklet en bot, der henter realtidskurser fra en handelsplatform. Jeg har dog i mine egne beregninger foreløbigt estimeret, at jeg giver algoritmen cirka 30 sekunder til at tåle forsinkelser, der ikke skyldes den, og til at udføre beregninger.

5 Synes om

Den acceptable forsinkelse i intradag-data afhænger sandsynligvis af volatiliteten og volumen, der handles med. Antager man dog, at man vil outsource intradag-handel til en algo, så vælger man de aktier med den højeste volatilitet og volumen som handelsobjekter. Det er bare så svært at handle aktivt med objekter med lav volatilitet og volumen.

I aktier med høj volatilitet og volumen er der ofte også andre algoer, som man konkurrerer med i samme liga. Antager man, at algoerne bruger den samme strategi, så er den største konkurrencefordel i denne state-of-the-art algo-handel hos de algoer, der har de seneste data.

I betragtning af, at f.eks. Outokumpu og Stora Enso handles meget af algoer, undrer det mig, hvad kilden mon er for disse.

e. Den følelse, når svensk findes i AV, men ikke finsk :neutral_face:

{“content”:“Betydningen af at parse forskellige nyhedskilder vokser hele tiden. Nyhedskilder kan også købes, hvilket betyder, at de store aktører køber nyheder med en forsinkelse på et par millisekunder i forhold til andre (jeg kender ikke priserne, men det er sandsynligvis ikke billigt). Så er der Twitter, nyhedsvideoer osv. Der er ved at være mange forskellige kilder. Det er en betydelig udvikling at få parsingen til at fungere uden fejl, men jeg ved, at bots allerede gør dette i dag.”,“target_locale”:“da”}

3 Synes om

Det er rigtigt. Dog fokuserer nogle strategier og algoritmer (måske de mindre succesfulde) direkte på prisudviklingen og ignorerer nyheder. For ofte hører man gode eller dårlige nyheder, der ikke har nogen indflydelse på noget (se USA’s børser).

Jeg begyndte at teste en evolutionsmodel, dvs. ud fra princippet “survival of the fittest” for at se, hvordan sådan en model ville passe til at håndtere tal.

Målet er OMXH25 på et dagligt diagram (hvis jeg måske begynder at køre indekser). Dataframe fra starten af året med 2000 iterationer.


+5.929870 %

Jeg tænkte, at der måske var for mange iterationer i træningen, så jeg kørte med en lettere batch på 500.


+5.168139 %

Ikke den store forskel i resultatet. Det ser ud til, at i disse evolutionsmodeller, hvor et par “individer” spawnes, og kun den “bedste” får lov til at overleve og formere sig til næste runde, har iterationerne lidt mere betydning end i andre AI-modeller.

Netop denne AI-model kunne man undersøge lidt nærmere, selvom den stadig ikke overgår de grundlæggende strategier.

1 Synes om

Hej. . Det er ret fedt, du er et geni. TA har jeg også styr på, i hvert fald delvist. Men dette ser jeg som en glimrende mulighed for at tage tingene til næste niveau.

  1. Hvordan dannes overkøbt- og oversolgt-grænserne på billedet?
  2. Kunne købsstederne (salget) laves ud fra tre dages (eller to ugers) data, simpelthen pris og makrodata. Jeg vil gerne prøve?
  3. Kunne du lave købs- og salgssignaler, hvilken prisdata har du brug for, i hvilket format?
  4. Jeg kender godt en “maskinlærer”, som man fodrer med 4000 virksomheders kvartalsrapporter, og maskinen giver købs- og salgsforslag, men det er på en eller anden måde gammeldags. Kvartalsrapporterne er blevet fodret med i 20 år.(?)
  5. Jeg vil gerne købe disse grænseflader, eller de er allerede i brug med en forsinkelse på et millisekund.
    6 Det er godt som finsk øvelse, men målet er det amerikanske marked.
1 Synes om

Overkøbt/solgt-beregningen i et andet indlæg i denne tråd blev foretaget ved hjælp af matplotlib, ved at føde det med volumen, tid og prisudsving (åben, høj, lav, lukket). Dette skabte en udjævnet graf, hvor de grønne og røde vandrette linjer blev plottet ovenpå ved hjælp af numpys percentilfunktion. Dette beskriver ret godt markedets overreaktion i forskellige situationer. Hvis det ovenstående er hebraisk for dig, kan du tænke på det som en jordskælvmåler for aktiemarkedet.

Købs- og salgssteder kan laves ud fra alle typer data, så længe der er nok af det. For eksempel kan man få meget ud af dagens data i træningsfasen, hvis dataene opdeles i tidsrammer på et eller tre minutter. Altså at bryde et stort brød op i mindre stykker. Har prøvet det et par gange, men det er ret besværligt, hvis man altid skal hente dataene til CSV. Til træning vil man dog helst have så mange data som muligt. Intradagshandel fungerer bedst, hvis man direkte fra en API kan indføre relativt gode data i en dataframe, som opdateres live.

Hvis der er tale om en evolutionsmodel, og man fokuserer direkte på en funktionel model, er beslutningstagningen i denne model i høj grad baseret på at forudsige trenden ud fra prisbevægelser. I det tidligere evolutionseksempel blev der i begge tilfælde brugt et window-size på 30 dage i træningen, dvs. at dataene i den ene træning blev gennemgået 2000 gange og i den anden 500 gange i perioder på 30 dage. I evolutionen bruges en gulerodsmodel, dvs. at den bedst overlevende model får en belønning og et virtuelt klap på hovedet, før den kastes ind i den næste gladiatorkamp, og det samme gentages. I eksemplet gives belønningen til den model, der bedst forudsiger trenden, og som (nogenlunde) er i stand til at forudsige det korrekte trendskifte og forhåbentlig sælge eller købe på det rigtige tidspunkt.

Et eksempel på, hvordan modellen kan forbedres og tweakes efter ens egen risikovillighed, er ved at tilføje regler for handel, f.eks. selvom modellen er trænet til at handle efter egne købs- og salgsvurderinger, handler den ikke, før den får en bekræftelse fra en anden beregning. For eksempel kunne det se ud som nedenfor (flotte paint-copypaste-færdigheder, jeg ved det), hvor evolutionsmodellen og skildpadde-strategien er lagt oven på hinanden. Bemærk, hvor signalerne er ens for begge?


Dette betyder, at AI’en ser den kommende ændring (usikker, men mere sikker end Hr. og Fru Danmarks gæt) og får en bekræftelse fra en meget forsigtigere indikator.

Jeg har ikke overvejet at inkludere regnskaber eller lignende endnu. Jeg laver primært disse ting for at underholde mig selv i ferieperioden. Til vinter vil der nok være mere travlt i privatlivet igen.

Hvis du har brug for hjælp og tips, så spørg løs.

4 Synes om

Godmorgen!

Et par spørgsmål:

Kan man lave en tradingbot til en aktiesparekonto, eller er det kun muligt for en AO-konto (værdipapirkonto)?

Har nogen erfaring med at lave en bot til Nordnet/Nordea-konti? Eller er det overhovedet muligt at lave en bot til disse platforme?

Jeg drømmer om at lave min egen bot i enten C# eller Python. Projektets mål er at udvikle mine egne kodningsfærdigheder inden for et meningsfuldt tema. Hvis du har nogle pro-tips at dele, er de selvfølgelig velkomne! Hilsen. Læs brugernavnet

Det ville kræve en API (Application Programming Interface) at lave en bot. I øjeblikket tilbyder Nordnet kun en test-API, som i øvrigt virker til at være ret gammel. Jeg har ikke selv fået disse “lege”-ordrer til at virke via API’en, men alle ordrer ender i et limbo. Ellers fungerer API’en ifølge vejledningen.

Jeg spurgte Nordnets kundeservice, om de måske havde en API under udvikling. Svaret var, at det havde de ikke, og det var heller ikke planlagt at implementere en fungerende en.

1 Synes om

Tak for svaret. Måske forbliver det projekt en drøm. Har I andre ideer til, hvordan man kan kombinere kodning og investering?

Jeg har selv engang oprettet et link fra Google Finance til mine egne sider; der er en åben API med 15 minutter forsinkede kurser. Dette var ikke egentlig kodning, men snarere dataindsamling til mine egne sider, hvor kursdata blev kombineret med de seneste balance- og andre oplysninger, og nøgletal blev beregnet.

Google Finances funktion var dog lidt underlig/upålidelig i WordPress, så jeg stoppede projektet.

3 Synes om

Interessant. Jeg spekulerer på, om jeg skulle lave min egen hjemmeside, hvor jeg ved hjælp af en bot kunne samle nyheder relateret til mine egne investeringer.

Jeg sætter måske lidt spørgsmålstegn ved de handelsbots, der præsenteres i tråden, i den forstand, at jeg er usikker på, om man kan være sikker på, at træningen ikke har overtilpasset botten til at svare korrekt på dataene. Jeg kan ikke sige, at jeg ved meget mere om AI end et par underholdende YouTube-videoer, men generelt bør AI ikke trænes med de data, den testes med. Og for eksempel er en lineær regression for Nokia-aktien selvfølgelig let at lave efterfølgende. Vil aktien dog følge den samme tendens i fremtiden?

Der var dog nogle interessante observationer. For eksempel prisernes sæsonbetonede karakter. Disse kunne bruges godt i handel.

Om API’en: Jeg har bemærket, at Nordnets API’er er ret pæne bag brugergrænsefladen, selvom der ikke er officiel dokumentation for dem. Det ville ikke være særlig svært at bygge noget ovenpå dem. Det bryder sandsynligvis Nordnets brugsbetingelser, men det er ikke så vigtigt.

Nogle gange har jeg overvejet at lave en terminalgrænseflade til Nordnet, så jeg hurtigt kunne foretage et par handler og tjekke porteføljestatussen fra kommandolinjen :smiley:. Ikke at en tekstbaseret brugergrænseflade ville fungere særlig godt for aktier, hvor grafik er en ret central del. Men man kunne få lidt retro-stemning – handel med stil.

Nogle små ting kunne også automatiseres. For eksempel lavede jeg i dag mange parhandler mod indekset (aktie long, indeks short), så jeg kunne lige så godt have bedt botten om at tage short-positioner i porteføljen i et omfang, så nettokapitalvægten holder sig under grænseværdien.

Et andet sted for automatisering ville være stop loss for certifikater og andre gearede produkter.

4 Synes om