Saturday 4 November 2017

Trading System Maskin Læring


Skrevet 238w siden Oppvoted by Vladimir Novakovski startet Quora maskin læringsgruppe, 2012-2014.First ville du fokusere på å samle så mye data som mulig og sette inn en enkelt stor tabell form Dette ville være historiske prisdata Kanskje øke dette med avisartikler, blogginnlegg, forandringer i ordregistrering forvandlet til ordtalsvektorer, osv. ved hjelp av naturlige tekstbehandlingsteknikker. Du vil da trene en overvåket algoritme for å kjøpe selgeravgjørelse. Egnede algoritmer er logistisk regresjon raskeste og tilfeldige skoger mest nøyaktige. Det er andre, som for eksempel støttevektormaskiner, forsterket beslutnings trær, 3-lags nevrale nettverk, men disse tilbyr ikke så god nøyaktighet som tilfeldige skoger, og ofte langsommere eller så mye fart som logistisk regresjon. Etter min mening ville det beste valget bare være logistisk regresjon, og den beste implementeringen er vowpal wabbit - ekstremt rask, kan håndtere store mengder data - 1 terabyte en time på en maskin, raskere fremdeles i klyngen - og åpne så urce Dette gjør det også mulig å tydelig se hvilke indikatorer kolonnene i tabellen er predictive. You kan også legge til avisartikler etc direkte som tekst til dette ved hjelp av hashing-tricket. Dette er også implementert i vowpal wabbit også, og så kan du håndtere veldig store gratisformede tekstartikler i en enkelt rad også. Når du har gjort det ovenfor, kan du ikke lenger samle flere datakilder, det er på tide å flytte til funksjonsteknologistadiet. Du har allerede gjort noe av dette når du gjorde nlp ting, men du brukte standard teknikker - det var ikke tenke på å finne ut egne metoder. Det er to valg på dette tidspunktet - manuell og automatisk. Selvfølgelig oppdager folk på dette tidspunkt sine egne funksjoner. Dette handler handelsmenn mesteparten av tiden - de såkalte strategiene eller reglene Disse blir testet mot dataene - kalt backtesting. En annen, nyere, authomatisk metode har også nylig blitt tilgjengelig - uovervåket dyp læring Unservervised learning existed before, but it was of t han grunne variasjon og fungerte ikke bra i praksis Deep learning neurale nettverk ved hjelp av autoenkodere er en ny metode oppfunnet for bare 6 år siden som fungerer veldig bra. Dette papiret er en demonstrasjon av det. Ved å kaste mange datamaskiner på problemet, er det s Det er mulig å automatisk lage strategier. Jo større det neurale nettverket, desto bedre er det, men det kreves det flere datamaskiner. Dette er etter min mening bedre billigere enn å prøve å ansette mange kreative analytiske hardt arbeidende mennesker. 18k Vis Vis Oppvoter Ikke for reproduksjon. Jeg er faktisk i begynnelsen av å lage mitt automatiserte handelssystem, svaret på spørsmålet ditt er hvordan vil du tjene penger, vil du daytrade eller kjøpe og holde over tid, hva skal dine beregninger være for vurderer en god handel investering Du trenger å vite om markedet du skal tjene, i ditt tilfelle aksjemarkedet Hvis du skal gjøre en læring algo for trucking ruter bør du vite poss ible variabler involvert i trucking sammen med hvilke potensielle fallgruver du kommer til å løpe inn. Du kan få alle svarene i verden, men med mindre du er en veldig smart koder som kan ta i nesten infinere variabler og beskrive deres betydning og forhold til hverandre. Data er også en vurdering, hvor mange aksjer skal du spore Hvilke typer data trenger du Disse feeds vil løpe inn i tusenvis av måneder potensielt. Etter å ha gått ned denne banen for det siste året, er det en stor jobb og hindring for oppføring Du må få kunnskapen og planen din strategi.4 2k Vis Vis Oppvoter Ikke for Reproduksjon. Tad Slaff studerte ved University of Colorado Boulder. Here er en enkel enkel trinnvis veiledning om bruk av en maskinlæringsalgoritme for å handle det er en grunnleggende oversikt og bør gi deg den informasjonen du trenger for å bygge din egen. 5k Vis Vis Oppvoter Ikke for Reproduksjon. Dette innlegget vil detaljere hva jeg gjorde for å gjøre ca 500k fra høyfrekvent handel fra 2009 til 2010 Siden jeg var t racing helt uavhengig og kjører ikke lenger programmet mitt. Jeg er glad for å fortelle alt. Min handel var for det meste i Russel 2000 og DAX futures kontraktene. Nøkkelen til min suksess tror jeg ikke var i en sofistikert økonomisk ligning, men heller i den generelle algoritmen 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 Ngs 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. First Jeg vil bare demonstrere at min suksess ikke bare var et resultat av flaks Mitt program gjorde 1000-4000 handler per dag halvt lenge , halv kort og kom aldri inn i stillinger på mer enn noen få kontrakter om gangen. Dette betydde tilfeldig lykke fra en bestemt handel i gjennomsnitt, ganske fort. Resultatet var at jeg aldri mistet mor e enn 2000 på en dag og aldri hatt en miste 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 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 forhåpninger. 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 igjen. trades. Predicting price movements. Kanskje en åpenbar komponent i ethvert handelssystem er å være i stand til å forutse 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 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. Machine Learning Trading Systems. SPDR SP 500 ETF SPY er en av de allment handlede ETF-produktene på markedet, med rundt 200 milliarder kroner i eiendeler og gjennomsnittlig omsetning på under 200 millioner aksjer daglig. Så sannsynligheten for å være i stand til å utvikle et pengeproduksjonssystem ved bruk av allment tilgjengelig informasjon, kan virke å være slank til ingen. For å gi oss en kjempechans, vil vi fokusere på et forsøk på å forutsi den daglige bevegelsen i SPY, ved å bruke data fra forrige dag s session. In tillegg til de åpne høye lave og lukkede prisene på foregående dag økt, har vi valgt en rekke andre plausible variabler for å bygge ut funksjonen vektoren vi skal bruke i vår maskinlæringsmodell. Den daglige volumen. Den forrige dagens sluttkurs. 200-dagers, 50-dagers og 10-dagers glidende gjennomsnitt av sluttkurs. Den 252-dagers høye og lave prisene på SPY-serien. Vi vil forsøke å bygge en modell som prognostiserer den daglige avkastningen i ETF, dvs. O t 1 - C t C t. I denne øvelsen bruker vi daglige data fra begynnelsen av SPY-serien frem til slutten av 2014 for å bygge modellen, som vi da vil teste på utgående data som går fra jan 2015 til august 2016 I en høyfrekvent sammenheng vil det bli brukt mye tid på å evaluere, rense og normalisere dataene her står vi overfor langt færre problemer av den typen. ville standardisere inngangsdataene til å utjevne innflytelsen av variabler som kan måles på skalaer med svært forskjellige størrelsesordener. I dette eksemplet måles alle inngangsvariablene, med unntak av volum, i samme skala og derfor er standardisering utvilsomt unødvendig. Først er dataene i prøven loa ded og brukes til å lage et treningssett av regler som kartar funksjonvektoren til variabelen av interesse, over natten. I Mathematica 10 Wolfram introduserte en serie maskininlæringsalgoritmer som inkluderer regresjon, nærmeste nabo, nevrale nettverk og tilfeldige skoger, sammen med funksjonalitet for å evaluere og velge den mest utførte maskinlæringsteknikken. Disse fasilitetene gjør det veldig enkelt å lage en klassifiserings - eller prediksjonsmodell ved hjelp av maskinlæringsalgoritmer, for eksempel dette håndskriftgjenkjenningseksemplet. Vi lager en prediktiv modell på SPY-treningssettet, slik at Mathematica kan velg den beste maskininnlæringsalgoritmen. Det finnes en rekke alternativer for Predict-funksjonen som kan brukes til å kontrollere funksjonsvalg, algoritmtype, ytelsestype og mål, i stedet for å bare godta standardinnstillingene, slik vi har gjort her. Å bygge vår maskininnlæringsmodell, laster vi utdataene fra januar 2015 til august 2016 og lager en testsett. Vi neste opprett et PredictionMeasurement-objekt ved hjelp av nærmeste nabomodell som kan brukes til videre analyse. Det er ikke mye spredning i modellprognosene, som alle har positiv verdi. En vanlig teknikk i slike tilfeller er å trekke gjennomsnittet fra hver av prognosene og vi kan også standardisere dem ved å dividere med standardavviket. Spredningsgraden av faktiske versus prognose over natten avkastning i SPY ser nå ut som dette. Det er fortsatt en åpenbar mangel på spredning i prognosverdiene, sammenlignet med den faktiske avkastningen på natten, som vi kan korrigere ved standardisering Under alle omstendigheter ser det ut til å være et lite, ikke-lineært forhold mellom prognose og faktiske verdier, noe som holder ut noe håp om at modellen kan vise seg å være nyttig. Fra Forecasting to Trading. Det finnes ulike metoder for distribusjon av en prognosemodell i sammenheng med å skape et handelssystem Den enkleste ruten, som vi vil ta her, er å bruke en terskelport og konvertere de filtrerte prognosene direkte inn i et handelssignal. Men andre tilnærminger er mulige, for eksempel å forutsi prognosene fra flere modeller for å lage et prediksjonssammenheng. Bruke prognosene som innganger til en genetisk programmeringsmodell. Å følge prognosene i inngangslaget til en nevralnettmodell designet spesielt for å generere handelssignaler, i stedet for prognoser. I dette eksemplet vil vi opprette en handelsmodell ved å bruke et enkelt filter til prognosene, bare utelukke de verdiene som overskrider en spesifisert grense. Dette er et standardtrick som brukes til å isolere signalet i modellen fra bakgrunnsstøy Vi aksepterer bare de positive signalene som overskrider terskelnivået, og skaper et varig handelssystem, dvs. vi ignorerer prognoser som faller under terskelnivået. Vi kjøper SPY i nærheten når prognosen overskrider terskelen og går ut av en lang posisjon på neste dag er åpen Denne strategien gir følgende proforma resultater. Systemet har noen ganske attraktive funksjoner, inkludert en vinnersats av over 66 og en CAGR på over 10 for perioden utenfor prøven. Det er åpenbart at dette er en veldig grunnleggende illustrasjon som vi ønsker å faktorere i handelskommisjoner, og glidene som påløper inngående og spennende stillinger i post - og pre - markedsperioder, som vil påvirke ytelsen negativt, selvfølgelig På den annen side har vi knapt begynt å klø på overflaten når det gjelder variabler som kan vurderes for inkludering i funksjonsvektoren, og som kan øke modellens forklarende kraft. I andre ord, i virkeligheten er dette bare begynnelsen på en langvarig og vanskelig forskningsprosess. Dette enkle eksempelet bør imidlertid være nok til å gi leseren en smak av hva som er involvert i å bygge en prediktiv handelsmodell ved hjelp av maskinlæringsalgoritmer.

No comments:

Post a Comment