Inhoudsopgave[Zich verstoppen][Laten zien]
Een branche die werkzoekenden enorm interesseert, is valutahandel. Softwarebedrijven ontvangen verzoeken van handelaren over de hele wereld om een handelsplatform te bieden dat snel en efficiënt gegevens over valutaparen kan evalueren.
Een handelsplatform is een softwareprogramma dat door bepaalde financiële organisaties, zoals banken en makelaars, aan handelaren en investeerders wordt aangeboden.
Handelsplatforms laten investeerders en dealers in wezen deals plaatsen en hun rekeningen in de gaten houden. Andere functies die investeerders helpen bij het nemen van investeringsbeslissingen worden vaak opgenomen in handelssystemen.
Realtime citaten, interactieve grafieken, een verscheidenheid aan grafische tools, live nieuwsfeeds en premium onderzoek zijn enkele voorbeelden van deze mogelijkheden.
Platforms kunnen ook worden ontworpen voor bepaalde markten, zoals die voor aandelen, valuta's, opties of futures.
Al meer dan tien jaar zijn geautomatiseerde handelssystemen, ook wel bekend als algoritmische handel, hebben het middelpunt van de handelsindustrie ingenomen.
Een 'handelssysteem', ook wel bekend als een 'handelsstrategie', is niets meer dan een verzameling regels die worden toegepast op de invoergegevens om in- en uitstapsignalen voor kopen/verkopen te geven. Ondanks het feit dat het creëren van een handelsstrategie eenvoudig lijkt, is het dat niet!
De geesten achter een kwantitatieve handelsstrategie worden "Quants" genoemd op het gebied van algoritmische handel, aangezien het ontwikkelen van een goede handelsstrategie uitgebreide kwantitatieve studie vereist.
Het fundamentele ontwerp van geautomatiseerde handelssystemen heeft de afgelopen tien jaar aanzienlijke wijzigingen ondergaan en verandert nog steeds.
De algoritmische handelsindustrie is een broeinest geworden voor ontwikkelingen in computer- en netwerktechnologieën, omdat het voor bedrijven, met name bedrijven die hoogfrequente handelssystemen gebruiken, noodzakelijk is geworden om te innoveren op het gebied van technologie om te kunnen concurreren in de wereld van algoritmische handel.
We zullen de handelsplatforms bespreken: systeem ontwerp in dit artikel. De fundamentele specificaties voor een handelsplatform omvatten de architectuur, protocollen en instructies voor het creëren van uw eigen geautomatiseerde handelssysteem.
Vereisten voor geautomatiseerde handelssoftware op basisniveau
De beste oplossing is degene die volledig voldoet aan de softwarevereisten. De belangrijkste specificaties van geautomatiseerde handelssoftware zijn:
- Schaalbaarheid (de capaciteit van het systeem om een toenemend aantal verzoeken en werkdruk aan te kunnen);
- Multiprocessing en uitstekende prestaties;
- Veiligheid en beveiliging (hoe het reageert op plotselinge inbreuken of aanvallen en beschermt tegen illegale binnenkomst);
- Interoperabiliteit (het vermogen van een systeem om te interageren met andere systemen);
- Betrouwbaarheid (hoe het storingen oplost en ondanks problemen werkt).
Algoritmische handelssystemen vereisen uiterst geschoolde arbeid en zorgvuldige aandacht. Het is gemakkelijker om de functionele vereisten van het systeem te begrijpen als er duidelijke niet-functionele vereisten zijn. Ze dienen als norm voor softwareontwikkelingsteams om de kwaliteit van een product vast te stellen en te definiëren.
De functionele kenmerken van het handelsplatform omvatten:
De succesvolle ondersteuning van verschillende betalingsmethoden, veilige cloudhostingservices, krachtige tools voor gegevensanalyse, risicobeheer, nauwkeurige offertes en geschikte soorten grafieken zijn allemaal belangrijke functionele behoeften.
Hieronder volgen enkele fundamentele kenmerken van geautomatiseerde handelsplatforms waar alle handelaren veel aandacht aan besteden:
Dashboard met statistische gegevens
Voor het uitvoeren van een realtime, gelijktijdig onderzoek van valutakoersen in verschillende tijdzones, moet het platform continue updates uitvoeren, gegevens uit vele grafieken gebruiken en prijslijsten gebruiken.
authenticatie
De snelle maar betrouwbare verificatiemethode creëert eerst het beeld van een veilig platform en elite technische inspanningen.
Handelssoftware kan toegang vanuit meerdere accounts ondersteunen, vergelijkbaar met open-source handelsplatforms met tweefactorauthenticatie (bijvoorbeeld met behulp van sms of Google Authenticator), maar u kunt ook een systeem hebben waarbij toegang is ingeschakeld via e-mail, telefoonnummer of andere manieren voor slechts een kleine groep handelaren.
Nieuws Feeds
Voordat u financiële beslissingen neemt, is het van cruciaal belang om uw onderzoek te doen. Om fouten veroorzaakt door onwetendheid te voorkomen, kunnen handelaren profiteren van handig nieuws, relevante overzichten en inzichten in de valutamarkten van de wereld, die allemaal onmiddellijk beschikbaar zijn op hun handelsplatforms.
Functionaliteit voor beheerders en gebruikers die handig is
In zo'n systeem is de mogelijkheid om alles snel te beheren met een enkele klik essentieel. Dit omvat het beheren van transacties, lopende en ingediende bestellingen, persoonlijke accounts, indicaties van de voortgang van bestellingen en verzoeken van klanten.
Dit maakt besluitvorming in de kortst mogelijke tijd mogelijk en garandeert continue toegang tot vitale informatie.
Pushmeldingen gebruiken
Gebruikers verwachten dat handelsplatforms XNUMX uur per dag toegankelijk zullen zijn en op de hoogte zullen worden gehouden van eventuele beveiligingsproblemen of de meest recente wijzigingen.
U kunt op de hoogte blijven met aanpasbare meldingen, aangezien het handelsplatform economische gebeurtenissen, prijsschommelingen, marktontwikkeling, technische indicatoren, enz. volgt en updates over uw voorraadpositie stuurt.
Uitbetalingen en betalingen
Deze functie is vereist om handelsactiviteiten uit te voeren, de verplaatsing van contant geld te volgen en snel en veilig geld op te nemen van uw persoonlijke rekening met een creditcard, PayPal of een eenvoudige bankoverschrijving.
Wanneer uw opnameverzoek is verwerkt, ontvangt u een melding.
De architectuur van het geautomatiseerde handelssysteem
De engine die de logica van de besluitvorming in het geautomatiseerde handelsplatform uitvoert, ook wel de 'Complex Event Processing'-engine of CEP genoemd, bevindt zich in de applicatie op de server.
De applicatielaag is in wezen een gebruikersinterface voor het observeren en aanleveren van parameters aan het CEP. Hoewel de applicatielaag in de eerste plaats een weergave is, kunnen sommige risicocontroles (die nu vanwege het schaalprobleem veel middelen nodig hebben) worden overgeheveld naar de applicatielaag, met name die met betrekking tot de gezond verstand van gebruikersinvoer zoals dikke vingerfouten.
Een intrigerende situatie is het gevolg van het schaalbaarheidsprobleem in een geautomatiseerd handelssysteem.
Laten we ons voorstellen dat een enkele marktgegevensgebeurtenis wordt verwerkt door 100 afzonderlijke logica's (zoals besproken in het eerdere voorbeeld). Voor de meerderheid van de 100 logische eenheden, laten we zeggen de berekening van grieken voor opties, kunnen er gemeenschappelijke componenten zijn van complexe berekeningen die moeten worden uitgevoerd.
De identieke exacte berekening zou door elke eenheid worden uitgevoerd als elke logica onafhankelijk zou werken, wat verwerkingsbronnen zou verspillen.
Complexe redundante berekeningen worden vaak verdeeld in verschillende rekenmachines die de Grieken als input voor het CEP in het geautomatiseerde handelssysteem leveren om de rekenredundantie te maximaliseren.
Momenteel voert een apart Risk Management System (RMS) binnen de Order Manager (OM) de resterende risicobeoordelingen uit in een geautomatiseerd handelssysteem kort voordat een order wordt vrijgegeven.
Aangezien er slechts één RMS-systeem is om risico's voor alle logische eenheden/strategieën te beheren, controleerden voorheen 100 afzonderlijke handelaren hun risico. Dit komt door het schaalprobleem.
Bepaalde risicobeoordelingen kunnen echter exclusief zijn voor bepaalde strategieën, terwijl andere mogelijk voor alle methoden moeten worden uitgevoerd.
Bijgevolg bestaat de RMS zelf uit globale RMS (GRMS) en RMS op strategieniveau (SLRMS). De SLRMS en GRMS waren ook te zien via een gebruikersinterface (UI).
Laten we nu verder ingaan op de componenten van de server.
Marktadapter
Exchange of een andere aanbieder van marktgegevens verzendt gegevens in zijn formaat. Die taal kan al dan niet worden begrepen door uw algoritmische handelssysteem.
Exchange geeft u toegang tot een API (Application Design Interface) die u kunt gebruiken om uw eigen adapter te programmeren en te bouwen om het gegevensformaat om te zetten in een formaat dat uw systeem kan begrijpen.
Complexe gebeurtenisverwerkingsengine
Het brein van uw aanpak ligt in deze sectie. Als u eenmaal over de gegevens beschikt, moet u deze gebruiken in overeenstemming met uw plan, dat vraagt om verschillende statistische berekeningen, vergelijkingen met gegevens uit het verleden en het nemen van beslissingen die leiden tot het maken van orders.
Dit blok is opgebouwd aan de hand van het ordertype en orderbedrag. Simpel gezegd, een complexe gebeurtenis is een verzameling inkomende gebeurtenissen. Deze bestaan uit nieuws, marktbewegingen, beurstrends, enz.
Het snel voltooien van computerbewerkingen op gecompliceerde gebeurtenissen staat bekend als complexe gebeurtenisverwerking. De activiteiten van een geautomatiseerd handelssysteem kunnen bestaan uit het opsporen van ingewikkelde patronen, het creëren van correlaties en het leggen van verbanden zoals oorzakelijk verband en tijd tussen binnenkomende informatie.
Routeringssysteem voor bestellingen
Met behulp van de API's van de exchange wordt de bestelling versleuteld in een taal die de exchange kan begrijpen. De uitwisseling biedt native API's en FIX API's, twee verschillende soorten API's.
Native API's zijn specifiek ontworpen voor een bepaalde uitwisseling. Een reeks richtlijnen die bekend staat als het FIX-protocol (Financial Information Exchange) wordt door verschillende uitwisselingen gebruikt om de gegevensstroom in de beveiligingsmarkten te vergemakkelijken en te verbeteren.
In het deel hierna zullen we meer uitleggen over FIX. Als een economie open is, kunnen mensen via een geautomatiseerd handelssysteem orders doorgeven aan beurzen of niet-beurzen, en ORP zou orders in vele richtingen moeten kunnen afhandelen.
Hierbij willen we benadrukken dat het opdrachtsignaal handmatig door een persoon of automatisch kan worden uitgevoerd. Het laatste gedeelte is wat we een 'geautomatiseerd handelssysteem' noemen.
De ordermanager-module bevat verschillende uitvoeringstechnieken die de koop-/verkooporders uitvoeren in overeenstemming met vooraf vastgestelde logica.
RISICO BEHEER
Aangezien geautomatiseerde handelssystemen werken zonder menselijke tussenkomst, zijn rigoureuze risicoanalyses nodig om ervoor te zorgen dat de handelssystemen werken zoals bedoeld.
Slecht risicobeheer of het ontbreken van risicocontroles voor een kwantitatief bedrijf kan leiden tot aanzienlijke oninbare verliezen. Als gevolg hiervan moet elk geautomatiseerd handelssysteem een risicobeheersysteem (RMS) hebben.
Protocolontwikkeling voor geautomatiseerde handelssystemen
Om verbinding te maken met verschillende bestemmingen vanaf een enkele server, wat mogelijk werd gemaakt door het vermogen van de architectuur om te schalen naar vele strategieën per server, was vereist.
Om bestellingen naar meerdere bestemmingen te verzenden en gegevens van tal van centrales te ontvangen, had de ordermanager daarom een aantal adapters in huis.
De rol van elke adapter is om te dienen als een tolk tussen het interne communicatieprotocol van het systeem en het protocol dat de centrale begrijpt. Er zou dus een aantal adapters nodig zijn voor een aantal uitwisselingen.
Aangezien elke uitwisseling een protocol heeft dat is afgestemd op de mogelijkheden die het biedt, moet een nieuwe adapter worden gemaakt en in de architectuur worden aangesloten om een nieuwe uitwisseling aan het geautomatiseerde handelssysteem toe te voegen.
Er zijn standaardprotocollen ontwikkeld om deze hoofdpijn van het inbrengen van adapters te voorkomen. Het FIX-protocol is het meest bekende van allemaal.
De go-to-market-tijd voor verbinding met een nieuwe bestemming wordt aanzienlijk verkort, waardoor het niet alleen beheersbaar is om onderweg verbinding te maken met verschillende bestemmingen.
Het geautomatiseerde handelssysteem kan gemakkelijk communiceren met andere leveranciers voor analyses of marktgegevensfeeds dankzij het bestaan van gemeenschappelijke protocollen.
Als gevolg hiervan wordt de markt uiterst efficiënt omdat er geen beperking meer is op integratie met een nieuwe locatie of verkoper.
Bovendien is simulatie heel eenvoudig gemaakt, omdat het enige dat nodig is om verbinding te maken met een simulator met behulp van het FIX-protocol, is om orders uit te geven en gegevens van de echte markt te ontvangen.
De simulator zelf kan intern worden gemaakt of bij een andere bron worden gekocht. Net als bij live marktgegevens, kunnen opgenomen gegevenssets ook worden afgespeeld dankzij adapters die onafhankelijk zijn van de bron van de gegevens.
Opkomende architecturen met lage latentie
De strategieën kunnen nu enorme hoeveelheden gegevens in realtime evalueren en snelle handelskeuzes maken dankzij de fundamentele elementen van een geautomatiseerd handelssysteem.
Als gevolg van de ontwikkeling van industriestandaard communicatieprotocollen zoals FIX, is het nu gemakkelijker om een algoritmische handelsdesk of geautomatiseerd handelssysteem te bouwen, waardoor de concurrentie op de algoritmische handelsmarkt is toegenomen.
De nadruk verschoof naar het verlagen van de latentie voor het nemen van beslissingen, aangezien servers meer geheugen en snellere kloksnelheden kregen.
Het verminderen van de latentie is in de loop van de tijd noodzakelijk geweest om verschillende redenen, waaronder:
- Alleen in een omgeving met lage latentie is de techniek zinvol.
- Competitie schakelt je uit als je niet snel genoeg bent in de survival of the fittest game
Colocatie is een absolute noodzaak geworden in een geautomatiseerd handelssysteem voor elke hoogfrequente methode met een enkele bestemming.
Maar systemen met meerdere bestemmingen vereisen een nauwgezette voorbereiding. Alvorens een dergelijke keuze te maken, moet men rekening houden met variabelen zoals de duur van de responstijd van de bestelling van de bestemming en hoe deze zich verhoudt tot de duur van de ping tussen de twee bestemmingen.
Om de totale latentie van een geautomatiseerd handelssysteem te verminderen, is netwerklatentie meestal het eerste dat moet worden aangepakt. Maar de architectuur kan ook op veel andere manieren worden verbeterd.
Latentie netwerkverwerking
De latentie van netwerkverwerking is de vertraging die routers, switches, enz. introduceren. Het aantal hops dat een pakket nodig heeft om van punt A naar punt B te gaan, zou het volgende optimalisatieniveau zijn in het ontwerp van een geautomatiseerd handelssysteem.
Een hop wordt beschreven als een gedeelte van het pad tussen de bron van een pakket en de bestemming waar het niet door een fysiek apparaat gaat, zoals een router of switch.
Wat we microbursts noemen, kan ook een impact hebben op de latentie van netwerkactiviteiten.
Een snelle piek in het tempo van gegevensoverdracht die al dan niet van invloed kan zijn op de gemiddelde gegevensoverdrachtsnelheid, wordt een microburst genoemd.
Omdat geautomatiseerde handelssystemen op regels zijn gebaseerd, zullen ze allemaal uniform reageren op hetzelfde voorval. Een micro-uitbarsting van gegevensoverdracht tussen de deelnemers en de bestemming kan optreden als gevolg van het feit dat meerdere deelnemende systemen tegelijkertijd opdrachten verzenden.
Applicatie latentie
De applicatielatentie van een geautomatiseerd handelssysteem is een maat voor de tijd die nodig is om een aanvraag te verwerken. Dit hangt af van het aantal pakketten, de verwerking die is besteed aan de toepassingslogica, de complexiteit van de gebruikte berekening, de effectiviteit van de programmering, enz.
Het systeem zou doorgaans minder applicatievertraging hebben naarmate het aantal processors toenam. Bij hogere klokfrequenties geldt hetzelfde.
Veel geautomatiseerde handelssystemen profiteren van het toewijzen van CPU-kernen aan kritieke onderdelen van het programma, zoals de logica voor de strategie bijvoorbeeld. Door dit te doen, voegt de procedure niet de vertraging toe die het gevolg is van het wisselen van cores.
Evenzo, als de benadering van een geautomatiseerd handelssysteem was geprogrammeerd met cachegroottes en de nabijheid van geheugentoegang in gedachten, zouden er verschillende geheugencache-hits zijn, waardoor de latentie verder zou worden verminderd.
Veel systemen doen dit door de code te optimaliseren voor de specifieke processorarchitectuur, wat wordt gedaan door programmeertalen van zeer laag niveau te gebruiken.
Door gebruik te maken van volledig programmeerbare gate-arrays zijn sommige bedrijven zelfs zo ver gegaan dat ze gecompliceerde berekeningen op hardware (FPGA) branden.
Testen
Testen, het identificeren van fouten in softwaretoepassingen, is onmogelijk te onderschatten, vooral in Fintech. Vanwege de mogelijkheid van financieel verlies, kan financiële technologie het zich niet veroorloven om gebreken te hebben.
Hoe meer defecten de kwaliteitsborgingsingenieurs kunnen identificeren, des te waarschijnlijker is het dat het eindproduct naar behoren zal functioneren. Afhankelijk van het bedrijf dat het handelsplatform ontwikkelt of de behoeften van de klant, omvat de structuur van het testproces:
De basis van functioneel testen is het creëren van input en het analyseren van de resultaten. Met behulp van valse kaarten worden testcases voor financiële toepassingen uitgevoerd. Deze kaarten zijn bedoeld om de betrouwbaarheid, efficiëntie en nauwkeurigheid van betalingen te verbeteren.
Het achterhalen van de snelheid, schaalbaarheid en stabiliteit van een systeem wordt gedaan door middel van prestatietests. De snelheid van een applicatie wordt beoordeeld om te begrijpen hoe snel het reageert, en de schaalbaarheid geeft aan hoeveel gebruikers het gelijktijdig kan ondersteunen zonder te crashen.
Bovendien toont stabiliteit aan of de applicatie correct functioneert onder verschillende belastingen of dat er mogelijke gebreken zijn.
Het kan de mogelijkheden van een enkele detailhandelaar te boven gaan om een volledig geautomatiseerd handelssysteem te bouwen. Geautomatiseerde handelssystemen, die op abonnementsbasis op de markten worden aangeboden, zijn een optie voor handelaren die de algoritmische handelstechniek willen onderzoeken.
Uw eigen autonome handelssystemen bouwen
Beginnende handelaren kunnen hun eigen algoritmische handelstechnieken ontwikkelen en succesvol op de markt handelen. In het algemeen kunnen de onderstaande fasen worden gebruikt om een algoritmische handelsstrategie te creëren:
- Creëer een handelsconcept waarvan u denkt dat het succesvol zou zijn in actieve markten met behulp van uw verbeeldingskracht of een methode. Het concept kan worden afgeleid van uw eigen marktobservaties, handelsboeken, academische papers, handelsblogs, handelsforums of andere bronnen.
- Verzamel de nodige informatie – U hebt historische gegevens nodig om uw hypothese te testen. Deze informatie is beschikbaar via betaalde gegevensleveranciers of websites zoals Google Finance.
- Het schrijven van een plan vereist het gebruik van tools zoals Excel, Python of R-programmering. Zodra u de gegevens heeft, kunt u beginnen met het coderen van uw aanpak.
- Het testen van uw handelsconcept tegen historische gegevens nadat het is gecodeerd, wordt backtesting van uw aanpak genoemd. Backtesting omvat inputoptimalisatie, het vaststellen van winstdoelstellingen en stop-loss-orders, positieomvang en andere gerelateerde taken.
- Papierhandel in uw strategie – Na de backtestfase is papierhandel in uw strategie noodzakelijk. Dit omvat het testen van uw plan met behulp van een marktsimulatiesimulator. Voor de papieren handelsmethode zijn er makelaars die een algoritmisch handelsplatform bieden.
- Als uw aanpak lucratief is na papierhandel, kunt u deze in praktijksituaties implementeren. U kunt een handelsaccount aanmaken bij een betrouwbare makelaar die algoritmische handel aanbiedt.
Elk jaar zijn er meer beurzen die algoritmische handel mogelijk maken voor zowel professionele als detailhandelaren, en steeds meer handelaren gebruiken algoritmische handel.
Conclusie
Dit was een grondig artikel over een architectuur van een geautomatiseerd handelssysteem waarvan we zeker weten dat het een zeer inzichtelijk begrip heeft gegeven van de betrokken componenten en van de vele obstakels die architectuurontwikkelaars moeten aanpakken/overwinnen om een sterk geautomatiseerd handelssysteem te ontwerpen.
Ik heb mijn best gedaan om je een overzicht te geven van het automatische handelssysteem, maar er gebeurt nog veel meer onder de motorkap. Ik hoop dat u dit materiaal nuttig vindt en er goed gebruik van maakt.
Laat een reactie achter