Saturday 25 November 2017

Hft Trading System


High Frequency Trading - HFT. Hva er High Frequency Trading - HFT. High-Frequency Trading HFT er en program trading plattform som bruker kraftige datamaskiner til å gjennomføre et stort antall bestillinger med svært høye hastigheter. Det bruker komplekse algoritmer for å analysere flere markeder og Gjennomføre ordrer basert på markedsforhold Typisk er handelsfolk med de raskeste utføringshastighetene mer lønnsomme enn forhandlere med langsommere utførelseshastigheter. BREAKING DOWN High Frequency Trading - HFT. Høyfrekvenshandel ble populær når utveksling begynte å tilby incentiver for bedrifter å legge til Likviditet til markedet For eksempel har New York Børs NYSE en gruppe likviditetsleverandører kalt Supplemental Liquidity Providers SLPs som forsøker å legge til konkurranse og likviditet for eksisterende noteringer på børsen. Som et incitament til selskaper betaler NYSE et gebyr eller rabatt for å gi likviditeten I juli 2016 var den gjennomsnittlige SLP-rabatten 0 0019 for NYSE - og NYSE MKT-børsnoterte verdipapirer på NYSE Med m illjoner av transaksjoner per dag, resulterer dette i en stor del av fortjenesten SLP ble introdusert etter sammenbruddet av Lehman Brothers i 2008, da likviditet var en stor bekymring for investorer. Fordelene ved HFT. Den største fordelen med HFT er at den har forbedret marked likviditet og fjernede budspørsmål som tidligere hadde vært for små. Dette ble testet ved å legge til avgifter på HFT, og dermed økte budspørsmålene. En studie vurderte hvordan kanadiske budspørsmål endret seg da regjeringen introduserte gebyrer på HFT , og det ble funnet at budspørsmål økte med 9.Critiques of HFT. HFT er kontroversielt og har blitt møtt med hard kritikk. Det har erstattet en stor mengder meglere og bruker matematiske modeller og algoritmer til å ta beslutninger, menneskelig avgjørelse og samspill ut av ligningen Beslutninger skjer i millisekunder, og dette kan føre til store markedsbevegelser uten grunn For eksempel, den 6. mai 2010, Dow Jones Industrial Average DJIA led den største intradag punktet slippe noensinne, redusert 1000 poeng og droppe 10 på bare 20 minutter før stige igjen En regjeringsundersøkelse skylden en massiv ordre som utløste en salg av for ulykken. En ytterligere kritikk av HFT er at det gir store bedrifter mulighet til å tjene på bekostning av de små gutta, eller institusjonelle og retail investorer En annen stor klage om HFT er likviditeten fra HFT er spøkelseslikviditet, noe som betyr at det gir likviditet som er tilgjengelig for markedet ett sekund og borte det neste, og hindrer handelsmenn i å være faktisk i stand til å handle denne likviditeten. Hva er høyfrekvent trading. High Frequency trading er en automatisert handelsplattform som brukes av store investeringsbanker hedgefond og institusjonelle investorer som bruker kraftige datamaskiner til å gjennomføre et stort antall bestillinger med ekstremt høye hastigheter Disse høyfrekvent trading plattformer tillater handelsmenn å utføre millioner av ordrer og skanne flere markeder og utvekslinger om noen sekunder, og gir dermed institusjonene som bruker plattformene en stor fordel i det åpne markedet. Systemene bruker komplekse algoritmer for å analysere markedene og er i stand til å oppdage nye trender i en brøkdel av et sekund. Ved å kunne gjenkjenne skift i markedet, handler handel systemer sender hundrevis av kurver av aksjer ut på markedet på budspørsmål som er fordelaktige for handelsmennene. Ved å i hovedsak forutse og slå trendene til markedet, kan institusjoner som implementerer høyfrekvent handel, få gunstig avkastning på handler de gjør av essensen av deres bud-ask-spredning, noe som resulterte i betydelige overskudd. Høyfrekvenshandel ble vanlig sted i markedene etter introduksjon av incentiver tilbys av børser for institusjoner for å tilføre likviditet til markedene. Ved å tilby små insentiver til disse beslutningstakere får børser økt likviditet, og institusjoner som gir likviditeten ser også økt fortjeneste på hver handel de gjør, på toppen av deres gunstige sprekker Selv om spreads og insentiver utgjør en brøkdel av 1 cent per transaksjon, multipliserer det med et stort antall bransjer per dag, det gir betydelig fortjeneste for høyfrekvente forhandlere. Mange ser høyfrekvent handel som uetisk og en urettferdig fordel for store firmaer mot mindre institusjoner og investorer For å prøve hånden din på nettbasert handel, les Stimulere dine ferdigheter med simulert handel og sjekk ut Investopedia Stock Simulator for å handle aksjer uten risiko. Finn ut hvilke faktorer som påvirker budspørsmålbredde Lær hvorfor enkelte aksjer har store sprer seg mellom bud og spørrepriser Les svar. Les mer om budspørsmål og hvorfor aksjer med høyt nivå av likviditet og lav volatilitet vanligvis har smal Les svar. Stort utveksling er satt opp for å hjelpe meglere og andre spesialister i å koordinere bud og spør prisene Budprisen er Read Answer. Likviditet refererer til hvor enkelt det er å kjøpe og selge aksjer uten å se en endring i pri ce Hvis du for eksempel kjøpte aksjer Les svar. En handelsplattform er et stykke programvare som fungerer som en kanal for informasjon mellom en handelsmann og en megler. En handel Les svar. Algoritmiske handelsstrategier, for eksempel automatisk sikring, statistisk analyse, algoritmisk utførelse, direkte markedsadgang og høyfrekvent handel, kan utstede prisinnstøtninger som pose. Algorithmic trading er prosessen med å bruke datamaskiner til å plassere handler for å generere overskudd med en hastighet og frekvens som er utenfor personens evne. En i dybde se på hvordan høyfrekvenshandel fungerer og hvem spillerne er. Mye av veksten i algoritmisk handel i Forex-markeder de siste årene har vært på grunn av algoritmer som automatiserer visse prosesser og reduserer timene som trengs for å utføre utenlandsk valuta. Automatiserte handelssystemer minimere følelser, tillate raskere ordreinngang, føre til større konsistens og løse pilotfeilproblemer. Systemhandlere deler sin tid mellom handel, dev eloping, backtesting, optimalisering og fremover testing, for å skape levedyktige og høy sannsynlighet trading systemer. Er markedet likviditet levert av høy frekvens trading en realitet eller en illusjon. Den maksimale mengden penger som USA kan låne Gjeldstaket ble opprettet under Den andre frihetsobligasjonsloven. Renten som et institusjonsinstitusjon gir midler til ved hjelp av Federal Reserve til en annen depotinstitusjon. 1 Et statistisk mål for spredning av avkastning for en gitt sikkerhets - eller markedsindeks. Volatilitet kan enten måles. En handling Den amerikanske kongressen vedtok i 1933 som Banking Act, som forbød kommersielle banker å delta i investeringen. Nonfarm lønn refererer til hvilken som helst jobb utenfor gårder, private husholdninger og nonprofit sektor Den amerikanske Bureau of Labor. The valuta forkortelse eller valutasymbol for Den indiske rupee INR, den indiske valutaen Rupee består av 1. Denne posten vil detaljere hva jeg gjorde for å lage ca 500k fra høy h-frekvenshandel fra 2009 til 2010 Siden jeg handlet helt uavhengig og ikke lenger kjører programmet, er jeg glad for å fortelle alt. Min handel var for det meste i Russel 2000 og DAX futures kontraktene. Nøkkelen til suksessen min tror, ​​var ikke i en sofistikert finansiell ligning, men heller i den generelle algoritmenes design som bundet sammen mange enkle komponenter og brukt maskinlæring for å optimalisere for maksimal lønnsomhet. Du vant t trenger å vite en sofistikert terminologi her fordi når jeg satte opp mitt program var det alt basert på intuisjon Andrew Ng s fantastiske maskinlæringskurs var ikke tilgjengelig ennå - btw hvis du klikker på denne lenken, vil du bli tatt til mitt nåværende prosjekt CourseTalk, et gjennomgangsside for MOOCs. Først vil jeg bare vise at suksessen min ikke bare var et resultat av flaks My Programmet gjorde 1000-4000 handler per dag halvt halvt, halvt kort og kom aldri inn i stillinger på mer enn noen få kontrakter om gangen. Dette betydde tilfeldig lykke fra en bestemt handel avera Gikk ut ganske fort Resultatet var at jeg aldri mistet mer enn 2000 på en dag og aldri hatt en tapende måned. EDIT Disse tallene er etter betalende provisjoner. Og her er diagrammet for å gi deg en følelse av den daglige variasjonen. Merk dette utelukker de siste 7 månedene fordi - som tallene sluttet å gå opp - mistet jeg motivasjonen min for å komme inn i dem. Min trading background. Prior å sette opp mitt automatiserte handelsprogram Jeg hadde 2 års erfaring som en manuell daghandler Dette var tilbake i 2001 - det var de første dagene med elektronisk handel og det var muligheter for scalpers å tjene gode penger jeg kan bare beskrive hva jeg gjorde som besluttet å spille et videospill gambling med en antatt kanten Å være vellykket mente å være rask, være disiplinert og ha en god intuitiv mønstergenkjenningsevne jeg klarte å gjøre rundt 250k, betale av studielånene og få penger igjen Win. Over De neste fem årene vil jeg starte to oppstart, og hente opp noen programmeringsevner underveis. Det ville ikke være før slutten av 2008 at jeg ville komme tilbake til handel. Med penger som var lavt fra salget av min første oppstart, handel tilbød håper på noen raske penger mens jeg fant ut mitt neste trekk. I 2008 var jeg manuelt dag trading futures ved hjelp av programvare kalt T4 Jeg d hadde lyst på noen tilpassede ordreoppføring hurtigtaster, så etter å ha oppdaget T4 hadde en API, tok jeg utfordringen av å lære C programmeringsspråket som kreves for å bruke API-en, og fortsatte å bygge meg noen hurtigtaster. Etter at jeg hadde fått føttene våte med API-en, hadde jeg snart større ambisjoner jeg ønsket å lære datamaskinen å handle for meg. APIen ga både en strøm av markedsdata og en enkel måte å sende ordre til utvekslingen - alt jeg måtte gjøre var å lage logikken i midten. Deretter er et skjermbilde av et T4-handelsvindu. Det var kult at når jeg fikk jobbe med programmet, klarte jeg å se på datahandelen på nøyaktig samme grensesnitt. Se på virkelige bestillinger som springer inn og ut av seg selv med mine virkelige penger, var både spennende og skummelt. Utformingen av min algoritme. Fra begynnelsen var målet mitt å sette opp et system slik at jeg kunne være rimelig co selv om jeg tjener penger før jeg har gjort noen live-handel. For å oppnå dette trengte jeg å bygge et handelssimuleringsramme som ville - så nøyaktig som mulig - simulere live trading. Mens handel i live-modus krevde behandling av markedsoppdateringer strømmet gjennom API, simuleringsmodus kreves å lese markedsoppdateringer fra en datafil For å samle inn disse dataene, konfigurerer jeg den første versjonen av programmet mitt for å bare koble til API-en og registrere markedsoppdateringer med tidsstempler. Jeg endte opp med å bruke 4 uker av nyere markedsdata for å trene og teste systemet mitt på . Med et grunnleggende rammeverk på plass, hadde jeg fortsatt oppgave å finne ut hvordan jeg kunne skape et lønnsomt handelssystem. Som det viser seg, vil algoritmen min bryte ned i to forskjellige komponenter, som jeg vil utforske på nytt. trades. Predicting price movements. Kanskje en åpenbar komponent i ethvert handelssystem er å være i stand til å forutsi hvor prisene vil flytte Og mitt var ikke noe unntak jeg definerte gjeldende pris som gjennomsnittet av innsiden bud og innside tilbudet og jeg satte målet om å forutsi hvor prisen ville være i de neste 10 sekunder min algoritme ville trenge å komme opp med denne prediksjon øyeblikk for øyeblikk gjennom trading day. Creating optimalisering indikatorer. Jeg opprettet en håndfull indikatorer som viste seg å ha en meningsfylt evne til å forutsi kortvarige prisbevegelser. Hver indikator produserte et tall som var enten positivt eller negativt. En indikator var nyttig dersom det ofte ikke var et positivt tall som korresponderer med markedet og et negativt tall korresponderer med markedet går ned. Min system tillot meg å raskt bestemme hvor mye prediktiv evne noen indikator hadde, så jeg var i stand til å eksperimentere med mange forskjellige indikatorer for å se hva som fungerte. Mange av indikatorene hadde variabler i formlene som produserte dem og jeg var i stand til å finne de optimale verdiene for de variablene ved å gjøre side om side sammenligninger av resultater oppnådd med varierende verdier. dicatorer som var mest nyttige var alle relativt enkle og var basert på de siste begivenhetene i markedet jeg var trading, samt markedene for korrelerte verdipapirer. Lag nøyaktige prisbevegelsesutsikter. Det var ikke nok indikatorer som bare forutslo en opp - eller nedprisbevegelse. Jeg trengte å vite nøyaktig hvor mye prisbevegelse var spådd av hver mulig verdi av hver indikator jeg trengte en formel som ville konvertere en indikatorverdi til en prisforutsigelse. For å oppnå dette spåte jeg spådde prisforskyvninger i 50 buckets som avhenger av området som indikatorverdien falt i Dette produserte unike spådommer for hver bøtte som jeg så kunne grave i Excel Som du kan se, forventes prisendringen som indikatorverdien øker. Basert på en graf som dette, var jeg i stand til å lage en formel for å passe til kurven I begynnelsen gjorde jeg denne kurven montering manuelt, men jeg skrev snart opp noen kode for å automatisere denne prosessen. Merk at ikke alle indikatorkurverne hadde de samme s hape Merk også at skuffene ble logaritmisk fordelt slik at dataene spredes jevnt. Endelig merk at negative indikatorverdier og deres tilsvarende nedadgående prisforutsigelser ble vendt og kombinert med de positive verdiene. Min algoritme behandlet opp og ned nøyaktig samebining indikatorene for en enkelt prediksjon. En viktig ting å vurdere var at hver indikator ikke var helt uavhengig Jeg kunne ikke bare legge opp alle spådommene som hver indikator gjorde hver for seg. Nøkkelen var å finne ut den ekstra prediktive verdien som hver indikator hadde utover det som allerede var spådd Dette var ikke vanskelig å implementere, men det innebar at hvis jeg var kurvepassende flere indikatorer samtidig, måtte jeg være forsiktig med å skifte en ville påvirke forutsigelsen til en annen. For å kurve passe alle indikatorene samtidig sett opp optimalisereren for å gå bare 30 av veien mot de nye prediksjonskurverne med hvert pass. Med dette 30 hoppet fant jeg at prediksjonskurverne ville stabilisere seg innenfor noen få passeringer. Med hver indikator som nå gir oss det s tilleggspris prediksjon, kan jeg bare legge dem opp for å produsere en enkelt prediksjon av hvor markedet vil være om 10 sekunder. Hvorfor forutsi priser er ikke nok. Du tror kanskje at med denne kanten på markedet var jeg gull. Men du må huske på at markedet består av bud og tilbud - det er ikke bare en markedspris. Suksess i høyfrekvent handel kommer ned til å få gode priser og det er ikke så lett. Følgende faktorer gjør det vanskelig å skape et lønnsomt system. Med hver handel måtte jeg betale provisjoner til både megler og bytte. Spredningsforskjellen mellom høyeste bud og laveste tilbud betydde at hvis jeg bare skulle kjøpe og selge tilfeldig vil jeg miste massevis av penger. Mesteparten av markedsvolumet var andre bots som bare ville utføre en handel med meg hvis de trodde de hadde noen statistisk kant. Å se et tilbud garanterte ikke at jeg kunne kjøpe det. tiden min kjøpsordre kom til byttet var det veldig mulig at det tilbudet hadde blitt kansellert. Som en liten markedsaktør var det ingen måte jeg kunne konkurrere på fart alene. Å bygge en full handelssimulering. Så hadde jeg et rammeverk som tillot meg å backtest og optimalisere indikatorer Men jeg måtte gå utover dette - jeg trengte et rammeverk som kunne tillate meg å sikkerhetskopiere og optimalisere et fullhandelssystem en hvor jeg sendte ordrer og kom i stillinger I dette tilfellet ville jeg optimalisere for totalt PL og til en viss grad gjennomsnittlig PL per handel. Dette ville være vanskeligere og på noen måter umulig å modellere nøyaktig, men jeg gjorde så godt som mulig. Her er noen av problemene jeg måtte håndtere. Når en ordre ble sendt til markedet i simulering Jeg måtte modellere lagtiden. Faktumet at systemet mitt så et tilbud, betyr ikke at det kunne kjøpe det med en gang. Systemet ville sende bestillingen, vent ca 20 millisekunder, og da bare hvis tilbudet fortsatt var der, ble det vurdert som en henrettet handel Dette var inexakt fordi den virkelige forsinkelsestiden var inkonsekvent og urapportert. Når jeg lagde bud eller tilbud måtte jeg se på handelsutførelsesstrømmen som ble levert av API og bruke dem til å måle når bestillingen min ville ha blitt henrettet mot For å gjøre dette riktig jeg måtte spore posisjonen til bestillingen min i køen. Det sa først i første utgangssystemet. Igjen kunne jeg ikke gjøre dette perfekt, men jeg gjorde en god tilnærming. For å finjustere min ordningseksempler jeg gjorde var å ta loggfilene mine fra lever trading via API og sammenligne dem med loggfilene som produseres ved simulert handel fra nøyaktig samme tidsperiode jeg klarte å få simuleringen min til det punktet at det var ganske nøyaktig og for de delene som var umulige å modellere nøyaktig, sørget jeg for at produserer i det minste utfall som var statistisk liknende i beregningene som jeg trodde var viktige. Å lage lønnsomme handler. Med en ordreimuleringsmodell på plass kunne jeg nå sende ordrer i simuleringsmodus og se en simulert PL Men hvordan ville m y-systemet vet når og hvor du skal kjøpe og selge. Prisflytspådommer var et utgangspunkt, men ikke hele historien. Hva jeg gjorde var å skape et scoring system for hvert av 5 prisnivåer på tilbudet og tilbudet. Disse inkluderte ett nivå over innsiden bud for en kjøpsordre og ett nivå under det innvendige tilbudet for en salgsordre. Hvis poengsummen til et gitt prisnivå var over en viss terskel som ville bety at systemet mitt skulle ha et aktivt budtilbud der - under terskelen så var det noen aktive ordrer bør avbrytes Basert på dette var det ikke uvanlig at systemet mitt ville blinke et bud i markedet, og deretter avbryte det umiddelbart. Selv om jeg prøvde å minimere dette, var det irriterende for alle som så på skjermen med menneskelige øyne - inkludert meg. prisnivå score ble beregnet ut fra følgende faktorer. Prisen flytte prediksjon som vi diskuterte tidligere. Prisnivået i spørsmålet Innre nivåer betydde større prisbevegelser spådommer var nødvendig. Antall kontrakter foran min rekkefølge i køen Mindre var bedre. Antall kontrakter bak bestillingen min i køen Mer var bedre. Disse faktorene ser vanligvis ut til å identifisere trygge steder å by på. Prissendingen alene var ikke tilstrekkelig fordi den ikke gjorde rede for det faktum at når jeg plasserte et bud, ble jeg ikke fylt automatisk - jeg ble bare fylt hvis noen solgte meg der. Virkeligheten var at det faktum at noen som solgte meg til en viss pris, forandret statistiske oddsene for handelen. De variabler som ble benyttet i dette trinnet var alle gjenstand for optimalisering Dette ble gjort på nøyaktig samme måte som jeg optimaliserte variabler i prisbevegelsesindikatorene, bortsett fra i dette tilfellet, optimaliserte jeg for bunnlinjen P L. Hva mitt program ignorert. Når vi handler som mennesker, har vi ofte sterke følelser og forstyrrelser som kan føre til mindre enn optimale beslutninger. Klart ville jeg ikke kodifisere disse forstyrrelsene. Her er noen faktorer som min system ignorerte. Prisen som en stilling ble oppgitt - I et handelskontor er det ganske vanlig å høre samtale om prisen som noen er lange eller korte på som om det skulle påvirke deres fremtidige beslutninger. Mens dette har noen gyldighet som en del av en risikoreduserende strategi, har det egentlig ingen betydning for det fremtidige kurset i markedet. Derfor min Programmet ignorerer helt denne informasjonen Det er det samme konseptet som å ignorere nedsatte kostnader. Gjøre kort vs å forlate en lang posisjon - Vanligvis ville en forhandler ha forskjellige kriterier som bestemmer hvor å selge en lang posisjon versus hvor du skal gå kort. Men fra mitt algoritmsperspektiv var det ingen grunn til å skille Hvis min algoritme forventet en nedadgående flytting, var en god ide, uansett om det var for tiden lenge, kort eller flat. En dobling av strategi - Dette er en felles strategi hvor handelsmenn vil kjøpe flere aksjer i tilfelle at den opprinnelige handelen går imot dem Dette medfører at gjennomsnittskjøpsprisen din blir lavere, og det betyr når eller om lageret vender seg, vil du bli innstilt for å gjøre din mon øye tilbake på kort tid Etter min mening er dette virkelig en fryktelig strategi med mindre du er Warren Buffet Du blir lurt til å tro at du har det bra fordi de fleste av dine handler vil bli vinnere Problemet er når du mister deg og mister stor Den andre effekten er det gjør det vanskelig å bedømme om du faktisk har en kant på markedet eller bare får det heldig Å kunne overvåke og bekrefte at programmet mitt faktisk hadde en kant var et viktig mål. Siden algoritmen min tok beslutninger på samme måte, uansett hvor det gikk inn i en handel, eller hvis det for øyeblikket var lenge eller kort, ble det noen ganger satt inn og tok noen store tapende handler i tillegg til noen store vinnende handler. Men du burde ikke tro at det ikke var noen risikostyring. For å håndtere risiko håndhevet jeg et maksimum stillingsstørrelse på 2 kontrakter om gangen, noen ganger støtet opp på høyvolumsdager. Jeg hadde også en maksimal daglig tapgrense for å beskytte mot uventede markedsforhold eller en feil i min programvare. Disse grensene ble håndhevet i min kode bu t også i backend gjennom megleren Som det skjedde jeg aldri oppstått noen betydelige problemer. Running algoritmen. Fra det øyeblikket jeg begynte å jobbe på mitt program det tok meg ca 6 måneder før jeg fikk det til poenget med lønnsomhet og begynte å kjøre det live Selv om det var rettferdig, var det betydelig tid å lære et nytt programmeringsspråk. Da jeg jobbet for å forbedre programmet, så jeg økt fortjeneste for hver av de neste fire månedene. Hver uke skulle jeg omskole systemet mitt basert på de foregående 4 ukene som var verdt data jeg fant dette traff den rette balansen mellom å ta vare på nyere markedsadferdstendenser og forsikre min algoritme hadde nok data til å etablere meningsfulle mønstre Ettersom treningen begynte å ta mer og mer tid, splittet jeg det slik at det kunne utføres av 8 virtuelle maskiner som bruker Amazon EC2 Resultatene ble deretter coalesced på min lokale maskin. Høydepunktet av min handel var oktober 2009 da jeg gjorde nesten 100k Etter dette fortsatte jeg å tilbringe de neste fire månedene t å rydde for å forbedre mitt program til tross for redusert fortjeneste hver måned. Dessverre på dette punktet antar jeg at jeg implementerte alle mine beste ideer fordi ingenting jeg prøvde syntes å hjelpe mye. Med frustrasjonen om ikke å kunne gjøre forbedringer og ikke ha en følelse av vekst, jeg begynte å tenke på en ny retning jeg sendte 6 forskjellige høyfrekvente handelsfirmaer for å se om de ville være interessert i å kjøpe min programvare og ansette meg til å jobbe for dem. Ingen svarte Jeg hadde noen nye oppstartsideer jeg ønsket å jobbe med, så jeg aldri fulgte opp. UPDATE - Jeg postet dette på Hacker News, og det har fått mye oppmerksomhet. Jeg vil bare si at jeg ikke fortaler noen som prøver å gjøre noe som dette selv nå. Du vil trenge et team med virkelig smarte mennesker med en rekke opplevelser. å ha noe håp om å konkurrere Selv når jeg gjorde dette, tror jeg det var svært sjelden at enkeltpersoner skulle oppnå suksess, selv om jeg hadde hørt om andre. Det er en kommentar øverst på siden som nevner manipulert sta tistikk og refererer til meg som en detaljhandel investor som quants ville gleefully plukke av. Dette er en ganske uheldig kommentar som er rett og slett ikke basert i virkeligheten. Setter det til side er det noen interessante kommentarer. UPDATE 2 - Jeg har postet en follow-up FAQ som svarer noen vanlige spørsmål jeg har mottatt fra handelsmenn om dette innlegget.

No comments:

Post a Comment