POLARIS / EEN ONDERZOEKSTRAJECT

Onze weg door artificiële intelligentie.

We begonnen met lokale modellen rond marktdata. Daarna verkenden we taalmodel-API's en chartbeelden. Hier vertellen we waaraan we werkten, waarom onze vragen veranderden en wat iedere aanpak aan ons begrip toevoegde.

Dit is het verhaal van ons ontwikkelwerk. De hoofdstukken beschrijven methoden en ervaring, geen gemeten handelsresultaten.

Wat betekende ‘onze eigen AI bouwen’ eigenlijk?

We begonnen met een lokale intelligentielaag. Eerst moesten we die ambitie omzetten in vragen die een model uit data kon leren.

Aanvankelijk wilden we marktdata voorbereiden, zelf modellen trainen en hun output in onze Pythonomgeving gebruiken. Met eigen AI bedoelden we gespecialiseerde modellen voor numerieke vragen, niet een algemeen taalmodel vanaf nul trainen. Dat vraagt een andere schaal van data en rekenkracht.

Het werk maakte de vraag concreter: één candle, een reeks observaties of afgeleide kenmerken? Richting voorspellen of een bereik schatten? We moesten targets kiezen, invoer ordenen en transformaties consistent houden voordat een opgeslagen model betekenis kreeg.

We verkenden LSTMs voor sequenties, bomen voor kenmerken en Prophet voor tijdreeksen. Later stuurden we context via API's naar vooraf getrainde taalmodellen en onderzochten we chartbeelden met lokale computervisie. Elke tak bood een ander soort gereedschap.

We bleven de taak benoemen. Lokaal zegt waar de berekening plaatsvindt, niet of een model getallen leert, tekst interpreteert of objecten vindt. Dat onderscheid loopt door deze hoofdstukken.

Werkstroom / 01

Drie routes naar AI

Afzonderlijke aanpakken, geen gecombineerd model.

Een reeks leren lezen in plaats van één candle

Met LSTMs werkten we aan een korte observatiegeschiedenis en drie uitkomsten: neerwaarts, neutraal of opwaarts.

We wilden laten zien hoe metingen zich ontwikkelden, in plaats van de laatste candle los te bekijken. LSTMs verwerken geordende observaties met een interne toestand. We maakten rollende vensters om die geschiedenis aan te bieden.

De gearchiveerde classificatiemodellen gebruiken 30 observaties met elk 689 kenmerken. Dat zijn historische modelafmetingen, geen handelsinstellingen. Kolomvolgorde en de bijbehorende fitted scaler moesten behouden blijven.

We definieerden ook de drie klassen. Hun betekenis hangt af van de horizon en de regels waarmee de labels zijn gemaakt. Andere labels stellen een andere vraag, ook als de netwerkvorm gelijk blijft.

We werkten met een compacte en een grotere gestapelde LSTM. Beide leveren drie klassescores, geen volledig toekomstig koerspad. Daardoor werden featurelijst, scaler en targetdefinitie even belangrijk als de netwerkfile.

Werkstroom / 02

Van historiek naar een toestand

Klassescores, geen handelsinstructies.

Meer dan richting: de omvang van een beweging beschrijven

We vroegen ook om numerieke hoeveelheden om de mogelijke omvang van een beweging te onderzoeken.

Een richting liet een deel van onze vraag open. Twee stijgingen kunnen sterk verschillen in grootte en tussentijds verloop. We onderzochten regressie met twee uitkomsten in plaats van drie klassescores.

De varianten gebruiken 240 kenmerken en 30 of 60 observaties, met gestapelde LSTMs en attention-achtige onderdelen. Die veranderen de aangeboden historie en weging van representaties, maar bepalen niet vanzelf de betekenis en eenheid van de output.

We werkten aan inputschaling en de terugvertaling van uitvoer. Andere scripts gebruiken een opgeslagen featureselector en één LSTM-tijdstap; dat is een aparte formulering. Werkrapporten zetten geobserveerde maximale en minimale verschillen naast voorspelde waarden.

Bereikschatting bracht ons bij volgorde. Hetzelfde minimum en maximum kunnen in omgekeerde volgorde worden bereikt. De illustratie maakt duidelijk waarom twee grenswaarden niet het hele pad reconstrueren.

