BIAP kombinerer regnskapsdata, markedsdata og AI-agent-analyse for iranske aksjer notert på Teheran-børsen (TSE). Prosjektet er delt i to samarbeidende deler, bygget og driftet av hver sin part — samme «to-repo»-mønster Khabat bruker i andre av sine AI-drevne systemer.
Samarbeidet
Khabat Setaei
Bygger beslutningslaget: et team av AI-agenter som vurderer en aksje fra flere vinkler og smelter vurderingene sammen til én anbefaling med begrunnelse.
- Fundamental-, risiko-, prognose- og sammenligningsagent
- Gjenbruker en «trust/maturity»-vektingsmodell hentet fra et annet av Khabats agent-systemer, tilpasset til å vurdere kjøp/hold/selg i stedet for å allokere kapital
- FastAPI-tjeneste som leverer anbefalinger per aksjekode
Dr. Nasrin Dadashi
Bygger og drifter brukerflaten og datainntaket: mobilappen kundene faktisk bruker, og serveren som holder den forsynt med live kursdata fra børsen.
- Mobilapp (Expo/React Native): innlogging, watchlist, aksjedetaljer, CSV-eksport
- Backend-server som henter og leverer live TSE-kurser
- Egen infrastruktur og drift, uavhengig av analyse-laget
Hvordan analysen fungerer
Målet er at en anbefaling ikke skal komme fra én enkelt modell, men fra flere agenter som er uenige med hverandre inntil de er ferdig vurdert — og at hele veien fra data til anbefaling er sporbar.
Agentteamet
Vurderingene veies sammen med en modell der hver agent har en «tillit»-score som endres over tid, basert på hvor treffsikker den historisk har vært — og en «modenhet»-status (fra eksperimentell til produksjonsklar) som avgjør hvor stor innflytelse agenten får på sluttresultatet. En agent starter forsiktig og får mer å si etter hvert som den har bevist seg.
"symbol": "فولاد",
"action": "BUY",
"confidence": 0.87,
"reason": [
"Inntektsvekst",
"Forbedret driftsmargin",
"Positiv kontantstrømtrend",
"Bekreftet prismomentum"
]
}
Forenklet eksempel på formatet en anbefaling kommer i i dag — uten ordrefelter. Feltene under («veien videre») er arkitektur, ikke noe som sendes til en megler.
Fra anbefaling til utførelse
Et eget risiko- og utførelseslag står mellom analysen og en faktisk ordre, slik at en feil i analysen aldri kan føre direkte til en handel. De to første av tre driftsmoduser er nå bygget som kode i analysis/execution.py, med egne API-endepunkter (POST /orders/preview, POST /orders/submit):
Paper
Simulerer en ordre og returnerer en PAPER_FILLED-kvittering. Ingen broker-kall sendes noensinne i denne modusen.
Approval
Oppretter en ordre med status PENDING_APPROVAL — venter på et menneske. Fortsatt ingen broker-kall går ut.
Auto
Eksplisitt blokkert i koden selv (API-et avviser forsøk på denne modusen) inntil risikolag, ekte megler-tilkobling og godkjenning er på plass.
Et gjennomgående prinsipp i designet: analyse-agenten skal aldri ha direkte tilgang til en meglers API. Mellom en anbefaling og en ordre skal det alltid stå en egen risikosjekk og et eget utførelseslag.
Status nå
- Mobilapp live: biap.dadashi.no henter og viser sanntidskurser fra Teheran-børsen (TSETMC), med innlogging, watchlist, aksjedetaljer og CSV-eksport.
- Analyse-agentene bygget: beslutningslaget med de fire agentene og tillit/modenhet-vektingen er bygget og internt testet, foreslått som et tillegg til den eksisterende datakontrakten mellom app og backend.
- Execution-laget bygget.
POST /orders/previewogPOST /orders/submiter implementert — paper simulerer, approval oppretter en ventende ordre, AUTO er eksplisitt blokkert uansett risiko-innstillinger. - Persistent audit-logg og risk policy bygget. Ordre-forsøk lagres nå i SQLite (ikke lenger bare i minnet), med audit-events for både godkjente og avviste forsøk. Et eget risikolag (
analysis/risk.py) håndhever kill switch, maks antall aksjer, maks ordreverdi, daglig notional-grense, limit-price-avvik mot referansepris og minste styrke på kjøps-/salgssignalet — uavhengig av selve AUTO-sperren. Nye endepunkter:GET /risk/status,GET /orders/{intent_id},GET /audit/orders,GET /audit/events. - Koblet til eksisterende TSETMC-backend. FIN-laget henter nå ekte kurser direkte fra
biap.dadashi.no/api/stock/watchlist— samme kilde som mobilappen — i stedet for å bygge en ny TSETMC-ingestion. Verifisert live mot en ekte aksje (فولاد). - Anbefaling kjører på ekte data, men avventer CODAL.
/stock/recommendation/{code}gjenkjenner nå ekte TSETMC-koder og viser live pris i svaret. Siden fundamentaldata (CODAL) og utvidet markedsdata (52-ukers spenn, P/E, volum) fortsatt mangler, svarer agentene ærlig med nøytral HOLD og 0% konfidens i stedet for å gjette — testet ende-til-ende, inkludert at risikolaget korrekt avviser et kjøpsforsøk på en slik anbefaling. - CODAL-adapter: ingen bekreftet ingestion-path ennå — bygges som egen read-only datasource når vi vet hvordan den eksisterende backend-en selv henter TSETMC-data.
- Meglertilkobling: ingen iransk megler-API er bekreftet ennå. Flere kandidater med algoritmisk handel er kartlagt (blant annet en med et dokumentert API-spor), men ingen avtale eller tilkobling er på plass.
- Mobil-UI foreslått: åpnet en pull request på mobilappen som viser anbefalingen og en «Simuler i Paper-modus»-knapp på aksjedetalj-siden. Rører ikke eksisterende funksjonalitet — venter på Nasrins gjennomgang.
- Ingen automatisert handel skjer i dag. BIAP er, og forblir inntil videre, et anbefalingsverktøy — ikke et system som selv sender ordre.
XS227/BIAP — selve driftsettingen på server gjøres av Nasrin. Deretter: CODAL-adapter → utvidet markedsdata → autentisering/eierskap/idempotency → PaperBroker-adapter. Ingen ekte meglerkobling og ingen AUTO før alt dette er på plass.