Monday 13 November 2017

Forex Api Python


FXCM API Python wrapper Som du sikkert vet, tilbyr FXCM handelsforbindelser via deres proprietære kontakt kalt ForexConnect API. For oss som ikke er kvalifisert for å åpne FIX-kontoen, er ForexConect API en mulig måte å bygge og koble til vårt eget handelssystem. Personlig liker jeg ikke mql og MT4 mye, hvis i det hele tatt. Men det er fortsatt den mest utvidede handelsplattformen denne dagen. Med det sagt, ved hjelp av ForexConnect API kan man omgå mql og skrive quants eller automatiserte strategier på høyere nivå språk som CC, Java Python eller Matlab eller R. Ive har startet et prosjekt for ForexConnect API wrapper som gjør det mulig som Python-modul. Mye har blitt gjort allerede, du kan sjekke her 1. Selv om erfarne C-utviklere velger Ive Python for sitt brede antall matematikk. og statistikkbiblioteker som Numpy, Scipy, Pandas etc. Også ved hjelp av et slikt språk som Python Im kan bruke moderne dev. plattform som Visual Studio for CC eller min favoritt JetBrains PyCharm for Python dev. Min hensikt er når API-en er fullt implementert for å bygge litt maskininnlæringskvant rundt den. Forex trading med OANDA API ved James Ma Weiming Forex trading med OANDA API I de forrige avsnittene implementerte vi et handelssystem ved å feste Interactive Brokers Trader WorkStation X gjennom stikkontaktene over en enkelt port. Imidlertid tilbyr mange andre meglere forskjellige valg for å koble opp tilpasset handelsprogramvare over en API. I denne delen lærer vi hvordan vi grensesnittet for vår handelsstrategi med OANDAs REST API. OANDA er en stor aktør i utenlandsk valuta (forex) business service retail investorer. Vi vil bruke en trend-etter strategi for handel med forex-produkter. Hva er REST REST står for Representational State Transfer. Det refererer til APIs for webtjeneste for overføring av data over HTTP ved hjelp av GET. SETTE. POST. eller DELETE metoder. Med REST API kan vi streame. Finn den nøyaktige informasjonen du trenger for å løse et problem i luften, eller gå dypere for å mestre teknologiene og ferdighetene du trenger for å lykkes. Ingen kredittkort kreves. Les mer Kvant ferdigheter Hvis du er handelsmann eller investor, og ønsker å skaffe seg et sett med kvantitative Handelsferdigheter, du er på rett sted. Trading med Python-kurset vil gi deg de beste verktøyene og rutene for kvantitativ handelsforskning, inkludert funksjoner og skript skrevet av ekspertkvantitative handelsfolk. Kurset gir deg maksimal effekt for din investerte tid og penger. Det fokuserer på praktisk anvendelse av programmering til handel i stedet for teoretisk datavitenskap. Kurset vil betale seg raskt, ved å spare tid i manuell behandling av data. Du vil bruke mer tid på å forske på strategien og gjennomføre lønnsomme handler. Kursoversikt Del 1: Grunnleggende Du lærer hvorfor Python er et ideelt verktøy for kvantitativ handel. Vi vil starte med å sette opp et utviklingsmiljø og vil da introdusere deg til de vitenskapelige bibliotekene. Del 2: Håndtere data Lær hvordan du får data fra ulike gratis kilder som Yahoo Finance, CBOE og andre nettsteder. Les og skriv flere dataformater, inkludert CSV - og Excel-filer. Del 3: Forsker strategier Lær å beregne PL og tilhørende resultatmålinger som Sharpe og Drawdown. Bygg en handelsstrategi og optimaliser ytelsen. Flere eksempler på strategier diskuteres i denne delen. Del 4: Going live Denne delen er sentrert rundt Interactive Brokers API. Du lærer hvordan du får realtids lagerdata og plasserer livebestillinger. Massevis av eksemplskode Kursmaterialet består av notatbøker som inneholder tekst sammen med interaktiv kode som denne. Du vil kunne lære ved å samhandle med koden og endre den til din egen smak. Det vil være et godt utgangspunkt for å skrive egne strategier Mens noen emner blir forklart i detalj, for å hjelpe deg med å forstå de underliggende konseptene, vil du i de fleste tilfeller ikke trenger å skrive din egen lavnivåkode på grunn av støtte fra eksisterende åpne - kilder biblioteker. TradingWithPython bibliotek kombinerer mye av funksjonaliteten som diskuteres i dette kurset som en ferdig til bruk-funksjon, og vil bli brukt gjennom hele kurset. Pandas vil gi deg all den kraftige løftekraften som trengs for datatrykk. Alle koden er gitt under BSD-lisensen, slik at den brukes i kommersielle forpliktelser. Kursuskarakter En pilot av kurset ble avholdt våren 2013, dette er hva studentene fikk å si: Matej godt utformet kurs og god trener. Absolutt verdt sin pris og min tid Lave Jev visste åpenbart hans ting. dybde av dekning var perfekt. Hvis Jev kjører noe slikt igjen, er jeg den første som melde meg på. John Phillips Ditt kurs fikk meg til å hoppe, begynte å tenke på python for lagersystemanalyse. Forex Trading Diary 1 - Automatisert Forex Trading med OANDA API Jeg nevnte tidligere i QuantStart: 2014 I Review-artikkelen at jeg skulle tilbringe noe av 2015 som skriver om automatisert forex trading. Gitt at jeg selv vanligvis utfører forskning i aksjer og futures markeder, syntes jeg det ville være morsomt (og pedagogisk) å skrive om mine erfaringer med å gå inn i valutamarkedet i stil med en dagbok. Hver dagbokspost vil forsøke å bygge på alle de tidligere, men bør også være relativt selvstendig. I denne første oppføringen i dagboken beskriver jeg hvordan du oppretter en ny praksismeglingskonto med OANDA, samt hvordan du lager en grunnleggende multithreaded hendelsesdrevet handelsmotor som automatisk kan utføre handler både i praksis og i liveinnstilling. I fjor brukte vi mye tid på å se på hendelsesdrevet backtester. primært for aksjer og ETFer. Den jeg presenterer nedenfor, er rettet mot forex, og kan brukes til enten papirhandel eller live trading. Jeg har skrevet alle de følgende instruksjonene for Ubuntu 14.04, men de burde enkelt oversettes til Windows eller Mac OS X, ved hjelp av en Python-distribusjon som Anaconda. Det eneste ekstra biblioteket som brukes til Python-handelsmotoren, er forespørselsbiblioteket, som er nødvendig for HTTP-kommunikasjon til OANDA API. Siden dette er det første innlegget direkte om valutahandel, og koden som presenteres under, kan rett og slett tilpasses et levende handelsmiljø, vil jeg gjerne presentere følgende ansvarsfraskrivelser: Ansvarsfraskrivelse: Utveksling av valuta på margin har høy risiko, og kan ikke være egnet for alle investorer. Tidligere resultater er ikke en indikasjon på fremtidige resultater. Den høye innflytelsen kan virke mot deg så vel som for deg. Før du bestemmer deg for å investere i utenlandsk valuta, bør du nøye vurdere investeringsmålene dine, nivået på erfaring og risikoen for appetitten. Muligheten er at du kan opprettholde et tap av noen eller hele din opprinnelige investering, og derfor bør du ikke investere penger som du ikke har råd til å tape. Du bør være oppmerksom på alle risikoene forbundet med valutahandel, og søk råd fra en uavhengig finansiell rådgiver hvis du er i tvil. Denne programvaren er gitt som det er og eventuelle uttrykte eller underforståtte garantier, inkludert, men ikke begrenset til, de underforståtte garantiene for salgbarhet og egnethet for et bestemt formål, blir fraskrevet. Regentene eller bidragsyterne skal under ingen omstendigheter holdes ansvarlige for direkte, indirekte, tilfeldige, spesielle, eksemplariske eller følgeskader (inkludert, men ikke begrenset til, anskaffelse av erstatningsvarer eller tjenester tap av bruk, data eller fortjeneste eller avbrudd i virksomheten ) imidlertid forårsaket og på noen teorier om ansvar, enten i kontrakt, strenge ansvar eller skade (herunder uaktsomhet eller på annen måte) som oppstår i noen ut av bruken av denne programvaren, selv om det er informert om muligheten for slik skade. Sette opp en konto med OANDA Det første spørsmålet som kommer til å tenke er hvorfor velge OANDA. Enkelt sagt, etter litt Googling rundt for forex meglere som hadde APIer, så jeg at OANDA nylig hadde gitt ut en riktig REST API som lett kunne kommuniseres med fra nesten hvilket som helst språk på en ekstremt enkel måte. Etter å ha lest gjennom utviklerens API-dokumentasjon. Jeg bestemte meg for å prøve dem, i hvert fall med en øverkonto. For å være klar - Jeg har ingen tidligere eller eksisterende forhold til OANDA og gir bare denne anbefalingen basert på min begrensede erfaring å spille rundt med deres praksis API og litt kort bruk (for nedlasting av markedsdata) mens de er ansatt i et fond tidligere. Hvis noen har kommet over noen andre forex meglere som også har en tilsvarende moderne API, så er Id glad for å gi dem en titt også. Før du bruker APIen, er det nødvendig å registrere deg for en brukerkonto. For å gjøre dette, gå til registreringslinken. Du vil se følgende skjermbilde: Du vil da kunne logge inn med påloggingsinformasjonen din. Sørg for å velge fanen fxTradePractice fra påloggingsskjermen: En gang i må du notere konto-IDen din. Den er oppført under den svarte Min fonds overskriften ved siden av Primary. Mine er et 7-sifret tall. I tillegg må du også generere en personlig API-token. For å gjøre dette klikker du på Administrer API-tilgang under fanen Andre handlinger nederst til venstre: På dette stadiet vil du kunne generere en API-token. Du trenger nøkkelen til bruk senere, så sørg for å skrive den ned også. Du vil nå starte FXTrade Practice-programmet, som gjør det mulig for oss å se de utførte ordrene og vår (papir) fortjenesteforlengelse. Hvis du kjører et Ubuntu-system, må du installere en litt annen versjon av Java. Spesielt Oracle-versjonen av Java 8. Hvis du ikke gjør dette, vil treningssimulatoren ikke lastes fra nettleseren. Jeg kjørte disse kommandoene på systemet mitt: Du vil nå kunne starte praksishandelsmiljøet. Gå tilbake til OANDA-dashbordet og klikk på den grønne uthevede Launch FXTrade Practice-lenken. Det vil hente en Java-dialog som spør om du vil kjøre den. Klikk Kjør og fxTrade Practice-verktøyet lastes. Mine misligholdte til et 15 min lysesteg over EURUSD med sitatpanelet til venstre: På dette tidspunktet er vi klare til å begynne å designe og koda vårt automatiserte forex trading system mot OANDA API. Oversikt over handelsarkitektur Hvis du har fulgt hendelsesdrevet backtester-serien for aksjer og ETFer som jeg opprettet i fjor, vil du være oppmerksom på hvordan et slikt hendelsesdrevet handelssystem fungerer. For de av dere som er nye til hendelsesdrevet programvare. Jeg vil sterkt anbefale å lese gjennom artikkelen for å få innblikk i hvordan de fungerer. I hovedsak utføres hele programmet i en infinte mens sløyfe som bare avsluttes når handelssystemet er slått av. Programmets sentrale kommunikasjonsmekanisme er gitt via en kø som inneholder hendelser. Køen blir stadig bedt om å se etter nye hendelser. Når en hendelse er tatt av toppen av køen, må den håndteres av en passende komponent av programmet. Derfor kan en markedsdatainngang skape TickEvent s som er plassert på køen når en ny markedspris kommer. Et signalgenererende strategibjekt kan opprette OrderEvent s som skal sendes til en megling. Nytten av et slikt system er gitt av det faktum at det ikke spiller noen rolle hvilken rekkefølge eller typer hendelser som er plassert på køen, da de alltid vil håndteres riktig av den rette komponenten i programmet. I tillegg kan ulike deler av programmet kjøres i separate tråder. noe som betyr at det aldri er noen som venter på noen bestemt komponent før de behandler andre. Dette er ekstremt nyttig i algoritmiske handelssituasjoner der markedsdataforhandlere og strategisignalgeneratorer har svært forskjellige ytelsesegenskaper. Den viktigste handelsløkken er gitt av følgende Python pseudokode: Som vi nevnte ovenfor kjører koden i en uendelig sløyfe. For det første blir køen pollet for å hente en ny hendelse. Hvis køen er tom, starter sløyfen bare på nytt etter en kort søvnperiode kjent som hjerteslag. Hvis en hendelse er funnet, vurderes typen, og deretter blir den aktuelle modulen (enten strategien eller utførelsesbehandleren) pålagt hendelsen og muligens generere nye som går tilbake til køen. De grunnleggende komponentene som vi skal opprette for vårt handelssystem inkluderer følgende: Streaming Price Handler - Dette vil holde en langvarig forbindelse åpen for OANDAs servere og sende tick-data (dvs. budskap) over tilkoblingen for alle instrumenter som var interessert i. Strategy Signal Generator - Dette vil ta en sekvens av tick hendelser og bruke dem til å generere handelsordrer som vil bli utført av utførelsen handler. Execution Handler - Tar et sett med ordrehendelser og utfører dem blindt ut med OANDA. Hendelser - Disse objektene utgjør meldingene som sendes rundt på hendelseskøen. Vi krever bare to for denne implementeringen, nemlig TickEvent og OrderEvent. Hovedinngangspunkt - Hovedinngangspunktet inkluderer også handelsløkken som kontinuerlig avstemmer meldingskøen og sender meldinger til riktig komponent. Dette kalles ofte hendelsesløkken eller hendelseshåndtereren. Vi vil nå diskutere implementeringen av koden i detalj. Nederst i artikkelen er hele listen over alle kildekodefiler. Hvis du plasserer dem i samme katalog og kjører python trading. py, begynner du å generere bestillinger, forutsatt at du har fylt ut kontonavn og godkjennings token fra OANDA. Python-implementering Det er dårlig praksis å lagre passord eller autentiseringsnøkler i en kodebase som du aldri kan forutse hvem som til slutt vil få tilgang til et prosjekt. I et produksjonssystem vil vi lagre disse legitimasjonene som miljøvariabler med systemet, og deretter spørre disse envvars hver gang koden omfordeles. Dette sikrer at passord og autofiler ikke blir lagret i et versjonskontrollsystem. Men siden vi bare er interessert i å bygge et leketøyhandelssystem, og ikke er opptatt av produksjonsdetaljer i denne artikkelen, vil vi i stedet skille disse autentegnene i en innstillingsfil. I den følgende settings. py konfigurasjonsfilen har vi en ordbok som heter MILJØER som lagrer API-sluttpunktene for både OANDA-prisavspillings-API og trading API. Hver delordbok inneholder tre separate API-endepunkter: ekte. praksis og sandkasse. Sandbox API er rent for testing kode og for å sjekke at det ikke er noen feil eller feil. Det har ikke oppetidsgarantier for de virkelige eller praktiske APIer. Practice API, i hovedsak, gir muligheten til papirhandel. Det vil si at den gir alle funksjonene i den virkelige API-en på en simulert praksiskonto. Den virkelige API er bare det - det er live trading Hvis du bruker det endepunktet i koden din, vil det handle mot din livekontosaldo. VIKTIG FORSIKTIG VIKTIG: Når du handler mot praksis-API, husk at en viktig transaksjonskostnad, det som påvirker markedet. er ikke vurdert. Siden ingen bransjer faktisk plasseres i miljøet, må denne kostnaden på annen måte utgis andre steder ved hjelp av en markedsvirkningsmodell hvis du ønsker å realistisk vurdere ytelsen. I det følgende bruker vi brukskonto som gitt av DOMAIN-innstillingen. Vi trenger to separate ordbøker for domenene, en hver for streaming og trading API-komponentene. Til slutt har vi ACCESSTOKEN og ACCOUNTID. Ive fylte de to med dummy-IDer, slik at du må bruke din egen, som kan nås fra OANDA-kontosiden: Det neste trinnet er å definere hendelsene som køen skal bruke for å hjelpe alle de enkelte komponentene til å kommunisere. Vi trenger to: TickEvent og OrderEvent. Den første lagrer informasjon om instrumentmarkedsdata som (beste) budskapet og handelstiden. Den andre brukes til å overføre ordrer til utførelseshandleren og inneholder dermed instrumentet, antall enheter som skal handles, ordretypen (marked eller grense) og siden (dvs. kjøp og salg). For fremtidssikker vår begivenhetskode skal vi lage en baseklasse som heter Event og har alle hendelser arvet fra dette. Koden er oppgitt nedenfor i events. py: Den neste klassen vi skal lage vil håndtere handelsstrategien. I denne demonstrasjonen skal vi lage en ganske nonsensisk strategi som bare mottar alle markedsklikkene, og på hvert 5. kryss kjøper eller selger 10.000 enheter EURUSD. Klart dette er en latterlig strategi. Det er imidlertid fantastisk for testing, fordi det er greit å kode og forstå. I fremtidige dagbokoppføringer erstatter vi dette med noe betydelig mer spennende som vil (forhåpentligvis) få et overskudd Strategispy-filen finner du nedenfor. La oss jobbe gjennom det og se hva som foregår. For det første importerer vi det tilfeldige biblioteket og OrderEvent-objektet fra events. py. Vi trenger tilfeldig lib for å velge en tilfeldig kjøp eller salgsordre. Vi trenger OrderEvent, da dette er hvordan strategibjektet sender ordrer til hendelseskøen, som senere blir utført av eksekveringshandleren. Klassen TestRandomStrategy tar bare instrumentet (i dette tilfellet EURUSD), antall enheter og hendelsene kø som et sett med parametere. Det skaper da en ticks counter som brukes til å fortelle hvor mange TickEvent-forekomster det har sett. Det meste av arbeidet skjer i beregningsignalmetoden, som bare tar en hendelse, bestemmer om det er en TickEvent (ellers ignorer) og øker telleren. Den sjekker deretter for å se om tellingen er delbar med 5 og deretter tilfeldigvis kjøper eller selger, med en markedsordre, det angitte antall enheter. Det er absolutt ikke verdens største handelsstrategi, men det vil være mer enn egnet for våre OANDA-brokerage-API-testformål. Den neste komponenten er utførelseshandleren. Denne klassen har til oppgave å handle på OrderEvent-forekomster og gjøre forespørsler til megleren (i dette tilfellet OANDA) på dum måte. Det vil si at det ikke er noen risikostyring eller overbygning av potetkonstruksjon. Utførelseshandleren vil bare utføre enhver ordre som den har blitt gitt. Vi må sende all autentiseringsinformasjon til utførelsesklassen, inkludert domenet (praksis, ekte eller sandkasse), tilgangstoken og konto-ID. Vi oppretter så en sikker forbindelse med httplib. en av Pythons bygget i biblioteker. Det meste av arbeidet skjer i henrettelsesordre. Metoden krever en hendelse som en parameter. Den konstruerer deretter to ordbøker - topptekstene og parametrene. Disse ordbøkene vil da bli riktig kodet (delvis av urllib. Et annet Python-bibliotek) som skal sendes som en HTTP POST-forespørsel til OANDAs API. Vi sender parametrene Content Type og Authorization, som inkluderer vår autentiseringsinformasjon. I tillegg koder vi parametrene, som inkluderer instrumentet (EURUSD), enheter, ordre og side (buysell). Til slutt legger vi forespørselen og lagrer svaret: Den mest komplekse delen av handelssystemet er StreamingForexPrices-objektet, som håndterer markedsprisoppdateringene fra OANDA. Det er to metoder: connecttostream og streamtoqueue. Den første metoden bruker Python-forespørselsbiblioteket til å koble til en streaming-kontakt med de aktuelle overskriftene og parameterne. Parametrene inkluderer konto-ID og nødvendig instrumentliste som skal lyttes til oppdateringer (i dette tilfellet er det bare EURUSD). Merk følgende linje: Dette forteller at forbindelsen skal streames og dermed holdes åpen på en langsom måte. Den andre metoden, streamtoqueue. faktisk prøver å koble til strømmen. Hvis svaret ikke lykkes (det vil si at svarkoden ikke er HTTP 200), returnerer og returnerer du bare. Hvis det lykkes, prøver vi å laste JSON-pakken tilbake til en Python-ordbok. Endelig konverterer vi Python-ordboken med instrumentet, budskapet og tidsstempelet til et TickEvent som sendes til hendelseskøen: Vi har nå alle hovedkomponentene på plass. Det siste trinnet er å pakke opp alt vi har skrevet så langt inn i et hovedprogram. Målet med denne filen, kjent som trading. py. er å lage to separate tråder. hvorav den ene driver prissentaren og den andre som driver handelshandleren. Hvorfor trenger vi to separate tråder Enkeltvis utfører vi to separate kodenheter, som begge løper kontinuerlig. Hvis vi skulle lage et ikke-threaded-program, så vil strømuttaket som brukes til prisoppdateringene aldri slippe tilbake til hovedkoden, og derfor ville vi aldri faktisk utføre noen handel. Tilsvarende, hvis vi kjørte handelsløkken (se nedenfor), ville vi aldri faktisk returnere strømningsbanen til prisstrømkontakten. Derfor trenger vi flere tråder, en for hver komponent, slik at de kan utføres uavhengig. De vil både kommunisere til hverandre via hendelsekøen. La oss undersøke dette litt videre. Vi lager to separate tråder med følgende linjer: Vi overfører funksjonen eller metodenavnet til målordningsargumentet og sender deretter en iterbar (for eksempel en liste eller tuple) til args-søkeordargumentet, som deretter overfører disse argumentene til den faktiske metodefunksjonen . Til slutt begynner vi begge trådene med følgende linjer: Dermed er vi i stand til å kjøre to, effektivt uendelige looping, kodesegmenter uavhengig, som begge kommuniserer gjennom hendelseskøen. Vær oppmerksom på at Python-tråderbiblioteket ikke produserer et ekte multi-core multithreaded miljø på grunn av CPython-implementeringen av Python og Global Interpreter Lock (GIL). Hvis du vil lese mer om multithreading på Python, kan du se på denne artikkelen. Lar oss undersøke resten av koden i detalj. For det første importerer vi alle nødvendige biblioteker, inkludert kø. threading og tid. Vi importerer deretter alle de ovennevnte kodefilene. Jeg personlig foretrekker å kapitalisere noen konfigurasjonsinnstillinger, som er en vane jeg plukket opp fra å jobbe med Django. Deretter definerer vi handelsfunksjonen, som ble forklart i Python-pseudokoden ovenfor. En uendelig stundsløyfe utføres (mens True:) som kontinuerlig avstemmer fra hendelseskøen og bare hopper om sløyfen hvis den er funnet tom. Hvis en hendelse er funnet, er det enten en TickEvent eller en OrderEvent, og deretter kalles den aktuelle komponenten for å utføre den. I dette tilfellet er det enten en strategi eller eksekveringshåndterer. Sløyfen sover ganske enkelt for hjerterytme sekunder (i dette tilfellet 0,5 sekunder) og fortsetter. Endelig definerer vi hovedinngangen for koden i hovedfunksjonen. Det er godt kommentert nedenfor, men jeg vil oppsummere her. I hovedsak ordner vi arrangementskøen og definerer instrumentenheter. Vi lager deretter StreamingForexPrices prisstrømningsklassen og deretter Implementeringshåndteringshåndteringen. Begge mottar de nødvendige godkjenningsdetaljer som er gitt av OANDA når du oppretter en konto. Vi lager deretter TestRandomStrategy-forekomsten. Til slutt definerer vi de to trådene og starter dem: For å kjøre koden trenger du ganske enkelt å plassere alle filene i samme katalog og ringe følgende på terminalen: Merk at for å stoppe koden på dette stadiet krever en hard drep av Python prosess. via Ctrl-Z eller tilsvarende Ive ikke lagt til en ekstra tråd for å håndtere å lete etter sys. exit () som ville være nødvendig for å stoppe koden trygt. En potensiell måte å stoppe koden på en UbuntuLinux-maskin til, er å skrive: Og send deretter utgangen av dette (et prosessnummer) til følgende: Hvor PROCESSID må byttes ut med utgangen fra pgrep. Vær oppmerksom på at dette ikke er spesielt god praksis I senere artikler vil vi skape en mer sofistikert stopstart-mekanisme som benytter Ubuntus-prosessovervåking for å få handelssystemet til å kjøre 247. Utgangen etter 30 sekunder eller så, avhengig av tidspunktet for dag i forhold til de viktigste handelstimene for EURUSD, for ovennevnte kode, er gitt nedenfor: De fem første linjene viser JSON-tippdata returnert fra OANDA med budpris. Deretter kan du se utførelsesordreutgangen, samt JSON-responsen returnert fra OANDA, som bekrefter åpningen av en kjøpshandel for 10.000 enheter av EURUSD og prisen den ble oppnådd på. Dette vil fortsette å løpe på ubestemt tid til du dreper programmet med en Ctrl-Z-kommando eller lignende. Hva er neste I senere artikler skal vi utføre noen trengte forbedringer, inkludert: Virkelige strategier - Riktig forexstrategier som gir lønnsomme signaler. Produksjonsinfrastruktur - Implementering av ekstern server og 247 overvåket handelssystem, med stoppstartskapasitet. Portefølje og risikostyring - Portefølje og risiko overlegg for alle foreslåtte ordrer fra strategien. Flere strategier - Konstruere en portefølje av strategier som integreres i risikostyringsoverlegget. Som med aksjedrevet drevet backtester, må vi også opprette en forex backtesting-modul. Det vil la oss utføre rask forskning og gjøre det lettere å distribuere strategier. settings. py (husk å endre ACCOUNTID og ACCESSTOKEN): Bare å komme i gang med kvantitativ handel

No comments:

Post a Comment