Werkstroom / 03

Van historiek naar twee waarden

Twee extremen reconstrueren het koerspad niet.

Waarom het onderzoek niet bij neurale netwerken stopte

XGBoost, CatBoost en kwantielen verbreedden de soorten numerieke vragen die we konden stellen.

We werkten ook met boommodellen. Hun opeenvolgende verdeling van kenmerken verschilt van een LSTM die geordende historie verwerkt, zelfs wanneer de marktmetingen dezelfde oorsprong hebben.

We bouwden services die meerdere modelfamilies laden en output via een gedeelde interface aanbieden. Dat maakte vergelijking in één workflow mogelijk, maar bewees nog niet hoe combineren moest of dat een ensemble beter was.

Eén interface gebruikte het 20e, 50e en 80e percentiel. De middelste waarde is de mediaan. Tussen 20% en 80% ligt nominaal 60% centrale dekking als de kwantielen gekalibreerd zijn; dat is geen garantie van 80% zekerheid.

We konden daardoor een klasse, puntschatting of kwantielband kiezen volgens de onderzoeksvraag. Deze uitkomsten beschrijven verschillende aspecten en zijn niet uitwisselbaar.

Bronnen bij de methodeXGBoost · kwantielregressie
Werkstroom / 04

Andere modellen, andere uitkomsten

Parallelle routes betekenen geen automatische consensus.

Prophet en ARIMAX: een andere taal voor tijd

Tijdreeksmodellen naast feature-intensieve modellen maakten tijd en voorspelhorizon concreter voor ons.

Naast matrices en rollende vensters onderzochten we een directe tijdreeksformulering. Ons Prophetscript gebruikte XAUUSD-waarnemingen per 15 minuten en vroeg vijf toekomstige observaties.

Prophet biedt trend en optionele seizoenscomponenten. Vijf stappen van 15 minuten zijn 75 minuten tijdens een doorlopende sessie. Sluitingen en ontbrekende observaties blijven aparte vragen: vijf rijen zijn niet altijd onafgebroken kloktijd.

Het archief bevat ook een ARIMAX-gelabeld rapport met geobserveerde en voorspelde maximale en minimale verschillen. ARIMAX combineert autoregressie en externe verklarende variabelen. Het rapport bewijst niet alle keuzes achter de modellering; die leiden we niet uit de bestandsnaam af.

Het wisselen tussen methoden veranderde onze vragen. Bij een sequentienetwerk kiezen we de aangeboden featurehistorie; bij een tijdreeksmodel is tijdstructuur deel van de formulering. Beide vragen een precieze betekenis van 'vooruit'.

Werkstroom / 05

Tijd geeft de voorspelling betekenis

Vijf M15-stappen; het ARIMAX-rapport staat apart.

Van een model trainen naar een gesprek voorbereiden

Gehoste taalmodellen verlegden ons werk naar context verzamelen, verzoeken formuleren en antwoorden interpreteerbaar bewaren.

Bij taalmodel-API's gebruikten we reeds door leveranciers getrainde modellen. Ons werk zat rond die verbinding: informatie verzamelen, selecteren en een vraag stellen waarvan we de respons konden teruglezen.

Onze Pythonpipeline combineerde MT5-candles op M5, M15 en M30, een actuele tick en gedateerde openbare analistenposts. Prijzen waren observaties; commentaar bevatte interpretaties. Bron en tijd bleven belangrijk bij verschillende of tegenstrijdige uitspraken.

We vroegen om JSON met scenario's, voorwaarden, invalidatie en een optie om niet te handelen. Dat helpt softwareverwerking, maar JSON vragen valideert de betekenis niet. Het onderzoeksscript bewaarde en printte de respons; het was geen bewijs van een volledige uitvoeringscontroller.

We hoefden het onderliggende model niet zelf te hebben getraind om zinvol ontwikkelwerk te doen. Bewijs kiezen, de vraag formuleren en de respons vastleggen bleken op zichzelf belangrijke werkzaamheden.

Werkstroom / 06

Van waarnemingen naar een antwoord

Context en antwoord, geen uitvoeringsbesturing.

