Tuesday 3 October 2017

Handels System Objektiv Funksjon


Slik optimaliserer du trading system. NOTE Dette er ganske avansert emne Vennligst les tidligere AFL opplæringsprogrammer først. Ideen bak en optimalisering er enkel Først må du ha et handelssystem, dette kan være en enkel, flytende gjennomsnittsovergang for eksempel I nesten alle systemer der er noen parametre som gjennomsnittsperiode som bestemmer hvordan gitt system oppfører seg, det vil si at det er godt egnet for langsiktig eller kort sikt, hvordan reagerer det på svært volatile aksjer osv. Optimaliseringen er prosessen med å finne optimale verdier av de parametrene som gir høyest fortjeneste fra systemet for et gitt symbol eller en portefølje med symboler AmiBroker er en av de svært få programmene som gir deg mulighet til å optimere systemet på flere symboler samtidig. For å optimalisere systemet må du definere fra en opptil ti parametere som skal optimaliseres. hva er minimum og maksimum tillatt verdi for parameteren og i hvilke trinn denne verdien skal oppdateres AmiBroker utfører deretter flere tilbakemeldinger som systemet bruker A LL mulige kombinasjoner av parameterværdier Når denne prosessen er ferdig, viser AmiBroker listen over resultater sortert etter nettoresultatet. Du kan se verdiene for optimaliseringsparametere som gir best resultat. Skrive AFL formel. Optimalisering i back tester støttes via ny funksjon kalles optimalisere Syntaxen til denne funksjonen er som følger. variabel optimaliser Beskrivelse, standard min max trinn. variabel - er normal AFL-variabel som får tildelt verdien returnert ved å optimalisere funksjonen Ved normal backtesting, skanning, leting og kommende moduser optimaliserer funksjonen returnerer standard verdi, slik at ovennevnte funksjonsanrop svarer til variabel standard. I optimaliseringsmodus optimaliserer funksjonen returnerer suksessive verdier fra min til maks inklusive med trinnsteging. Beskrivelsen er en streng som brukes til å identifisere optimaliseringsvariabelen og vises som et kolonnenavn i optimaliseringsresultatlisten. default er en standardverdi som optimaliserer avkastningen i leting , indikator, kommentar, skanning og normal tilbakestillingstest. min er en minimumsverdi av variabelen som er optimalisert. max er en maksimumsverdi av variabelen som er optimalisert. step er et intervall som brukes til å øke verdien fra min til max. AmiBroker støtter opptil 64 samtaler for å optimalisere funksjonen derfor opptil 64 optimaliseringsvariabler, merk at hvis du bruker uttømmende optimalisering, er det veldig godt å begrense antall optimaliseringsvariabler til bare få. Hver samtale for å optimalisere generere maksimalt trinnoptimaliseringsløkker og flere samtaler for å optimalisere multiplisere antall forsøk som trengs. For eksempel kan optimalisering av to parametere ved hjelp av 10 trinn kreve 10 10 100 optimaliseringsløkker. Kall optimaliser funksjonen bare ONCE per variabel ved begynnelsen av formelen din, da hvert anrop genererer en ny optimaliseringsløkker. Multiple-symbol optimalisering er fullt støttet av AmiBroker. Maksimal søkeplass er 2 64 10 19 10 000 000 000 000 000 000 kombinasjoner.1 Enkel variabel optimalisering. sigavg Optimaliser S antenn gjennomsnitt 9 2 20 1.Buy Cross MACD 12 26, Signal 12 26 sigavg Selg Cross Signal 12 26 sigavg, MACD 12 26.2 To-variabel optimalisering egnet for 3D charting. per Optimaliser per 2 5 50 1 Nivå optimaliser nivå 2 2 150 4.Kryss kors CCI per, - Level Sälj Kors nivå, CCI per.3 Flere 3 variable optimization. mfast Optimaliser MACD Fast 12 8 16 1 mslow Optimaliser MACD Slow 26 17 30 1 Sigavg Optimaliser Signal gjennomsnitt 9 2 20 1.Buy Cross MACD mfast , mslow Signal mfast, mslow, sigavg Selg kryssignal mfast, mslow, sigavg, MACD mfast, mslow. Etter å ha kommet inn i formelen klikker du bare på Optimaliser-knappen i vinduet Automatisk analyse AmiBroker vil begynne å teste alle mulige kombinasjoner av optimaliseringsvariabler og rapportere resultatene i listen Etter at optimalisering er gjort, vises resultatlisten sortert etter nettoresultatet. Da du kan sortere resultatene med en hvilken som helst kolonne i resultatlisten, er det enkelt å få de optimale verdiene av parametere for lavest drawdown, laveste antall handler, største prof det faktum, laveste markedseksponering og høyeste risiko justert årlig avkastning De siste kolonnene i resultatlisten presenterer verdiene for optimaliseringsvariabler for gitt test. Når du bestemmer hvilken kombinasjon av parametere som passer dine behov, er det beste alt du trenger å gjøre, å erstatte standard verdier for å optimalisere funksjonssamtaler med de optimale verdiene. På nåværende stadium må du skrive dem manuelt i formellredigeringsvinduet, den andre parameteren for å optimalisere funksjonssamtalen. Viser 3D animerte optimaliseringsdiagrammer. For å vise 3D-optimaliseringskart, må du kjøre to - variabel optimalisering først To variable optimalisering trenger en formel som har 2 Optimaliser funksjonsanrop Et eksempel på to variabel optimaliseringsformel ser ut som this. per Optimaliser per 2 5 50 1 Nivå optimaliser nivå 2 2 150 4.Buy Cross CCI per, - Level Sell Cross Nivå, CCI per. Når du har skrevet inn formelen må du klikke på Optimer knappen. Når optimaliseringen er fullført, bør du klikke på rullegardinpilen på Optimaliser-knappen og velge Se 3D-optimaliseringsgraf I et par sekunder vises et fargerikt tredimensjonalt overflateplott i et 3D-kartvisningsvindu. Et eksempel 3D-diagram generert ved hjelp av over formel er vist nedenfor. Som standard viser 3D-diagrammer verdiene av nettoresultatet mot optimaliseringsvariabler. Du kan men plott 3D overflate diagram for en hvilken som helst kolonne i optimeringsresultat tabellen Bare klikk på kolonneoverskriften for å sortere den blå pilen vil vises som indikerer at optimaliseringsresultater er sortert etter valgt kolonne og deretter velg Vis 3D-optimaliseringsgraf igjen. Ved å visualisere hvordan systemet ditt s parametere påvirker handelsprestasjonen, kan du lettere bestemme hvilke parameterverdier som produserer skjøre og som gir robust systemytelse. Robuste innstillinger er regioner i 3D-grafen som viser gradvis snarere enn brå endringer i overflateplottet. 3D-optimaliseringskart er et godt verktøy for å hindre kurve - montering Kurvepassing eller overoptimalisering oppstår når systemet er mer komplekst enn det må være, og al Jeg var kompleks med fokus på markedsforhold som aldri kan skje igjen. Radikale endringer eller pigger i 3D-optimaliseringsdiagrammer viser tydelig overoptimaliseringsområder. Du bør velge parameterregion som produserer et bredt og bredt platå på 3D-diagram for ditt virkelige handelsparameter Parameter sett produserer profitt spikes vil ikke fungere pålitelig i ekte trading.3D chart viewer kontroller. AmiBroker s 3D chart viewer tilbyr total visning evner med full grafrotasjon og animasjon Nå kan du se systemresultatene dine fra alle tenkelige perspektiv Du kan kontrollere posisjonen og andre parametere av diagrammet ved hjelp av musen, verktøylinjen og hurtigtastene, uansett hva du finner enklere for deg. Nedenfor finner du listen .- å rotere - hold nede VENSTRE museknapp og flytte i XY retninger - for å zoome inn, zoome ut - hold ned HØYRE museknapp og flytte i XY retninger - å flytte oversette - hold nede VENSTRE museknapp og CTRL-nøkkel og flytte i XY retninger - å animere - hold nede VENSTRE museknapp, dra raskt og slipp knappen mens du drar. SACE - animere automatisk rotere VENSTRE PIL NØKKEL - roter vert venstre HØYRE PIL NØKKEL - roter vert høyre OPP PIL NØKKEL - roter horisonten NED PIL NØKKEL - drei ned horisonten NUMPAD PLUS - I nærheten zoom inn NUMPAD - MINUS - Lang zoom ut NUMPAD 4 - Flytt til venstre NUMPAD 6 - Flytt til høyre NUMPAD 8 - Flytt opp NUMPAD 2 - Flytt ned PAGE UP - Vannnivå opp PAGE DOWN - Vannnivå down. Smart ikke-uttømmende optimalisering. AmiBroker nå tilbyr smart, ikke-uttømmende optimalisering i tillegg til vanlig, uttømmende søk. Ikke-uttømmende søk er nyttig hvis antall av alle parameterkombinasjoner av gitt handelssystem er rett og slett for stort til å være gjennomførbart for uttømmende søk. Utfyllende søk er helt fint så lenge det er rimelig å bruke det. La oss si at du har 2 parametere som varierer fra 1 til 100 trinn 1 Det er 10000 kombinasjoner - perfekt OK for uttømmende søk Nå med 3 parametre har du 1 million kombinasjoner - det er fortsatt OK for uttømmende sår ch men kan være lengdig Med 4 parametre har du 100 millioner kombinasjoner og med 5 parametere 1 100 har du 10 milliarder kombinasjoner I så fall vil det være for tidkrevende å sjekke dem alle, og dette er området der ikke-uttømmende smart - søkemetoder kan løse problemet som ikke kan løses i rimelig tid ved hjelp av uttømmende søk. Her er absolutt den enkleste instruksjonen hvordan du bruker ny, ikke-uttømmende optimizer i dette tilfellet CMA-ES.1 Åpne formelen din i Formula Editor.2 Legg til dette enkeltlinje øverst på formula. OptimizerSetEngine cmae du kan også bruke spso eller trib here.3 Valgfritt Velg optimaliseringsmål i Automatisk analyse, Innstillinger, Walk-Forward-felt, Optimaliseringsmålfelt Hvis du hopper over dette trinnet, vil det optimalisere for CAR MDD-sammensatt årlig avkastning dividert med maksimal drawdown. Now hvis du kjører optimalisering ved hjelp av denne formelen, vil den bruke ny evolusjonær ikke-uttømmende CMA-ES optimizer. Hvordan fungerer det. Optimaliseringen er prosessen med å finne min imum eller maksimum av gitt funksjon. Et hvilket som helst handelssystem kan betraktes som en funksjon av et visst antall argumenter. Inngangene er parametere og sitatdata. Utgangen er ditt optimaliseringsmål, sier CAR MDD. Og du leter etter maksimal gitt funksjon. Noen av smart optimalisering algoritmer er basert på naturdyrsadferd - PSO-algoritme, eller biologisk prosess - Genetiske algoritmer, og noen er basert på matematiske konsepter avledet av mennesker - CMA-ES. Disse algoritmer brukes på mange forskjellige områder, inkludert økonomi. Oppgi PSO-finansiering eller CMA - ES finans i Google, og du vil finne mye info. Ingen uttømmende eller smarte metoder vil finne global eller lokal optimal. Målet er selvsagt å finne global en, men hvis det er en eneste skarp topp ut av zillions parameterkombinasjoner, uttømmende metoder kan mislykkes i å finne denne enkle toppen, men å ta det til grunn for handelsmannens perspecive, er å finne en enkel skarp topp ubrukelig for handel fordi dette resultatet ville være instabil for skjøre og n ot replicable i ekte handel I optimaliseringsprosessen ser vi fremdeles platåregioner med stabile parametere, og dette er området der intelligente metoder skinner. Som en algoritme som brukes av ikke-uttømmende søk, ser det ut som følger. a optimalisereren genererer noen vanligvis tilfeldig start populasjon av parameter sett b backtest utføres av AmiBroker for hvert parameter sett fra befolkningen c resultatene av backtestene blir evaluert i henhold til algoritmen logg og ny befolkning genereres basert på utviklingen av resultater, d hvis det nye beste er funnet - lagre det og gå til trinn b til stoppkriteriene er oppfylt. Eksempelstoppkriteriene kan inneholde en nåverdig spesifisert maksimal iterasjoner b stopp hvis rekkevidden av de beste objektivverdiene for de siste X-generasjonene er null c-stopp hvis du legger til 0 1 standardavviksvektor i en hovedakse retning endrer ikke verdien av objektiv verdi d andre. For å bruke en hvilken som helst smart, ikke-uttømmende optimizer i AmiBroker må du spesifisere optimaliseringsenheten ingen e du vil bruke i AFL-formelen ved hjelp av OptimizerSetEngine-funksjonen. Funksjonen velger ekstern optimaliseringsmotor definert ved navn AmiBroker leverer for øyeblikket med 3 motorer Standard Particle Swarm Optimizer spso, stamme tribune og CMA-ES cmae - navnene i seler skal være brukes i OptimizerSetEngine-samtaler. I tillegg til å velge optimaliseringsmotor, kan det hende du vil angi noen av sine interne parametere. For å gjøre det, bruk OptimizerSetOption-funksjonen. OptimalisererSetOptikk navn, verdifunksjon. Funksjonen angir tilleggsparametere for ekstern optimaliseringsmotor Parametrene er motoravhengige Alle Tre optimaliserere som sendes med AmiBroker SPSO, Trib, CMAE støtter to parametre. Kjører antall løp og MaxEval maksimal evalueringstester per enkelt løp. Oppførselen til hver parameter er motoravhengig, slik at samme verdier kan og vil gi forskjellige resultater med forskjellige motorer som brukes. Forskjellen mellom Runs og MaxEval er som følger Evaluering eller test er single backtest eller evaluatio n av objektiv funksjonsverdi RUN er en full runde av algoritmen som finner optimal verdi - vanligvis involverer mange tester evalueringer. Hvert løp bare RESTARTS hele optimaliseringsprosessen fra den nye begynnelsen ny første tilfeldig populasjon Derfor kan hvert løp føre til å finne forskjellig lokal max min hvis det ikke finner global en så kjører parameter definerer antall påfølgende algoritme kjører MaxEval er det maksimale antall evalueringer bactests i en enkelt run. If problemet er relativt enkelt og 1000 tester er nok til å finne global max, er 5x1000 mer sannsynlig å finn global maksimal fordi det er mindre sjanser til å bli sittende fast i lokal max, da etterfølgende løp vil starte fra forskjellige begynnende tilfeldige populasjoner. Valg av parameterverdier kan være vanskelig Det avhenger av problem under test, dets kompleksitet osv. Enhver stokastisk ikke-uttømmende Metoden gir deg ikke garanti for å finne global maks min, uavhengig av antall tester hvis det er mindre enn uttømmende. Det enkleste svaret er å spesifisere så mange tester som det er rimelig for deg når det gjelder tid som kreves for å fullføre. Et annet enkelt råd er å multiplisere med 10 antall tester med å legge til en ny dimensjon. Det kan føre til at man overskrider antall tester som kreves, men det er ganske trygt Sendte motorer er konstruert for å være enkle å bruke. Derfor brukes rimelige standardautomatiske verdier, slik at optimalisering vanligvis kan kjøres uten å spesifisere noe som aksepterer standardinnstillinger. Det er viktig å forstå at alle smarte optimaliseringsmetoder fungerer best i kontinuerlige parameterrom og relativt jevnt mål Funksjoner Hvis parameterplass er diskrete evolusjonære algoritmer kan ha problemer med å finne optimal verdi. Det gjelder spesielt for binære på av parametre - de er ikke egnet for noen søkemetode som bruker gradient av objektiv funksjonsendring som de fleste smarte metoder gjør hvis ditt handelssystem inneholder mange binære parametere, bør du ikke bruke smart optimizer direkte på dem i stedet forsøk å optimalisere bare kontinuerlige parametere ved hjelp av smart optimizer, og bytt binære parametre manuelt eller via eksternt script. SPSO - Standard Particle Swarm Optimizer. Standard Particle Swarm Optimizer er basert på SPSO2007 kode som skal produsere gode resultater, forutsatt at riktige parametere, dvs Runs, MaxEval er gitt for et bestemt problem Å velge riktige alternativer for PSO optimizer kan være vanskelig, derfor kan resultatene variere vesentlig fra sak til sak. leveres med full kildekoder i ADK-undermappe. Eksempelkode for Standard Particle Swarm Optimizer å finne optimal verdi i 1000 tester innenfor søkeområdet på 10000 kombinasjoner. OptimalisererSetEngine spso OptimizerSetOption kjører, 1 OptimizerSetOption MaxEval, 1000.sl Optimaliser s, 26, 1, 100, 1 fa Optimaliser f, 12, 1, 100, 1.Buy Cross MACD fa, sl, 0 Selg Kors 0, MACD fa, sl. TRIBES - Adaptiv Parameter-mindre Partikkel Swarm Optimizer. Tribes er adaptiv, parameter-mindre versjon av PSO partikkel swarm optimalisering ikke-uttømmende optimizer For vitenskapelig bakgrunn se. I teorien skal det fungere bedre enn vanlig PSO, fordi det kan automatisk justere svømmestørrelser og algoritme strategi for å løse problemet. Praktikk viser at ytelsen er ganske lik PSO. Plugin implementerer Tribes-D dvs. dimensjonsløs variant Basert på av Maurice Clerc Originale kildekoder brukt med tillatelse fra forfatteren. leveres med full kildekode inne i ADK-mappen. Støttede parametere MaxEval - maksimalt antall evalueringsbacktests per run default 1000.You bør øke antall evalueringer med økende antall dimensjoner antall optimaliseringsparameter Standard 1000 er bra for 2 eller maksimalt 3 dimensjoner. Runs - Antall kjører starter på nytt 5 Du kan forlate antall kjøringer med standardverdien på 5.Kontrollert antall kjøringer eller omstart er satt til 5.Til å bruke Stammer optimizer, trenger du bare å legge til en linje i koden din. OptimizerSetOption MaxEval, 5000 5000 evalueringer max. CMA-ES - Covariance Matrix Adaptation Evolutionær Strategi Optimizer. CMA-ES Covariance Matrix Adaptation Evolusjonær Strategi er avansert ikke-uttømmende optimizer For vitenskapelig bakgrunn se I henhold til vitenskapelige referanser overgår ni andre, mest populære evolusjonære strategier som PSO, Genetisk og Differensiell evolusjon. Plugin implementerer global variant av søk med flere omstart med økende pop Vektstørrelse kommer med full kildekode inne i ADK-mappen. Standard antall kjøringer eller omstart er satt til 5 Det anbefales at du forlater standardnummeret på nytt. Du kan variere det ved hjelp av OptimizerSetOption Kjører, N-anrop, hvor N skal være innenfor rekkevidde 1 10 Angi mer enn 10 løp anbefales ikke, selv om det er mulig Merk at hver løp bruker TWICE størrelsen på populasjonen i forrige runde, slik at den vokser eksponentielt. Derfor med 10 løp slutter du med befolkningen 2 10 større 1024 ganger enn den første runden. Der er en annen parameter MaxEval Standardverdien er null, noe som betyr at plugin vil automatisk beregne MaxEval påkrevd Det anbefales at IKKE definere MaxEval selv fordi standard fungerer fint. Algoritmen er smart nok til å minimere antall evalueringer som kreves, og det konvergerer veldig fort til løsningspunkt, så ofte finner det løsninger raskere enn andre strategier. Det er normalt at plugin vil hoppe over noen evalueringstrinn, hvis det oppdager at løsningen ble funnet, derfor e du bør ikke bli overrasket over at optimaliseringsfremdriftslinjen kan bevege seg veldig fort på noen punkter Pluggen har også mulighet til å øke antall trinn over opprinnelig estimert verdi dersom det er nødvendig for å finne løsningen På grunn av sin adaptive natur, er den estimerte tiden igjen og eller antall trinn som vises i fremdriftsdialogboksen, er bare den beste gjetningen og kan variere under optimaliseringskurs. For å bruke CMA-ES optimizer trenger du bare å legge til en linje i koden. Dette vil kjøre optimaliseringen med standardinnstillinger som er bra for de fleste tilfeller. Det skal bemerkes, som det er tilfellet med mange continouos-plasssøkalgoritmer, påvirker den avtagende trinnparameteren i Optimaliser funciton-anrop ikke signifikant optimaliseringstider. Det eneste som betyr noe er problemdimensjonen, dvs. Antall forskjellige parametre Antall optimere funksjonsanrop Antall trinn per parameter kan settes uten å påvirke optimaliseringstiden, så bruk den fineste oppløsningen du vil ha i teorien y algoritmen skal kunne finne en løsning på maksimalt 900 N 3 N 3 backtests hvor N er dimensjonen I praksis konvergerer det en masse raskere For eksempel kan løsningen i 3 N 3-dimensjonal parameter plass si 100 100 100 1 million uttømmende trinn kan finnes i så få som 500-900 CMA-ES-trinn. Multi-threaded individuell optimalisering. Ved å starte fra AmiBroker 5 70 i tillegg til fler-symbol multithreading kan du utføre multi-threaded single-symbol optimalisering. For å få tilgang til denne funksjonaliteten, klikk på drop pil ned ved siden av Optimaliser knappen i vinduet Ny analyse og velg Individuell optimalisering. Individuell optimalisering vil bruke alle tilgjengelige prosessorkjerner til å utføre enkeltsymboloptimalisering, noe som gjør det mye raskere enn vanlig optimalisering. I nåværende symbolmodus vil den utføre optimalisering på ett symbol I alle symboler og filtermodi vil det behandle alle symbolene i rekkefølge, dvs. første fullstendige optimalisering for første symbol, deretter optimalisering på andre symbol etc. Limitations 1 Custo m backtester er IKKE støttet ennå 2 Smart optimeringsmotorer støttes IKKE - bare EXHAUSTIVE optimalisering fungerer. Til slutt kan vi bli kvitt begrensning 1 - når AmiBroker er endret, slik at egendefinert backtester ikke bruker OLE lenger. Men 2 er sannsynligvis her for å være for lenge. Forbedre tekniske handelssystemer ved å bruke en ny MATLAB-basert genetisk algoritmeprosedyre. Nylige studier i finansmarkedene tyder på at teknisk analyse kan være et svært nyttig verktøy for å forutsi utviklingen. Handelssystemer er mye brukt til markedsvurdering, men parameteroptimalisering av disse systemene har tiltrukket liten interesse I dette papiret, for å utforske den potensielle kraften i digital handel, presenterer vi et nytt MATLAB verktøy basert på genetiske algoritmer verktøyet spesialiserer seg på parameteroptimalisering av tekniske regler. Det bruker kraften til genetiske algoritmer for å generere raske og effektive løsninger i ekte handelsvilkår Vårt verktøy ble testet grundig på historiske data fra et UBS-fond som investerer i nye stok k markeder gjennom vårt spesifikke tekniske system Resultater viser at vår foreslåtte GATradeTool overgår vanlige, ikke-adaptive, programvareverktøy med hensyn til stabilitet av retur og tidsbesparelse over hele prøveperioden. Vi ga imidlertid bevis for en mulig befolkningsstørrelseeffekt i Kvalitetsløsninger. Finansielle markeder. Genetiske algoritmer. Tekniske regler.1 Innledning. Tidens handels - og investeringsanalytikere krever raske og effektive verktøy i et hensynsløst finansmarked. Kampene i handel er nå hovedsakelig utført ved datahastighet. Utviklingen av ny programvareteknologi og utseende av nye programmiljøer, for eksempel MATLAB gir grunnlag for å løse vanskelige økonomiske problemer i sanntid MATLABs omfattende innebygd matematisk og finansiell funksjonalitet, det faktum at det både er et tolket og kompilert programmeringsspråk og dets uavhengighet i plattform, gjør det godt egnet for økonomisk applikasjonsutvikling. Forventet avkastning opptjent av teknisk ru les, inkludert momentumstrategier, for eksempel 14 15 16 16 25 20, bevegelige gjennomsnittsregler og andre handelssystemer 6 2 9 24 kan støtte betydningen av teknisk analyse. De fleste av disse studiene har imidlertid ignorert spørsmålet om parameteroptimalisering, og lar dem åpne til kritikk av data snooping og muligheten for overlevende bias 7 17 8 Tradisjonelt brukte forskere ad hoc-spesifikasjon av handelsregler De bruker en standard populær konfigurasjon eller tilfeldig utprøve noen få forskjellige parametere og velger det beste med kriterier basert på retur hovedsakelig. Papadamou og Stephanides 23 implementerte en ny MATLAB-basert verktøykasse for datamaskinstøttet teknisk handel som har inneholdt en prosedyre for parameteroptimaliseringsproblemer. Det svake punktet i optimaliseringsprosedyren er imidlertid tiden, den objektive funksjonen, f. eks. Fortjeneste, er enkel kvadratfeilfunksjon, men en komplisert hver optimalisering iterasjon går gjennom dataene, genererer handelssignaler, beregner fortjeneste, osv. Når datasettene er store og du ønsker å reoptimere systemet ditt ofte og du trenger en løsning så snart som mulig, kan du prøve alle mulige løsninger for å få det beste. Det vil være en veldig kjedelig oppgave. Genetiske algoritmer GAs er bedre egnet siden de utfører tilfeldige søk på en strukturert måte og konvergerer veldig fort på populasjoner av næroptimale løsninger. GA vil gi deg et sett antall gode løsninger. Analytikere er interessert i å få noen gode løsninger så fort som mulig, i stedet for den globalt beste løsningen. Globalt finnes det best mulig løsning, men det er svært lite sannsynlig at det vil fortsette å være det beste. Målet med denne studien er å vise hvordan genetiske algoritmer, en klasse av algoritmer i evolusjonær beregning, kan brukes til å forbedre ytelsen og effektivitet av datastyrte handelssystemer Det er ikke hensikten her å gi teoretisk eller empirisk begrunnelse for den tekniske analysen Vi demonstrerer vår tilnærming i en del icular prognostiseringsoppgave basert på nye aksjemarkeder. Dette papiret er organisert som følger Tidligere arbeid presenteres i del 2 Datasettet og metodikken er beskrevet i avsnitt 3 De empiriske resultatene er omtalt i avsnitt 4 Konklusjoner følger Seksjon 5.2 Tidligere arbeid. Det er en stor del av GA-arbeidet innen datavitenskap og ingeniørfag, men lite arbeid har blitt gjort om forretningsområder. Senere har det vært en økende interesse for GA-bruk i finansøkonomi, men så langt har det vært lite forskning om automatisert handel. Etter vår kunnskap var de første publiserte papirbindende genetiske algoritmer til investeringer fra Bauer og Liepins 4 Bauer 5 i sin bok Genetiske algoritmer og investeringsstrategier tilbudt praktisk veiledning om hvordan GAs kan brukes til å utvikle attraktive handelsstrategier basert på grunnleggende informasjon Disse teknikkene kan være lett utvidet til å inkludere andre typer informasjon som teknisk og makroeko nominelle data samt tidligere priser. Ifølge Allen og Karjalainen er 1 genetisk algoritme en hensiktsmessig metode for å oppdage tekniske handelsregler Fern ndez-Rodr guez et al 11 ved å vedta genetisk algoritmer optimalisering i en enkel handelsregel gir bevis for vellykket bruk av GA fra Madrid-børsen Noen andre interesserte studier er de av Mahfoud og Mani 18 som presenterte et nytt genetisk-algoritmbasert system og brukte det til å forutsi fremtidige forestillinger av individuelle aksjer av Neely et al. 21 og av Oussaidene et al. 22 som brukte genetisk programmering til prognoser for utenlandsk valuta og rapporterte noen suksess. En av komplikasjonene i GA-optimalisering er at brukeren må definere et sett med parametere som kryssfrekvens, populasjonsstørrelse og mutasjonsrate. Ifølge De Jong 10 som studerte genetisk algoritmer i funksjon optimalisering god GA ytelse krever høy crossover sannsynlighet omvendt proporsjonal med befolkning størrelse og en mo avled befolkningsstørrelse Goldberg 12 og Markellos 19 antyder at et sett med parametere som fungerer godt over mange problemer er en crossover-parameter 0 6, populasjonsstørrelse 30 og mutasjonsparameter 0 0333 Bauer 4 utførte en serie simuleringer på økonomiske optimaliseringsproblemer og bekreftet gyldigheten av Goldberg s forslag I den nåværende studien vil vi utføre en begrenset simuleringsstudie ved å teste ulike parameterkonfigurasjoner for det valgte handelssystemet. Vi vil også gi bevis for GA foreslått ved å sammenligne verktøyet vårt med andre programvareverktøy. 7 Typer av handels robusthet Bygg roboter Det været alle storms. Building den uovervinnelige Robot. Så du hørte om hvordan datamaskiner vil styre handelsverdenen, hvordan intelligente roboter gjør millioner på markedene, og nå vil du bygge din owb allmektige handelsrobot som kan erobre alle Vel, Denne artikkelen vil ikke love den magiske formelen eller den hellige gralen til din uovervinnelige robot, men den er så nært som den blir. cepts nevnt her gjelder ikke for høyfrekvent trading trading i millisekunder. Gjør robotene dine intelligente, men ikke for intelligente. Hva betyr det for Weather All Storms. For at våre handelssystemer skal kunne være værende for alle stormer, forblir aka fortsatt effektivt på ulike markeder forhold, må de tilpasse seg markedet Dette innebærer handelslogikk som er effektive i ulike perioder, backtesting rammer som minimerer tilbakeblikkelig forspenning og regler som ikke er for stive. Denne kriteriene kan sammenfattes i ett ord Robustness. What er robusthet. Offisiell definisjon av robusthet I økonomi er robusthet evnen til et finansielt handelssystem å forbli effektivt under ulike markeder og ulike markedsforhold, eller evnen til en økonomisk modell å forbli gyldig under ulike antagelser, parametere og innledende forhold. For å oversette dette til enklere ord. Et handelssystem er robust hvis det kan forbli effektivt i endrede markedsforhold. Koding, testing og evaluering Ating trading roboter i disse dager er billig. Typer av robusthet. Robustness ser ut til å være et overused ord Mange snakker om robusthet i et handelssystem uten spesifikk referanse til enkel type robusthet. Det er mange typer robusthet, denne artikkelen vil snakke om de viktigste seven. Period Robustness. Seasonal Robustness. Timeframe Robustness. Instrument Robustness. Optimization Robustness. Parameter Robustness. Portfolio Robustness. Period Robustness. Definition Et handelssystem er robust i perioder hvis det kan forbli effektivt i ulike markedsperioder. Markedsperioder kan kjennetegnes i 2 typer Generisk og Strategisk. Generelle Markedsperioder. Figur 1 Seks Generiske Markedsperioder. Figur 1 viser oss de seks hoved generiske markedsperioder. I dette tilfellet analyserer vi utviklingen av våre handelssystemer i disse seks periodene. Vær imidlertid oppmerksom på at noen generiske markedsperiode tabeller er 5 av 5 eller større.5 av 5 Y-aksen Meget lav volatilitet, lav volatilitet, nøytral, høy volatilitet, V ery High Volatility.5 av 5 X-aksen. Strong Uptrend, Uptrend, Ranging, Downtrend, Strong Downtrend. 5 til 5 klassifiseringen er bare en variant av originalen 2 av 3, men det er ingenting galt med 5 av 5 eller større klassifisering. Hvis vårt handelssystem virker på tvers av de 6 grunnleggende periodene, betyr dette at det er periode robust. Strategiske markedsperioder. Strategiske markedsperioder er definert av handelsmannen. Dette avhenger av spesifikke forhold som sterkt påvirker aktiva du handler. Selvfølgelig, Disse spesifikke forholdene varierer for forskjellige eiendeler. For eksempel, hvis vi handler EURUSD, vil US Federal Reserve pengepolitikken sterkt påvirke vår handel. Vi vil derfor analysere 2 strategiske markedsperioder 1 Fed Easing 2 Fed Stramming Hvis du er handelsaktier, eksempel ville være 1 Like før inntjening utgivelse 2 Like etter inntjening frigjøring. Applikasjon til Trading. Does dette bety at hvis mitt handelssystem ikke er periode robust, er det ulønnsomt. Det er feil Det er p mange handelssystemer som er utformet for å fange opp et bestemt marked ineffektivitet Vårt mål er å forstå våre handelssystem s egenskaper slik at vi vet hvordan og når de skal distribuere dem. Sesong Robustness. Definisjon Et handelssystem er sesongmessig robust hvis det er i stand til å holde seg effektiv til tross for sesongmessige effekter. Sesong robusthet kan betraktes som en delmengde av Period Robustness. En sesongmessig effekt er enhver markedsavvik eller økonomisk effekt som ser ut til å være relatert til kalenderen. Vi sier at det finnes sesongmessige effekter i markedet dersom det er repeterende oppførsel i markedene over tid Det er fem hovedtyper av sesongmessige effekter. Intra-Day Effect Spesifikke oppførsel av markeder på bestemte tider av dagen. Dag Effekt Spesifikke oppførsel av markeder på bestemte dager i uken. Effekt Effekt Spesifikke oppførsel av markeder på visse måneder i året. kvartalseffekten spesifikk oppførsel av markedene på kvartalsbasis. flerårig effekt begrepet inkluderer noen ganger flerårig e fekter, for eksempel 10-årig dekadal-syklus. I de fleste tilfeller er sesongmessige effekter ikke selvforsvarende profetier. De er skapt av markedsgrunnlag.1 Forexmarkeder er mer aktive på bestemte tider av dagen på grunn av globale overlappelser i markedet. 2. januar Effect exists because of tax reducing reasons.3 Markets tend to be quieter on the earlier half of the first Friday of every month due to Non-Farm Payrolls. Figure 2 Examining the January Effect Credits. Application to Trading. Why don t we exploit this recurring inefficiency It is definitely possible, but there are several reasons this could be difficult. Timing and extent of seasonal effects are unstable. Market participants are constantly trying to exploit seasonal effects These actions influence the extent and behaviour of the seasonal effects Therefore, this creates a dynamic situation where the seasonal effects are constantly changing. Cost of trade is too high. The seasonal effect could exist because the cost to exploit the effect is too high The high cost acts as a natural barrier to protect the seasonal effects. We don t believe the market is completely efficient, but we believe it is efficient to a certain extent In many cases, it is difficult to exploit a seasonal effect because the efficiency is priced in For instance, you may want to buy a straddle an option structure that gains in value when volatility increases during Non-Farm Payroll because you expect higher volatility However, the sellers of the straddle have factored in the high volatility and thus priced this into the straddle price option premiums. Timeframe Robustness. Definition A trading system is timeframe robust if it is able to stay effective when trading in different timeframes. Timeframe refers to our candlestick period 1min, 5min, 15min, 1hour, Daily etc Our trading system is timeframe robust if its underlying trading strategy is effective in different timeframes. We need to understand timeframe robustness in two types of market conditions.1 Our a sset behaves like a fractal across timeframes.2 No fractal behaviour. Scenario 1 Our asset behaves like a fractal across timeframes. No we are not referring to the candlestick pattern when we talk about Fractals. Official Definition of Fractals A fractal is a natural phenomenon or a mathematical set that exhibits a repeating pattern that displays at every scale If the replication is exactly the same at every scale, it is called a self-similar pattern. To simplify it A fractal is a pattern that repeats itself in different visuals or time scales. Figure 3 Fractals in different timeframes. As we zoom into the lower timeframes, we see that the shapes characteristics of the asset remains the same. Our trading system will always be timeframe robust when it is trading an asset that behaves as a fractal across timeframe If the market behaves in the same manner at every timeframe, there should not be any difference in our trading system s behaviour. Scenario 2 No fractal behaviour. A general rule of thu mb is that noise volatility increases as we go to the lower timeframe Our trading system will be timeframe robust here if its underlying logic is effective in spite of the different noise levels and market behaviour at different timeframes. Application to Trading. If our trading system is timeframe robust, it works at every timeframe However, this does not mean that we remain indifferent to the timeframe we trade. We should trade on lower timeframe This will maximise the number of trading opportunities per time Imagine averaging 1 trade per 5 bars If you trade on Daily timeframe, you will fire 52 trades a year 260 weekdays 5 If you trade on 1 Hourly timeframe, you can fire 1248 260 24 5 trades a year Hence, your profit will be 24 times higher without considering the effects of compounding. Should we trade on the lowest possible timeframe. Following the logic stated above, if we should trade on the lowest possible timeframe 1min for MT4 , we should be massively profitable right Sadly and uns urprisingly, no. It is unlikely for a trading system to be perfectly timeframe robust It is unlikely for an asset to behave in a perfect fractal manner As we go to lower timeframes, the noise increases The asset s behaviour becomes more unpredictable due to real-time influences from current events, market microstructure and speculation by market participants Therefore, we should choose a timeframe that balances noise reduction and profit maximisation. If our trading system is not timeframe robust, we need to understand which timeframe is most suitable for our trading system in different market conditions. Instrument Robustness. Definition A trading system is robust across instruments assets if it can remain effective across different instruments. A trading system is instrument robust if it performs as expected across different assets This means that the trading system s underlying trading logic is capturing an inefficiency that exist in multiple assets. Application to Trading. Instrument robu stness is not a gauge of a trading system s performance In fact, most trading systems are not instrument robust Trading systems are designed to capture specific market inefficiencies and these inefficiencies tend to be instrument specific Thus, it is not unusual that most trading systems are not instrument robust. Instead of aiming for instrument robustness, we should understand how our trading systems work in different assets This will allow us to discover common inefficiencies in different assets and deploy our portfolio of trading systems more effectively. Optimisation Robustness. Definition A trading system is robust in optimisation if the trading system objective function is maximised while minimising curve fitting. Before we explain in detail what Optimisation Robustness is, let s briefly understand what optimisation, objective function and curve fitting are. Optimisation The process where we adjust the structure and rules of a trading system to maximise or minimise its objective func tion. Objective Function This is the performance output of a backtest that we are trying to maximise or minimise. An easy and lazy way to choose an objective function is to use Net Profit This is rarely a good idea In trading, this output should consist of 3 things reward, consistency and risk. Curve Fitting The process of catering the trading system so closely to historical data that it becomes ineffective in the future. Why Because the future rarely reflects the past. Because the future rarely reflects the past, we need an optimisation process that minimises curve fitting This will increase the odds of success of our trading system A trading system going through such a process can be said to be optimisation robust. Application to Testing. This brings us to our solution The Walk Forward Optimisation. Definition according to Wikipedia. The trading strategy is optimised with in-sample data for a time window in a data series The remainder of the data are reserved for out-of-sample testing A small portion of the reserved data following the in-sample data is tested with the results recorded The in-sample time window is shifted forward by the period covered by the out-of-sample test, and the process repeated At the end, all of the recorded results are used to assess the trading strategy. To translate into simpler words. We optimise our trading system using one period in-sample , and apply the optimised parameters to the next period out-of-sample Repeat The performance of the trading system is collated using all the out-of-sample periods. Figure 4 In-sample and out-of-sample periods.1 Optimise trading system using In-Sample A.2 Test trading system s performance in Out-Sample A.3 Optimise trading system using In-Sample B.4 Test trading system s performance in Out-Sample B.5 Repeat for Period C to E.6 We will evaluate the trading system s performance in Out-Sample A to E. The aim of this process is to examine how will our trading system perform when executed in unknown territory out-of - sample. Parameter Robustness. Definition A trading system is parameter robust if its performance does not change drastically due to slight change in parameter values. If the underlying trading logic is sound, changing the parameter values slightly should not significantly affect its performance If the performance changes drastically, the trading system exhibits signs of curve fitting. Application to Testing. The results of an optimisation can be viewed in an optimisation surface parameter space if we are only optimising two parameters The x-axis and y-axis represents our two parameters The z-axis represents our objective function. Figure 5 Optimisation Surface with spiky peaks. Figure 6 Optimisation Surface with flat hills. The two figures above represents the optimisation surface of a trading system that uses two parameters, a fast moving average and a slow one When we examine this optimisation surface, we prefer flat hills over spiky peaks Flat hills indicate little change in performance eve n if we shift the parameter values slightly. Portfolio Robustness. Definition Portfolio Robustness occurs when a group of trading systems are able to remain effective in different market conditions. Portfolio Robustness and Period Robustness are different as Portfolio Robustness focuses on the complementary effects of separate trading systems Different trading systems have different strengths and weaknesses They can be combined in a way to maximise our objective function of the portfolio in the long run. Application to Trading. For illustration, assume we have two trading systems which are long term profitable but are negatively correlated to each other. Figure 7 Net equity curve of a portfolio of two robots. By combining these two trading systems, we are able to cancel out the risk in their performance and achieve a net long run positive result with significantly lower risk. By applying this concept to a portfolio of different trading systems, we aim to achieve Portfolio Robustness. This artic le serves to briefly introduce the seven main types of robustness However, in order to truly have a good grasp on building great trading systems, you need these three elements Trading System Design, Coding for Algorithmic Trading and Market Knowledge What s next Go Google these topics and get started. AlgoTrading101 is the first comprehensive online course on algorithmic trading Learn the fundamentals of algo trading and put your ideas into action along with more than 10,000 students Learn more about us at AlgoTrading101.This dude runs an algorithmic trading academy with over 13,000 students Click on the Author link above to learn more about him. Post navigation.

No comments:

Post a Comment