Friday 17 November 2017

Akka Trading System


Skuespillermodell. Skuespillermodellen gir et høyere nivå av abstraksjon for å skrive samtidige og distribuerte systemer. Det lindrer utvikleren fra å måtte håndtere eksplisitt låsing og trådstyring, noe som gjør det lettere å skrive riktige samtidige og parallelle systemer. Leger ble definert i 1973 papir av Carl Hewitt, men har blitt populært av Erlang-språket og brukt for eksempel på Ericsson med stor suksess for å bygge svært samtidige og pålitelige telekommunikasjonssystemer. Distribuert av standard. Alt i er utformet for å fungere i en distribuert innstilling, bruker alle interaksjoner mellom skuespillere ren melding går forbi og alt er asynkron. Denne innsatsen er utført for å sikre at alle funksjoner er like tilgjengelige når de kjøres i en enkelt prosess eller på en klynge med hundrevis av maskiner. Nøkkelen for å gjøre dette mulig er å gå fra ekstern til lokal ved hjelp av optimalisering i stedet for å prøve å gå fra lokal til ekstern i form av generalisering Se dette klassiske papiret for en detaljert di scussion på hvorfor den andre tilnærmingen er bundet til å mislykkes. Oppfølgingsovervåking. Aktorer danner et tre med skuespillere som foreldre til skuespillerne de har opprettet. Som foreldre er skuespilleren ansvarlig for å håndtere sine barns feil, såkalt tilsyn, danner en ansvarskjede helt til toppen Når en skuespiller krasjer, kan forelderen enten starte på nytt eller stoppe den, eller eskalere feilen i aktørens hierarki. Dette gjør det mulig for et rent sett av semantikk for å håndtere feil i et samtidig distribuert system og gjør det mulig å skrive svært feiltolerante systemer som er selvhelbredende. Vi kan forestille oss et hypotetisk HFT-system i Java, som krever svært lav latens, med mange kortlivede små gjenstander noe på grunn av uforanderlighet Scala, tusenvis av tilkoblinger per sekund, og et uanstendig antall meldinger som går forbi i en hendelse-drevet arkitektur akka og amqp. For ekspertene der ute, hva ville hypotetisk være den beste tuningen for JVM 7 Hvilken type kode ville gjøre det lykkelig Ville Scala og Akka er klar for denne typen systemer. Notat Det har vært noen lignende spørsmål, som denne, men jeg har ennå ikke funnet en dekker Scala som har sitt eget idiosynkratiske fotavtrykk i JVM. Skrevet 30. mars kl. 12 på 23 15.It er mulig å oppnå meget god ytelse i Java Men spørsmålet må være mer spesifikt for å gi et troverdig svar. Dine viktigste kilder til latens kommer fra en ikke-uttømmende liste. Hvor mye søppel du oppretter og GCs arbeid for å samle inn og fremme det Uforanderlige design i min erfaring passer ikke bra med lav latency GC tuning må være et stort fokus. Varm opp JVM slik at klasser lastes og JIT har hatt tid til å gjøre sitt arbeid. Design algoritmer for å være O 1 eller minst O log2 n, og har ytelsestester som hevder dette. Din design må være låsfri og følge Single Writer-prinsippet. En betydelig innsats må settes inn for å forstå hele stakken og vise mekanisk sympati i bruken. Design dine algoritmer og datastrukturer som skal cache-vennlig Cache savner i disse dager er den største kostnaden. Dette er nært knyttet til prosessaffinitet, som hvis det ikke er satt opp riktig, kan resultere og betydelig cache-forurensning. Dette vil innebære sympati for operativsystemet og til og med noen JNI-kode i noen tilfeller. Forsikre deg om at du har tilstrekkelig kjerner, slik at enhver tråden som trenger å kjøre, har en kjerne tilgjengelig uten å måtte vente. Jeg har nylig blogget om en casestudie av en slik øvelse. Du kan finne at bruk av en ringbuffer for meldingstasting vil overgå det som kan gjøres med Akka Den viktigste ringbufferimplementasjonen som folk bruker på JVM for økonomiske applikasjoner, er en som kalles Disruptor, som er nøye innstilt for effektivitetskraft i to størrelser, for JVM ingen GC, ingen lås og for moderne CPUer er det ikke noe feilaktig deling av cache linjer. Her er en intro presentasjon fra et Scala synspunkt, og det er lenker på den siste lysbilden til den opprinnelige LMAX stuff. answered 3. juli kl 3 52. Veldig interessant Takk for at du deler Hugo Sere Nei Ferreira 10. juli kl. 19 20. Din Svar.2017 Stack Exchange, Inc. Scala Backtesting Live Trading Framework bygget på toppen av Akka Spray. Hva er det bra for. Dette rammen kan være nyttig for folk som kommer fra Scala-bakgrunnen som lager deres første skritt i live-testing av automatiserte handelsstrategier ved hjelp av Oanda s REST API, som etter min mening er en av de beste tilgjengelige detaljhandels-APIene. Siden dette er arbeid pågår, hvis du er en Scala-entusiast og er interessert i automatisert handel, ha en se og følg fri for gaffel repo og bidra. Bare klon repo og slipp din trading logikk inn Don t glem å endre for å inkludere din egen konto ID og tilgang token for Oanda s REST API. Note Hvis du bare er ute etter en måte å Koble til Oanda REST API ved hjelp av Scala Akka, sjekk ut Scalanda-prosjektet. Du kan ikke utføre denne handlingen på dette tidspunktet. Du logget på med en annen fane eller et vindu. Oppdater for å oppdatere økten din. Du logget ut på en annen fane eller et vindu. Oppdater for å oppdatere din økt.

No comments:

Post a Comment