Wat als het model naar de grafiek zelf kijkt?

We verkenden een lokale YOLOv8-route waarbij de chartafbeelding zelf invoer werd.

We herkennen in grafieken ruimtelijke relaties tussen candles, bewegingen en structuren. We wilden die representatie rechtstreeks onderzoeken en namen een lokale YOLOv8-aanpak op in ons werk.

Een detector lokaliseert en classificeert zichtbare objecten met vakken en scores. We moesten nadenken over consequent te labelen chartstructuren. Een vorm herkennen verschilt van een screenshot beschrijven of een toekomstige koers voorspellen.

Zoom, uitsnede, candlebreedte, kleuren en annotaties veranderen pixels. We moesten weergavekeuzes onderscheiden van marktinformatie. Voorbeelden zonder de gezochte structuur zijn eveneens nodig; niet ieder beeld hoeft een detectie op te leveren.

Detecties gebruiken pixels, terwijl trading prijs en tijd gebruikt. De schaal en coördinaten verbinden die beschrijvingen. Daarom behandelen we visie als een aparte tak met eigen voorbereiding en interpretatie.

Bronnen bij de methodeUltralytics · objectdetectie
Werkstroom / 07

Van beeld naar zichtbare objecten

Schematische kaders, geen echte detectie-uitkomst.

De brug tussen MT5 en Python

We werkten aan de verbinding waarmee MT5-observaties en Pythonmodellen informatie met dezelfde betekenis uitwisselen.

MT5 bevatte marktwaarnemingen en handelslogica, Python de onderzoekstools en modellen. Verbinden was meer dan getallen versturen: we moesten afspreken wat de invoer en het antwoord betekenden.

We ontwikkelden inferencevarianten voor combinaties van LSTM-, boom- en kwantielmodellen. Iedere variant bereidt waarden voor en retourneert output. Dit integratiewerk verschilt van training, omdat ieder model een eigen invoerstructuur verwacht.

Een featurelijst bewaart kolombetekenis, een inputscaler de transformatie en een outputscaler de regressie-eenheden. Versie, vensterlengte, instrument en timeframe moeten samen kloppen. Een ontvangen antwoord bewijst die overeenstemming niet.

We gingen daarom naar de volledige modelbundel kijken. Hier leggen we de publieke structuur uit terwijl serviceadressen, accountkoppelingen en operationele instellingen privé blijven.

Werkstroom / 08

Eén verzoek, één antwoord

De service en modelbundel blijven onderscheiden.

Het minder zichtbare werk: datasets, selecties en rapporten

We beschrijven de datasets, kleine hulpprogramma's en rapporten achter het zichtbare modelwerk.

Een netwerkbestand of voorspelling is zichtbaar, maar veel werk zat ervoor en erna. We maakten featuretabellen met tijd en OHLC, aparte targets, extracties en voorspellingsexports om de onderzoekstakken samenhangend te houden.

Eén script herlaadt een featureselector voor LSTM; een ander de benoemde XGBoost-featurelijst. Beide bewaren tijd en een referentieveld naast twee outputs. Een extractietool maakt een begrensd werkbestand uit de dataset.

CSV en Excel hielpen ons buiten de trainingscode kijken. Sommige exports bevatten voorspellingen, andere ook waargenomen maximale en minimale verschillen. UTF-16 en UTF-8 vroegen eveneens aandacht. We delen de structuur, geen private rijen of succesclaims uit bestandslabels.

De rode draad is genoeg context bewaren om een antwoord te begrijpen. Lokaal gaat dat om data en transformaties; bij een provider om bronnen, prompt en respons. Beide vragen zorg rond de zichtbare output.

Werkstroom / 09

Bewaar het onderzoeksspoor

Bewaar de invoer naast de uitkomst.

We kwamen steeds terug bij dezelfde vraag: wat betekent deze output eigenlijk?

Getallen, taal en beelden gaven ons verschillende manieren om naar een markt te kijken. Ze brachten ons ook bij de informatie achter een antwoord: de bron, het beschikbare tijdstip en de interpretatie elders in het systeem. Dat verbindt het werk in dit notitieboek.

Praat over het onderzoek
Neem contact op met POLARIS via WhatsApp