Monday 16 October 2017

Høyfrekvente Handel Indikatorer


Grunnleggende om Algoritmiske Trading Begreper og Eksempler. En algoritme er et bestemt sett med klart definerte instruksjoner som er rettet mot å utføre en oppgave eller prosess. Algoritmisk handel, automatisert handel, svart bokhandel eller ganske enkelt algo-trading er prosessen med å bruke datamaskiner programmert til Følg et definert sett med instruksjoner for å sette en handel for å generere fortjeneste med en hastighet og frekvens som er umulig for en menneskehandel. De definerte settene av regler er basert på timing, pris, kvantitet eller hvilken som helst matematisk modell. Bortsett fra profittmuligheter for handelsmann, algo-trading gjør markedene mer likvide og gjør handel mer systematisk ved å utelukke følelsesmessige menneskelige virkninger på handelsaktiviteter. Oppsett av næringsdrivende følger disse enkle handlekriteriene. Kjøp 50 aksjer på lager når 50-dagers glidende gjennomsnitt går over 200 dagers glidende gjennomsnitt. Selger aksjer på aksjen når det 50-dagers glidende gjennomsnittet går under 200-dagers glidende gjennomsnitt. Ved hjelp av dette settet med to enkle instruksjoner, er det enkelt å skrive det er et dataprogram som automatisk overvåker aksjekursen og de bevegelige gjennomsnittsindikatorene og legger kjøps - og salgsordrene når de definerte vilkårene er oppfylt. Trafikken trenger ikke lenger å holde øye med livepriser og grafer, eller legge inn ordrene manuelt Det algoritmiske handelssystemet gjør det automatisk for ham ved å identifisere handelsmuligheten riktig. For mer om å flytte gjennomsnitt, se Simple Moving Averages. Gjør trendene stående. All-trading gir følgende fordeler. Handler utført til de beste mulige prisene. Instant og nøyaktig handel ordre plassering og dermed høye muligheter for utførelse på ønsket nivå. Trader timet riktig og umiddelbart, for å unngå betydelige prisendringer. Reduserte transaksjonskostnader se gjennomføringsfeil eksempelet nedenfor. Samtidig automatisert sjekker på flere markedsforhold. Redusert risiko for manuelle feil ved å plassere trades. Backtest algoritmen, basert på tilgjengelig historisk og sanntid data. Reduced mulighet av feil av menneskelige handelsfolk basert på følelsesmessige og psykologiske faktorer. Den største delen av dagens algo-trading er høyfrekvent trading HFT, som forsøker å kapitalisere på å plassere et stort antall bestillinger med svært høye hastigheter på tvers av flere markeder og flere beslutningsparametre, basert på forhåndsprogrammerte instruksjoner For mer om handel med høyfrekvent handel, se Strategier og hemmeligheter for HFT-firmaer med høy frekvenshandel. All-trading brukes i mange former for handels - og investeringsvirksomhet, inkludert. Mid til langsiktige investorer eller kjøpspensjonspensjoner fond, fond, forsikringsselskaper som kjøper i aksjer i store mengder, men ønsker ikke å påvirke aksjekursene med diskrete, store voluminvesteringer. Korttidshandlere og selger sideaktører gjør beslutningstakere i spekulasjoner og arbitragerer til fordel for automatisert handel i tillegg, algo-trading hjelpemidler i å skape tilstrekkelig likviditet for selgere i markedet. Systematiske handelsfolk trend tilhenger par tra ders hedge funds osv. synes det er mye mer effektivt å programmere sine handelsregler og la programmet handle automatisk. Algoritmisk handel gir en mer systematisk tilnærming til aktiv handel enn metoder basert på en menneskelig næringsdrivendes intuisjon eller instinkt. Algoritmiske handelsstrategier. En ny strategi for algoritmisk handel krever en identifisert mulighet som er lønnsom når det gjelder bedre inntjening eller kostnadsreduksjon. Følgende er vanlige handelsstrategier som brukes i algo-trading. De vanligste algoritmiske handelsstrategiene følger trender i bevegelige gjennomsnitt, kanalbrudd, prisnivåbevegelser og tilhørende tekniske indikatorer. Disse er de enkleste og enkleste strategiene for å implementere gjennom algoritmisk handel fordi disse strategiene ikke involverer å foreta noen spådommer eller prisprognoser. Handler initieres basert på forekomsten av ønskelige trender som er enkle og grei å implementere gjennom algoritmer uten å komme inn i kompleksiteten til prediktiv analyse sis Ovennevnte eksempel på 50 og 200 dagers glidende gjennomsnitt er en populær trend som følger strategi. For mer om trend trading strategier, se Simple Strategies for å kapitalisere på Trends. Buying en dual listed lager til en lavere pris i ett marked og samtidig selge den på En høyere pris i et annet marked tilbyr prisforskjellen som risikofri gevinst eller arbitrage. Samme operasjon kan replikeres for aksjer i motsetning til futuresinstrumenter, da prisforskjeller eksisterer fra tid til annen. Implementere en algoritme for å identifisere slike prisforskjeller og plassere bestillingene gir lønnsomme muligheter på en effektiv måte. Indeksfondene har definert perioder med rebalansering for å bringe sine beholdninger på nivå med deres respektive referanseindekser. Dette skaper lønnsomme muligheter for algoritmiske handelsmenn, som utnytter forventede bransjer som tilbyr 20-80 basispoeng fortjeneste avhengig av tallet av aksjer i indeksfondet, like før indeksfondet rebalancing Slike handler er initiert via algoritmiske handelssystemer for rettidig utførelse og beste priser. Mange påviste matematiske modeller, som den delta-nøytrale handelsstrategien, som tillater handel på kombinasjon av opsjoner og den underliggende sikkerheten der bransjer er plassert for å kompensere positive og negative deltakere så at porteføljedeltaket opprettholdes til null. Mean reverseringsstrategi er basert på ideen om at høye og lave priser på en eiendel er et midlertidig fenomen som regelmessig vender tilbake til gjennomsnittverdien. Identifisere og definere et prisklasse og implementeringsalgoritme basert på det tillater handler som skal plasseres automatisk når prisen på aktiva bryter inn og ut av sitt definerte område. Volumvekt gjennomsnittlig prisstrategi bryter opp en stor ordre og frigjør dynamisk bestemte mindre stykker av ordren til markedet ved hjelp av aksjespesifikke historiske volumprofiler. Målet er å Kjør bestillingen nær Volumvektet Gjennomsnittlig Pris VWAP, og derved nytte av gjennomsnittlig pris. Tid vi ighted gjennomsnittlig prisstrategi bryter opp en stor ordre og frigjør dynamisk bestemte mindre stykker av ordren til markedet ved å bruke jevnt fordelte tidsluker mellom en start og sluttid. Målet er å utføre bestillingen nær gjennomsnittlig pris mellom start - og sluttider og dermed minimere markedsvirkningen. Inntil handelsordren er fullstendig, fortsetter denne algoritmen å sende partielle ordrer i henhold til definert deltakelsesforhold og i henhold til volumet som handles på markedene. Den relaterte trinnstrategien sender ordrer til en brukerdefinert prosentandel av markedet volum og øker eller reduserer denne deltakelsesraten når aksjekursen når brukerdefinerte nivåer. Implementeringsbriststrategien tar sikte på å minimere eksekveringskostnaden for en ordre ved å handle i sanntidsmarkedet, og dermed spare på kostnaden for ordren og nytte fra mulighetskostnaden ved forsinket gjennomføring Strategien vil øke den målrettede deltakelseshastigheten når aksjekursen beveger seg gunstig og redusere det når aksjekursen beveger seg negativt. Det er noen spesielle klasser av algoritmer som forsøker å identifisere hendelser på den andre siden. Disse sniffingsalgoritmene, som for eksempel brukes av en selger side markedsfører, har den innebygde intelligensen til å identifisere eksistensen av noen algoritmer på kjøpssiden av en stor ordre. Slik deteksjon gjennom algoritmer vil hjelpe markedsmakeren til å identifisere store ordremuligheter og gjøre det mulig for ham å dra nytte av å fylle ordrene til en høyere pris. Dette er noen ganger identifisert som høyteknologisk front - løp For mer om høyfrekvent handel og bedragerisk praksis, se Hvis du kjøper aksjer på nettet, blir du involvert i HFTs. Technical Requirements for Algorithmic Trading. Implementering av algoritmen ved hjelp av et dataprogram er den siste delen, klubbbedret med backtesting. Utfordringen er å forvandle den identifiserte strategien til en integrert datastyrt prosess som har tilgang til en handelskonto for å plassere ordrer. Følgende er nødvendig r programmeringskunnskap til å programmere den nødvendige handelsstrategien, ansatte programmerere eller ferdigstillede handelssoftwareforbindelser og tilgang til handelsplattformer for å plassere ordrer. Tilgang til markedsdatainnmatninger som vil bli overvåket av algoritmen for muligheter til å plassere ordrer. Evnen og infrastruktur for backtest systemet en gang bygget, før den går live på ekte markeder. Tilgjengelig historisk data for backtesting, avhengig av kompleksiteten av regler implementert i algoritmen. Her er et omfattende eksempel Royal Dutch Shell RDS er notert på Amsterdam Børs AEX og London Børs LSE La oss bygge en algoritme for å identifisere arbitrasjemuligheter. Her er noen interessante observasjoner. AEX handler i euro, mens LSE handler i Sterling Pounds. Dagen til en times tidsforskjell åpner AEX en time tidligere enn LSE, etterfulgt av begge børser handler samtidig for de neste par timene og handler kun i LSE i løpet av den siste timen når AEX lukkes. Kan vi utforske t han mulighet for arbitragehandel på Royal Dutch Shell-børsen notert på disse to markedene i to forskjellige valutaer. Et dataprogram som kan lese nåværende markedspriser. Prisfeed fra både LSE og AEX. A forex rate feed for GBP-EUR valutakurs. Ordne plassering evne som kan rute ordren til riktig utveksling. Back-testing evne på historiske pris feeds. The dataprogram bør utføre følgende. Read innkommende pris feed av RDS lager fra begge børser. Bruk de tilgjengelige valutakursene konvertere pris av en valuta til andre. Hvis det eksisterer en stor nok prisavvik som diskonterer meglerkostnadene som fører til en lønnsom mulighet, legger du kjøpsordren på lavere prisutveksling og salgsordre på høyere prissentral. Hvis ordrene utføres som ønsket, arbitrage fortjenesten vil følge. Simple og Easy Men praksis av algoritmisk handel er ikke så enkelt å vedlikeholde og utføre Husk, hvis du kan plassere en algo-g enerated trade, så kan de andre markedsdeltakere. Derfor fluktuerer prisene i milli - og til og med mikrosekunder I eksempelet ovenfor, hva skjer hvis kjøpekjøpene dine blir henrettet, men selger handel, da selgerprisene endres når bestillingen treffes marked Du vil ende opp med å sitte med en åpen posisjon som gjør arbitrage-strategien din verdiløs. Det er flere risikoer og utfordringer, for eksempel systemfeilrisiko, nettverkstilkoblingsfeil, tidsforsinkelser mellom handelsordre og utførelse, og viktigst av alt, ufullkommen algoritmer Jo mer komplekse en algoritme, desto strengere backtesting er nødvendig før den blir satt i gang. Kvantitativ analyse av en algoritme s ytelse spiller en viktig rolle og bør undersøkes kritisk. Det er spennende å gå for automatisering støttet av datamaskiner med en ide å tjene penger uten problemer Men man må sørge for at systemet er grundig testet og kreves grenser er satt Analytiske handelsfolk bør vurdere å lære programmet ming og bygningssystemer for seg selv, for å være sikker på å implementere de riktige strategiene på idiotsikker måte. Forsiktig bruk og grundig testing av algo-trading kan skape lønnsomme muligheter. Renten der en depotinstitusjon gir midler opprettholdt i Federal Reserve til en annen Depository institution.1 Et statistisk mål for spredningen av avkastning for en gitt sikkerhets - eller markedsindeks Volatilitet kan enten måles. En handling vedtok den amerikanske kongressen i 1933 som bankloven, som forbyde handelsbanker å delta i investeringen. refererer til hvilken som helst jobb utenfor gårder, private husholdninger og nonprofit sektor. Det amerikanske presidiet for arbeid. Den valuta forkortelse eller valutasymbol for den indiske rupee INR, valutaen til India Rupee består av 1. Et første bud på en konkurs selskapets eiendeler fra en interessert kjøper valgt av konkursfirmaet Fra et basseng av bidders. Forex Robots HF-Scalping EURUSD, AUDUSD. Limited Tidsbud fra BJF Trading Group inc. Forex Robot HF-Scalping. Forex Robot MT4 Ekspertrådgiver HF-Scalping er høyfrekvent, fullautomatisert handelsstrategi for MT4-plattformen, basert på prisbevegelsesindikatoren og Keltner Channel Indicator. Roboten analyserer ikke bare lengden på minuttlyset M1, men også de tidsmessige egenskapene til dannelsen av lys, dannelsen av høy og lav HF-Scalping Forex-robot er følsom for megler, og du trenger ekte ECN STP-konto. High-Frequency Explanation. High-Frequency Trading - En datastyrt investeringsstrategi som vektlegger høyt transaksjonsvolum, ekstremt kortvarige posisjoner og rask regelbasert automatisert kjøp og salg. Høyfrekvent handel utføres av datalgoritmer operert av investeringsselskaper som reagerer på forhåndsdefinert marked vilkår for å generere kortsiktige fortjeneste. Opptakseksempler. Keltner Channel Explanation. Keltner Channel er en teknisk analyseindikator som viser en sentral movi ng gjennomsnittlig linje pluss kanallinjer på avstand over og under Indikatoren er oppkalt etter Chester W Keltner 1909 1998 som beskrev den i sin 1960-bok Hvordan tjene penger på varer Dette navnet ble brukt av de som hørte om det fra ham, men Keltner kalte den ti-dagers glidende gjennomsnittlig handelsregel og gjorde ingen krav på noen originalitet for ideen. I Keltners beskrivelse er midtlinjen et 10-dagers enkeltflytende gjennomsnitt av typisk pris, hvor typisk pris hver dag er gjennomsnittet av høyt, lavt og nært. Linjene over og under trekkes avstand fra den midterste linjen, en avstand som er det enkle glidende gjennomsnittet av de siste 10 dagers handelsområdene, dvs. rekkevidde høyt til lavt på hver dag. Handelsstrategien er å betrakte en Lukk over den øvre linjen som et sterkt bullish signal eller en nær under den nedre linjen som sterk bearish sentiment, og kjøp eller selg med trenden tilsvarende, men kanskje med andre indikatorer for å bekrefte. Live kontoovervåking 1. Live kontoovervåker ing 2.Trading Resultat Analyse av currency. Risk av Run Analysis. Limited time offer. Forex Robot HF-Scalping.1 JForex og 1 MT4 License. one tid payment. free support. Money tilbake garanti 30 dager. Dette innlegget vil detaljere hva jeg gjorde for å gjøre ca 500k fra høyfrekvent handel fra 2009 til 2010 Siden jeg handlet helt uavhengig og ikke lenger kjører programmet mitt, er jeg glad for å fortelle alt. Min handel var for det meste i Russel 2000 og DAX futures kontraktene. Nøkkelen til min suksess, Jeg tror ikke var 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 noe sofistikert terminologi her fordi da jeg installerte programmet mitt var det alt basert på intuisjon Andrew Ngs fantastiske maskinlæringskurs var ikke tilgjengelig ennå - btw hvis du klikker på denne linken, vil du bli tatt til mitt nåværende prosjekt CourseTalk, et gjennomgangsside for MOOCs. Først vil jeg bare de monstre at suksessen min ikke bare var et resultat av flaks. Mitt program 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 flaks fra en bestemt handel i gjennomsnitt 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