Friday 13 October 2017

Simple Trading System Amibroker


Hvordan optimalisere handelssystemet MERK: 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 et enkelt bevegelige gjennomsnittsoverskridende for eksempel. I nesten alle systemer er det noen parametere (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 for disse parametrene (gir høyeste fortjeneste fra systemet) for et gitt symbol (eller en portefølje med symboler). AmiBroker er en av de svært få programmene som lar deg optimalisere systemet ditt på flere symboler samtidig. For å optimalisere systemet må du definere fra en opp til ti parametere som skal optimaliseres. Du bestemmer hva som er minimum og maksimum tillatt verdi for parameteren og i hvilke trinn denne verdien skal oppdateres. AmiBroker utfører deretter flere tilbaketester, systemet bruker ALLE 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 Optimering i back tester støttes via ny funksjon kalt optimalisere. Syntaxen til denne funksjonen er som følger: variabeloptimalisering (quot Beskrivelse standard, min. Maks. Trinn) variabel - er normal AFL-variabel som får tildelt verdien returnert ved å optimalisere funksjonen. Ved normal backtesting, skanning, utforsking og kommende moduser returnerer funksjonen til standardverdien, slik at funksjonen ovenfor svarer til: variabel standard I optimaliseringsmodus optimaliserer funksjonen returnerer suksessive verdier fra min til maks (inklusiv) med trinnstegning. quote Descriptionquot er en streng som brukes til å identifisere optimaliseringsvariabelen og vises som et kolonnenavn i optimaliseringsresultatlisten. standard er en standardverdi som optimaliserer funksjonene i leting, indikator, kommentar, skanning og normal tilbakestillingstest. Min er en minimumsverdi av variabelen som er optimalisert maks er en maksimumsverdi av variabelen som er optimalisert trinn er et intervall som brukes til å øke verdi fra min til maks AmiBroker støtter opptil 64 samtaler for å optimalisere funksjonen (derfor opptil 64 optimaliseringsvariabler), merk at hvis du bruker uttømmende optimalisering, er det veldig bra å begrense antall optimaliseringsvariabler til bare noen få. Hver samtale for å optimalisere generere (maks - min) trinnoptimaliseringsløkker og flere samtaler for å optimalisere multipliserer antallet kurser som trengs. For eksempel kan optimalisering av to parametere ved hjelp av 10 trinn kreve 1010 100 optimaliseringsløkker. Samtaleoptimaliseringsfunksjonen bare ONCE per variabel i begynnelsen av formelen din, da hvert anrop genererer en ny optimaliseringsløype. Flere optimering av symboler støttes fullt ut av AmiBroker. Maksimalt søkeområde er 2 64 (10 19 10 000 000 000 000 000 000 000) kombinasjoner. 1. Enkel variabel optimalisering: sigavg Optimaliser (Signal gjennomsnitt. 9. 2. 20. 1) Kjøp kryss (MACD (12. 26), Signal (12. 26. sigavg)) Selg kors (Signal (12. 26. sigavg), MACD (12. 26)) 2. To-variabel optimalisering (egnet for 3D-kartlegging) per Optimaliser (per 2. 5. 50. 1) Nivåoptimaliser (nivå 2. 2. 150. 4) Kjøp kryss (CCI (per), - Level) Selg Kryss (nivå, CCI (per)) 3. Flere (3) variabel optimalisering: mfast Optimaliser (MACD Fast. 12. 8. 16. 1) mslow Optimaliser (MACD Slow. 26. 17. 30. 1) Sigavg Optimaliser (Signal gjennomsnittlig. 9. 2. 20. 1) Kjøp kryss (MACD (mfast, mslow). Signal (mfast, mslow, sigavg)) Selg kors (Signal (mph, mslow, sigavg), MACD f ormula klikker du bare på optimaliser knappen i quotAutomatic Analysisquot-vinduet. AmiBroker vil begynne å teste alle mulige kombinasjoner av optimaliseringsvariabler og rapportere resultatene i listen. Etter optimalisering er resultatlisten presentert sortert etter nettoresultatet. Ettersom du kan sortere resultatene i en hvilken som helst kolonne i resultatlisten, er det enkelt å få de optimale verdiene av parametere for laveste nedgang, laveste antall transaksjoner, største profittfaktor, laveste markedseksponering og høyest risikojustert å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 du trenger å erstatte standardverdiene for å optimalisere funksjonssamtaler med de optimale verdiene. På nåværende stadium må du skrive dem for hånd i formuleringsredigeringsvinduet (den andre parameteren for å optimalisere funksjonsanrop). Vise 3D animerte optimaliseringskart For å vise 3D optimaliseringskart, må du først kjøre to variabeloptimalisering først. To variable optimalisering trenger en formel som har 2 Optimize () funksjonssamtaler. Et eksempel på to variabel optimaliseringsformel ser slik ut: per Optimaliser (per 2. 5. 50. 1) Nivåoptimaliser (nivå 2. 2. 150. 4) Kjøp kryss (CCI (per), - nivå) Selg kors (Nivå, CCI (per)) Etter å ha skrevet inn formelen må du klikke quotOptimizequot-knappen. Når optimeringen er fullført, bør du klikke på nedtrekkspilen på Optimaliser-knappen og velge Vis 3D-optimaliseringsgraf. Om noen få sekunder vises et fargerikt tredimensjonalt overflateplott i et 3D-kartvisningsvindu. Et eksempel på 3D-diagram som er generert ved hjelp av ovenstående formel, er vist nedenfor. Som standard viser 3D-diagrammer verdiene for nettoresultatet mot optimaliseringsvariabler. Du kan imidlertid plotte 3D overflatediagram for en hvilken som helst kolonne i optimeringsresultatetabellen. Bare klikk på kolonneoverskriften for å sortere den (blå pil vises som angir at optimaliseringsresultater sorteres etter valgt kolonne) og deretter velge Vis 3D-optimaliseringsgraf på nytt. Ved å visualisere hvordan systemparametrene påvirker handelsprestasjonen, kan du lettere bestemme hvilke parameterværdier som produserer quotfragilequot og som produserer kvoter for systemkvalitet. Robuste innstillinger er regioner i 3D-grafen som viser gradvise snarere enn brå endringer i overflateplottet. 3D-optimaliseringskart er et godt verktøy for å forhindre kurvepassing. Kurvmontering (eller overoptimalisering) oppstår når systemet er mer komplekst enn det måtte være, og all den kompleksiteten var fokusert 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-kart for ditt virkelige livshandel. Parametersett som produserer overskuddspist vil ikke fungere pålitelig i reell handel. 3D chart viewer kontroller AmiBrokers 3D chart viewer tilbyr totalt visningsfunksjoner med full grafrotasjon og animasjon. Nå kan du se systemresultatene dine fra alle tenkelige perspektiver. Du kan kontrollere posisjonen og andre parametere i diagrammet ved hjelp av musen, verktøylinjen og hurtigtastene, uansett hva du finner lettere for deg. Nedenfor finner du listen. - å rotere - hold nede VENSTRE museknapp og flytte i XY retninger - for å zoome inn, zoome ut - hold nede HØYRE museknapp og flytte i XY retninger - å flytte (oversette) - hold nede VENSTRE museknapp og CTRL-tasten og Flytt i XY retninger - å animere - hold nede VENSTRE museknapp, dra raskt og slipp knappen mens du drar SPACE - animere (automatisk rotere) VENSTRE PIL NØKKEL - roter vert. venstre høyre piltast - roter vert. høyre OPP PIL NØKKEL - roter horisonten. opp NED PIL NØKKEL - roter horisonten. NED NUMPAD (PLUS) - Nær (zoom inn) NUMPAD - (MINUS) - Langt (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 - vannstand ned Smart (ikke-uttømmende) optimalisering AmiBroker tilbyr nå 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. Uttømmende søk er helt greit 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 - helt greit for uttømmende søk. Nå med 3 parametere har du 1 million kombinasjoner - det er fortsatt OK for uttømmende søk (men kan være lengre). 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 smarte søkemetoder kan løse problemet som ikke er løsbart i rimelig tid ved hjelp av uttømmende søk. Her er absolutt den enkleste instruksjonen hvordan du bruker nytt, ikke-uttømmende optimeringsprogram (i dette tilfellet CMA-ES). 1. Åpne din formel i Formula Editor 2. Legg til denne enkeltlinjen øverst på formelen: OptimizerSetEngine (quotcmaequot) Du kan også bruke quotspsoquot eller quottribquot her 3. (Valgfritt) Velg optimeringsmål i Automatisk analyse, Innstillinger, quotWalk - Forwardquot-fanen, Optimaliseringsmålfelt. Hvis du hopper over dette trinnet, vil det optimalisere for CARMDD (sammensatt årlig avkastning dividert med maksimal drawdown). Nå 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 Optimeringen er prosessen med å finne minimum (eller maksimum) av gitt funksjon. Ethvert handelssystem kan betraktes som en funksjon av visse antall argumenter. Inngangene er parametere og sitatdata. Utgangen er ditt optimaliseringsmål (si CARMDD). Og du ser etter maksimal gitt funksjon. Noen av smart optimaliseringsalgoritmer er basert på natur (animalsk oppførsel) - PSO-algoritme, eller biologisk prosess - Genetiske algoritmer, og noen er basert på matematiske konsepter avledet av mennesker - CMA-ES. Disse algoritmene brukes på mange forskjellige områder, inkludert økonomi. Skriv inn quotPSO financequot eller quotCMA-ES financequot i Google, og du vil finne mye informasjon. Ikke-uttømmende (eller quotsmartquot) metoder vil finne global eller lokal optimal. Målet er selvsagt å finne en global en, men hvis det er en eneste skarp topp ut av zillion-parameterkombinasjoner, kan ikke-uttømmende metoder mislykkes i å finne denne single-toppen, men etter å ha tatt det fra handelsfolk, er det enkelt å finne en eneste skarp topp for trading fordi det resultatet ville være instabil (for skjøre) og ikke replikable i reell handel. I optimaliseringsprosessen ser vi fremdeles platåregioner med stabile parametere, og dette er området der intelligente metoder skinner. Når det gjelder algoritmen som brukes ved ikke-uttømmende søk, ser det ut som følger: a) Optimiser genererer noen (vanligvis tilfeldig) startpopulasjon av parameter sett b) Backtest utføres av AmiBroker for hvert parameter sett fra befolkningen c) Resultatene av backtestene er evaluert i henhold til algoritmens logikk og ny befolkning genereres basert på utviklingen av resultatene d) hvis nytt beste er funnet - lagre det og gå til trinn b) til stoppkriteriene er oppfylt. Eksempel på stoppkriterier kan omfatte: a) å nå 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 hvilken som helst hovedakse retning, endrer ikke verdien av objektiv verdi d) andre For å bruke noen smarte (ikke - uttømmende) optimator i AmiBroker må du spesifisere optimaliseringsmotoren du vil bruke i AFL-formelen ved hjelp av OptimizerSetEngine-funksjonen. Funksjonen velger ekstern optimaliseringsmotor definert ved navn. AmiBroker sendes for tiden med 3 motorer: Standard Particle Swarm Optimizer (quotspsoquot), Stammer (quottribquot) og CMA-ES (quotcmaequot) - navnene i seler skal brukes i OptimizerSetEngine-anrop. I tillegg til å velge optimaliseringsmotor kan det hende du vil sette inn noen av sine interne parametere. For å gjøre det, bruk OptimizerSetOption-funksjonen. OptimizerSetOption (quotnamequot, value) funksjon Funksjonen angir tilleggsparametere for ekstern optimaliseringsmotor. Parametrene er motoravhengige. Alle tre optimalisatorene som leveres med AmiBroker (SPSO, Trib, CMAE) støtter to parametere: quotRunsquot (antall runder) og quotMaxEvalquot (maksimale evalueringer (tester) 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 Kjør og MaxEval er som følger. Evaluering (eller test) er single backtest (eller evaluering av objektiv funksjonsverdi). RUN er en full runde av algoritmen (finne optimal verdi) - vanligvis involverer mange tester (evalueringer). Hvert løp gjenoppretter bare RESTARTS hele optimaliseringsprosessen fra den nye begynnelsen (ny innledende tilfeldig befolkning). Derfor kan hvert løp føre til å finne forskjellig lokal maxmin (hvis den ikke finner global). Så Kjører parameter definerer antall påfølgende algoritme kjører. MaxEval er det maksimale antall evalueringer (bactests) i en enkelt løp. Hvis problemet er relativt enkelt, og 1000 tester er nok til å finne global maks, er 5x1000 mer sannsynlig å finne global maksimal fordi det er mindre sjanser til å bli sittende fast i lokal maks, da etterfølgende forsøk vil starte fra forskjellige første tilfeldige populasjoner. Valg av parameterverdier kan være vanskelig. Det avhenger av problem under test, dets kompleksitet osv. En hvilken som helst stokastisk ikke-uttømmende metode gir deg ikke garanti for å finne global maxmin, uansett antall tester hvis det er mindre enn uttømmende. Det enkleste svaret er å. spesifiser så stort antall 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 ved å legge til ny dimensjon. Det kan føre til overestimering av antall tester som kreves, men det er ganske trygt. Sendte motorer er konstruert for å være enkle å bruke, og derfor er kvoteringskvotene defaulautomatiske verdier brukt, slik at optimalisering vanligvis kan kjøres uten å spesifisere noe (aksepterer standardinnstillinger). Det er viktig å forstå at alle smarte optimaliseringsmetoder fungerer best i kontinuerlige parameterrom og relativt jevne objektivfunksjoner. Hvis parameterplass er diskrete evolusjonære algoritmer kan ha problemer med å finne optimal verdi. Det gjelder spesielt for binære parametre (onoff) - de er ikke egnet for en hvilken som helst søkemetode som bruker gradient av objektiv funksjonsendring (som de fleste smarte metoder gjør). Hvis handelssystemet ditt inneholder mange binære parametere, bør du ikke bruke smart optimizer direkte på dem. Prøv å optimalisere bare kontinuerlige parametere ved hjelp av smart optimizer, og bytt binære parametere manuelt eller via eksternt skript. 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. Å plukke riktige alternativer for PSO optimizer kan være vanskelig, derfor kan resultatene variere vesentlig fra sak til sak. SPSO. dll leveres med full kildekoder i quotADKquot-undermappen. Eksempelkode for Standard Particle Swarm Optimizer: (finne optimal verdi i 1000 tester innenfor søkeområdet på 10000 kombinasjoner) OptimizerSetEngine (quotspsoquot) OptimizerSetOption (quotRunsquot, 1) OptimizerSetOption (quotMaxEvalquot, 1000) sl Optimaliser (quotsquot, 26, 1, 100, 1 ) FA Optimaliser (quotfotot, 12, 1, 100, 1) Kjøp Kors (MAC, fa, sl), 0) Selg kors (0, MACD (fa, sl)) TRIBES - Adaptive Parameter-Less Particle Swarm Optimizer Stammer er adaptive , parameter-mindre versjon av PSO (partikkel swarm optimalisering) ikke-uttømmende optimizer. For vitenskapelig bakgrunn, se: particleswarm. infoTribes2006Cooren. pdf I teorien skal det fungere bedre enn vanlig PSO, fordi den automatisk kan justere svømmestørrelsen og algoritmenes strategi for å løse problemet. Praksis viser at ytelsen er ganske lik PSO. Stammen. DLL-plugin implementerer quotTribes-Dquot (dvs. dimensjonsløs) variant. Basert på clerc. maurice. free. frpsoTribesTRIBES-D. zip av Maurice Clerc. Originale kildekoder brukt med tillatelse fra forfatteren Tribes. DLL leveres med full kildekode (inne i quotADKquot-mappen) Støttede parametere: quotMaxEvalquot - maksimalt antall evalueringer (backtests) per runde (standard 1000). Du bør øke antall evalueringer med økende antall dimensjoner (antall optimaliseringsparameter). Standard 1000 er bra for 2 eller maksimum 3 dimensjoner. quotRunsquot - antall løp (starter på nytt). (standard 5) Du kan forlate antall kjører til standardverdien på 5. Standard antall kjøringer (eller omstart) er satt til 5. For å bruke Stammer optimizer, trenger du bare å legge til en linje i koden din: OptimizerSetOption (quotMaxEvalquot , 5000) 5000 evalueringer maks. CMA-ES - Covariance Matrix Adaptation Evolusjonær Strategi Optimizer CMA-ES (Covariance Matrix Adaptation Evolutionary Strategy) er avansert ikke-uttømmende optimizer. For vitenskapelig bakgrunn, se: bionik. tu-berlin. deusernikocmaesintro. html Ifølge vitenskapelige referanser overgår ni andre, mest populære evolusjonære strategier (som PSO, Genetisk og Differensiell evolusjon). bionik. tu-berlin. deusernikocec2005.html CMAE. DLL-plugin implementerer quotGlobalquot-variant av søk med flere omstart med økende populasjonsstørrelse CMAE. DLL leveres med full kildekode (inne i quotADKquot-mappen) Standard antall kjøringer (eller omstart) er satt til 5. Det anbefales at du lar standardnummeret startes på nytt. Du kan variere det ved hjelp av OptimizerSetOption (quotRunsquot, N) call, hvor N skal være i område 1..10. Det er ikke anbefalt å spesifisere mer enn 10 løp, selv om det er mulig. Merk at hvert løp bruker TWICE størrelsen på populasjonen i forrige runde, slik at den vokser eksponentielt. Derfor slutter du med 10 runder med befolkning 210 større (1024 ganger) enn første runde. Det er en annen parameter quotMaxEvalquot. Standardverdien er null, noe som betyr at plugin automatisk beregner 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å det finner ofte løsninger raskere enn andre strategier. Det er normalt at plugin hopper over noen evalueringstrinn, hvis det oppdager at løsningen ble funnet, derfor bør du ikke bli overrasket over at fremdriftslinjen for optimalisering kan bevege seg veldig fort på noen punkter. Pluggen har også mulighet til å øke antall trinn over opprinnelig estimert verdi hvis det trengs for å finne løsningen. På grunn av sin adaptive natur er den quotestimerte tiden leftquot andor kvotenummer for trinnquot vist av fremdriftsdialogen bare kvotegitt på tidspunktet og kan variere under optimaliseringskurs. For å bruke CMA-ES optimizer trenger du bare å legge til en linje i koden din: Dette vil kjøre optimaliseringen med standardinnstillinger som er bra for de fleste tilfeller. Det skal bemerkes, som det er tilfelle med mange continouos-space-søkealgoritmer, påvirker den avtagende quotstepquot-parameteren i Optimize () funciton-anrop ikke signifikant optimaliseringstidene. Det eneste som betyr noe er problemet quotdimensionquot, dvs. antall forskjellige parametere (antall optimaliseringsfunksjonssamtaler). Antall kvotepot per parameter kan settes uten å påvirke optimaliseringstiden, så bruk den beste oppløsningen du vil ha. I teorien skal algoritmen kunne finne løsningen i de fleste 900 (N3) (N3) backtests hvor quotNquot er dimensjonen. I praksis konvergerer det en masse raskere. For eksempel kan løsningen i 3 (N3) dimensjonsparameterrom (si 100100100 1 million uttømmende trinn) finnes i så få som 500-900 CMA-ES trinn. Multi-threaded individuell optimalisering Starter fra AmiBroker 5.70 i tillegg til fler-symbol multithreading. Du kan utføre multi-threaded single-symbol optimalisering. For å få tilgang til denne funksjonaliteten, klikk på rullegardinpilen ved siden av quotOptimizequot-knappen i vinduet Nytt analyse og velg sertifisering for individuell optimalisering. quotIndividual Optimizequot vil bruke alle tilgjengelige prosessorkjerner til å utføre enkeltsymboloptimalisering, noe som gjør det mye raskere enn vanlig optimalisering. I quotCurrent symbolquot-modus vil det utføre optimalisering på ett symbol. I alleAlle symbolquot og quotFilterquot moduser vil det behandle alle symbolene i rekkefølge, dvs. først fullstendig optimalisering for første symbol, deretter optimalisering på andre symbol, etc. Begrensninger: 1. Tilpasset backtester støttes IKKE (ennå) 2. Smart optimeringsmotorer støttes IKKE - Kun EXHAUSTIVE optimalisering fungerer. Til slutt kan vi bli kvitt begrensning (1) - når AmiBroker er endret, så bruker ikke tilbakebetjent tester ikke OLE lenger. Men (2) er sannsynligvis her for å være for lenge. 14. oktober 2011 Lagt til 29. februar 2012, flere poeng å vurdere: 1) Dette systemet er avhengig av å få nøyaktige fyllinger på den åpne prisen. For å oppnå slike utfyllinger krever en kvalitet, minimumsforsinkelsesdatainnføring og avanserte programmeringsevner for å implementere handelsautomatisering. 2) Når innstillingsprisen ligger litt under den åpne prisen (prøver å forbedre ytelsen), svikter systemet dårlig. Selv å forbedre prisen med bare en cent dreper systemet. Dette antyder at det meste av fortjenesten kommer fra dager hvor den åpne prisen var lik den daglige lave, dvs. prisen gikk opp fra den åpne og aldri falt under den. Dette er selvsagt åpenbart. For å bekrefte dette la jeg til denne testtilstanden (det ser fremover ut) for å utelukke dager hvor Open Low: Kjøp Kjøp OG IKKE O L Dette dreper systemet og viser at det meste av fortjenesten kommer fra dager der OL. For ytterligere å bekrefte dette la jeg til motsatt betingelse: Kjøp Kjøp OG O L Dette gir nesten uendelig fortjeneste og viser at de fleste fortjenestene kommer fra dager som prisen går opp umiddelbart fra Åpent og aldri returnerer under den. Forsøk å forbedre inngangsprisen er en feil man bør legge inn på et Stopp sett 1-2 ct over åpent pris, dette vil eliminere dager når prisen synker og aldri vender tilbake. Dette forbedrer ytelsen betydelig. 3) Dette systemet handler knee-jerk trader-responsespatterns. Slike mønstre blir vanligvis druknet av store volumhandel, og dette systemet fungerer langt bedre når du velger tickers med volumer mellom 500.000 og 5.000.000 aksjedag. Dette forbedrer også ytelsen betydelig. Å legge til de to funksjonene ovenfor gir en egenkapitalkurve mye bedre enn det som er vist nedenfor. Beklager, jeg har ikke tid til å dokumentere det ovenfor i større detalj. Held og lykke Dette innlegget beskriver en veldig enkel, langvarig handelsidee som kjøper til en gitt prosentandel under igår8217s Lav, og avslutter neste dag8217s Åpne. Selv om det noen ganger kan være vanskelig å få den nøyaktige Åpen pris, gjør den høye lønnsomheten til dette systemet en god kandidat til videre eksperimentering. Systemet fungerer bra med Watchlister som N100, SP500, SP1500, Russel 1000, etc. Ytelse på Russel 1000, med maks. åpne posisjoner satt til 1, for perioden 12102003 til 12102011, ser slik ut: Noen av de andre Watchlists gir mindre eksponering (fortjeneste), men dette kommer med lavere DDs. Kommisjonene ble satt til 0,005 per aksje. Ingen margen brukt. Ingen eksplisitt rangering er brukt tickers handles basert på deres alfabetiske sortering i Watchlist. Dette kan virke merkelig, men er viktig: reversering av denne typen svikter systemet. Dette kan bety at symboler som er oppført på toppen av denne typen, på grunn av sanntidsscaningsproblemer, kan omsettes forskjellig fra de som er oppført nederst. Vær oppmerksom på Likviditet (du vil kanskje bytte mer enn en stilling) og slippe (Entry er ganske risikofri, men utganger kan være problematiske). DD er signifikante, men kan kompenseres med forbedrede oppføringer og utganger i sanntid. Når du handler automatisk, kan det være mulig å plassere OCA DAY-LMT oppføringsordrer for alle signaler og bare vent og se hva som fylles. Siden utganger er vanskeligere enn oppføringer, kan det være lurt å utforske andre utgangsstrategier. Parameterstandardverdier hentes bare ut av en lue. Nesten absolutt kan du optimalisere dem eller justere dem dynamisk for individuelle tickers. Jeg testet dette systemet kort i Walk-Forward-modus, og resultatene var lønnsomme for alle årene som ble testet. Bortsett fra antall aksjer som omsettes, synes parametere ikke veldig kritiske. Overoptimering doesn8217t virker som et problem i dette tilfellet. Koden nedenfor er veldig enkel og krever få forklaringer. Det er imidlertid viktig å forstå at dette systemet har en liten kant ved å handle på Open, og ved å beregne TrendMA ved å bruke samme Open-pris. Noen kan tolke dette som fremtidig lekkasje, men hvis du handler dette systemet i sanntid, er det ikke. Mange innser ikke at hvis du handler på Open, kan du også bruke denne prisen i beregningene dine 8212 så lenge du utfører dem i sanntid 8212, dette er hvor AmiBroker og teknologi kan gi deg en fordel. Hvis du Ref () tilbake TrendMA med en linje, er systemet fortsatt svært lønnsomt, men DDs øker for noen Watchlister. Hvis du bruker faste investeringer, er forskjellen ubetydelig. Handelsprosedyren ville være å begynne å skanne før markedet åpnes og fjerne ticker som er priset så fjernt at de ikke sannsynligvis vil møte OpenThresh. Dermed kan du begynne å skanne 1000 symboler, men svært raskt vil det skannede antallet synke til bare et dusin eller så tickers. Når du nærmer deg klokka 09:30, vil din sanntidsskanning bli veldig rask, og du vil kunne plassere LMT-bestillingen svært nær Open 8211, du kan til og med kunne forbedre på den åpne prisen. Selv om noen få ser på koden under og ikke har funnet noe galt, virker overskuddet ganske høyt for et så enkelt system. Vennligst rapporter feil du måtte se. Filed by Herman at 7:03 pm under Ideas (Experimental) Comments Off på EOD Gap-Trading Portfolio-systemet 1. september 2011 Denne ideen ble postet (161332) på den viktigste AmiBroker-listen den 3. juli 2011. Det var mange gode kommentarer på listen og hvis du er interessert i å jobbe med dette systemet, gjør du det bra å lese dem alle før du starter. Etter innlegging fant jeg en rekke innlegg på nettet som diskuterte denne handelsideen. Noen hevdet å være å handle et lignende system med god suksess. Jeg henviste til dette systemet et 8220Gap Trading8221-system, men dette kan være litt misvisende, 8220Mean reversion8221 kan være en bedre klassifisering. Googling for det vil gi deg mange flere treff til lignende systemer. Her er noen få lenker: Det ser ut til å være en ganske diskutert handelsidee, og jeg foreslår at du gjør noen Googling på egen hånd for å lære det siste. Som Amibroker-bruker har du bedre verktøy enn de fleste handelsfolk, og du har en bedre sjanse enn de fleste til å komme opp med en variant som fungerer. Kanskje med litt mindre fortjeneste, og med en betydelig mengde tilleggskode 8212, vant det 8217t et 8220quicky8221-prosjekt :-) Noen mennesker kommenterte at dette systemet ikke vil fungere i ekte handel, mens de kan være riktige, andre sier ordninger som dette arbeidet. Jeg klarte ikke å fullføre systemet, og can8217t hevder å vite om det er omsettelig eller ikke. Systemet kjøper til en viss prosentandel under igår8217s Lav, på en LMT-bestilling, og går ut på samme dag i Lukk. Filed by Herman at 6:53 pm under Ideas (Experimental) Comments Off på en langsiktig EOD Gap trading ide Jeg bruker et lite oppsettskriterium for å skanne etter mine aksjer. MACD standard, jeg ser etter Histogram 4 nedefelt og 1 opp bar for buy signal (jeg har histogrammet satt til rødt for ned og blå for opp, så jeg kan se tydelig). MACD over null linje RSI over 30 Dette systemet er basert på trend trading. Kjøper på pullback når markedet fortsetter sin opp trend. Slik søker du etter MACD Trend-oppsett: 1) Sett inn følgende formel i et diagram. 2) Kjør en skanning i AA ved hjelp av SMACDTrend med alle symboler. n siste dager. n 1 og Sync chart på velg som innstillingene. Aksjer som oppfyller kriteriene vil bli rapportert i resultatlisten. Merk: Noen variasjoner av oppsettreglene kan definere signaler som er ganske sjeldne, og i små databaser er det mulig at det ikke vil være noen oppsett på en gitt dag (derfor vil ingen lager bli rapportert av skanningen). 3) Klikk på et hvilket som helst symbol i resultatruten for å vise diagrammet, for det symbolet, i bakgrunnen. Merk: I dette eksemplet ble det brukt en treningsdatabase som bare inneholder data opp til 5112007. Trading idé av protraderinc. Kommentarer og formel ved Bill 8211 WaveMechanic. Filed under brianz at 11:06 pm under Ideas (Experimentell) Kommentarer Off på MACD Trend System 14 oktober 2007 Filed by brianz at 10:43 pm under Ideas (Experimental) Comments Off på 15 Day Performers Trading System 19 august 2007 Dette er den første i en serie av KISS (hold det enkelt, dumt) handelsideer for deg å leke med. Alle systemideer som presenteres her er ubevisste, uferdige og kan inneholde feil. De er ment å vise mulige mønstre for videre leting. Som alltid er du invitert til å kommentere andor legge til dine egne ideer til denne serien. Jeg foretrekker sanntidssystemer som handler fort, er automatiserte, og er uten tradisjonelle indikatorer. Fortrinnsvis bør de ikke ha noen optimaliserbare parametre, men jeg kan ikke alltid være i stand til å oppfylle dette målet. Ikke alle systemene vil være så enkle at det vil være noen som bruker enkle gjennomsnitt eller HHVLLV type funksjoner. Det første systemet som vises nedenfor er en kopi av demosystemet jeg bruker til å utvikle Trade-Automation rutiner andre steder på dette nettstedet. Real-Time Gap-Trading. For å se hvordan dette virker, bør du Backtest det på 1-minutters data med en periodicitet i området 5-60 minutter. Ditt første inntrykk kan være at disse fortjenestene bare skyldes et oppe marked, men det faktum at Lang og Kort fortjeneste er omtrent lik, tyder på at det er mer til det. Fordi 98 av alle handler faller mellom kl. 9:30 og 10:30, er denne typen system fint hvis du bare vil handle en kort tid hver dag. Dette reduserer risikoen med hensyn til markedseksponering og gir deg mer tid til å nyte andre aktiviteter. Backtesting dette på NASDAQ-100-watchlisten (individuelle backtests, 15 min. Periodicity) gir fortjenesten vist nedenfor for perioden 1. MAR 2007 til 17. AUG 2007. Ticker navnene utelates for å holde diagrammet kompakt, viser diagrammet bare en netto fortjeneste bar for hver ticker testet. Gjennomsnittlig eksponering for dette systemet er om lag 15, og du kan derfor handle porteføljer for å øke fortjenesten og jevne kapitalkurver. Vær oppmerksom på at uavhengighetene i uavhengig form er uakseptable, og at det kan være volumrestriksjoner for mange tickers. Siden dette systemet har lav eksponering, kan det være en kandidat for markedsskanning og rangert porteføljehandel. RAR ville være en indikasjon på den absolutte maksimale fortjenesten som kunne oppnås hvis man lyktes å øke eksponeringen til nær 100. Imidlertid kan prisbevegelsen fra forskjellige tickers korreleres, og handel fra forskjellige ticker kan overlappe. Hvis mange tickers handler samtidig, ville det være vanskelig å øke systemeksponeringen. Filed by Herman at 1:49 pm under Ideas (Experimental) Comments Off på KISS-001: Intraday Gap Trading 17. august 2007 Du er invitert til å sende inn linker til systemideer i kommentarer til dette innlegget. Gap Trading Strategies 8211 Stockcharts Intradag Moving Gjennomsnittlig Crossover med Posisjonering 8211 NeoTicker Volatilitet-Breakout-Systems 8211 Traders Log Ten-Day HighLow System 8211 StockWeblog Reversion Systems 8211 SeekingAlpha Systems Traders Club. Trader Club Bulletins. 16. juli 2007 Denne kategorien er reservert for virkelige handelssystemer, det vil si at du har handlet på et eller annet tidspunkt eller vil vurdere å handle. Siden kriteriene for omsettelighet varierer fra person til person, og siden systemene kan fungere eller ikke, avhengig av hvordan de handles, vil det være vanskelig å vise bidrag her. Med hensyn til hva som er lagt opp her, hold et åpent sinn og vurder at plakaten vurderer at systemet kan omsettes. Du kan bidra med å legge ut som forfatter (krever registrering) eller i en kommentar til dette innlegget. Arkivert av Herman kl. 11:14 under Praktisk (lønnsom) Comments Off på introduksjon til handelssystemer 8211 Praktisk Her kan du dele handelssystemer som er marginalt lønnsomme, dvs. de som ikke bør handles som de er, men som viser potensial. Vanligvis vil dette være et grunnleggende system som er lønnsomt, men erfaringer trekker ned på 50. Slike systemer kan ofte forbedres ved å legge til Stopp, Mål, Money Management, Portfolio teknikker, etc. Virkeligheten er at mens du kanskje ikke har kompetansen til å lage det fungerer noen andre kanskje. Nesten alle av oss finner handelssystemideer i bøker og magasiner som vi da kodes i AFL for evaluering. Noen av disse systemene kan ha eksistert i mange år, mens andre er nye ideer. Etter å ha kodet dem, nesten alltid, er vi skuffet og kaster ut systemet (arbeid). I stedet for å kaste ut arbeidet ditt, inviteres du til å legge inn systemet her for å gi en annen utvikler en sjanse til å fikse det. Du er invitert til å bidra som forfatter (krever registrering) eller i en kommentar til dette innlegget. Filed by Herman at 11:04 am under Ideas (Experimental) Kommentarer Off på Introduksjon til Trading Systems 8211 IdeasOctober 14, 2011 Lagt til 29. februar 2012, flere poeng å vurdere: 1) Dette systemet er avhengig av å få nøyaktige fyllinger på den åpne prisen. For å oppnå slike utfyllinger krever en kvalitet, minimumsforsinkelsesdatainnføring og avanserte programmeringsevner for å implementere handelsautomatisering. 2) Når innstillingsprisen ligger litt under den åpne prisen (prøver å forbedre ytelsen), svikter systemet dårlig. Selv å forbedre prisen med bare en cent dreper systemet. Dette antyder at det meste av fortjenesten kommer fra dager hvor den åpne prisen var lik den daglige lave, dvs. prisen gikk opp fra den åpne og aldri falt under den. Dette er selvsagt åpenbart. For å bekrefte dette la jeg til denne testtilstanden (det ser fremover ut) for å utelukke dager hvor Open Low: Kjøp Kjøp OG IKKE O L Dette dreper systemet og viser at det meste av fortjenesten kommer fra dager der OL. For ytterligere å bekrefte dette la jeg til motsatt betingelse: Kjøp Kjøp OG O L Dette gir nesten uendelig fortjeneste og viser at de fleste fortjenestene kommer fra dager som prisen går opp umiddelbart fra Åpent og aldri returnerer under den. Forsøk å forbedre inngangsprisen er en feil man bør legge inn på et Stopp sett 1-2 ct over den åpne prisen, dette vil eliminere dager når prisen synker og aldri slår tilbake. Dette forbedrer ytelsen betydelig. 3) Dette systemet handler knee-jerk trader-responsespatterns. Slike mønstre blir vanligvis druknet av store volumhandel, og dette systemet fungerer langt bedre når du velger tickers med volumer mellom 500.000 og 5.000.000 aksjedag. Dette forbedrer også ytelsen betydelig. Å legge til de to funksjonene ovenfor gir en egenkapitalkurve mye bedre enn det som er vist nedenfor. Beklager, jeg har ikke tid til å dokumentere det ovenfor i større detalj. Held og lykke Dette innlegget beskriver en veldig enkel, langvarig handelsidee som kjøper til en gitt prosentandel under igår8217s Lav, og avslutter neste dag8217s Åpne. Selv om det noen ganger kan være vanskelig å få den nøyaktige Åpen pris, gjør den høye lønnsomheten til dette systemet en god kandidat til videre eksperimentering. Systemet fungerer bra med Watchlister som N100, SP500, SP1500, Russel 1000, etc. Ytelse på Russel 1000, med maks. åpne posisjoner satt til 1, for perioden 12102003 til 12102011, ser slik ut: Noen av de andre Watchlists gir mindre eksponering (fortjeneste), men dette kommer med lavere DDs. Kommisjonene ble satt til 0,005 per aksje. Ingen margen brukt. Ingen eksplisitt rangering er brukt tickers handles basert på deres alfabetiske sortering i Watchlist. Dette kan virke merkelig, men er viktig: reversering av denne typen svikter systemet. Dette kan bety at symboler som er oppført på toppen av denne typen, på grunn av sanntidsscaningsproblemer, kan omsettes forskjellig fra de som er oppført nederst. Vær oppmerksom på Likviditet (du vil kanskje bytte mer enn en stilling) og slippe (Entry er ganske risikofri, men utganger kan være problematiske). DD er signifikante, men kan kompenseres med forbedrede oppføringer og utganger i sanntid. Når du handler automatisk, kan det være mulig å plassere OCA DAY-LMT oppføringsordrer for alle signaler og bare vent og se hva som fylles. Siden utganger er vanskeligere enn oppføringer, kan det være lurt å utforske andre utgangsstrategier. Parameterstandardverdier hentes bare ut av en lue. Nesten absolutt kan du optimalisere dem eller justere dem dynamisk for individuelle tickers. Jeg testet dette systemet kort i Walk-Forward-modus, og resultatene var lønnsomme for alle årene som ble testet. Bortsett fra antall aksjer som omsettes, synes parametere ikke veldig kritiske. Overoptimering doesn8217t virker som et problem i dette tilfellet. Koden nedenfor er veldig enkel og krever få forklaringer. Det er imidlertid viktig å forstå at dette systemet har en liten kant ved å handle på Open, og ved å beregne TrendMA ved å bruke samme Open-pris. Noen kan tolke dette som fremtidig lekkasje, men hvis du handler dette systemet i sanntid, er det ikke. Mange innser ikke at hvis du handler på Open, kan du også bruke denne prisen i beregningene dine 8212 så lenge du utfører dem i sanntid 8212, dette er hvor AmiBroker og teknologi kan gi deg en fordel. Hvis du Ref () tilbake TrendMA med en linje, er systemet fortsatt svært lønnsomt, men DDs øker for noen Watchlister. Hvis du bruker faste investeringer, er forskjellen ubetydelig. Handelsprosedyren ville være å begynne å skanne før markedet åpnes og fjerne ticker som er priset så fjernt at de ikke sannsynligvis vil møte OpenThresh. Dermed kan du begynne å skanne 1000 symboler, men svært raskt vil det skannede antallet synke til bare et dusin eller så tickers. Når du nærmer deg klokka 09:30, vil din sanntidsskanning bli veldig rask, og du vil kunne plassere LMT-bestillingen svært nær Open 8211, du kan til og med kunne forbedre på den åpne prisen. Selv om noen få ser på koden under og ikke har funnet noe galt, virker overskuddet ganske høyt for et så enkelt system. Vennligst rapporter feil du måtte se. Filed by Herman at 7:03 pm under Ideas (Experimental) Kommentarer Off på EOD Gap-Trading Portfolio systemAmibroker AFL Collection Mine trading kursene kommer nå med komplett Amibroker systemkode for over 20 strategier. Sjekk dem ut her. Amibroker trading plattformen er ekstremt rask, fleksibel og gir god valuta for pengene. I8217ve har brukt programvaren i rundt fem år nå, og min Amibroker AFL-kolleksjon har vokst betydelig på den tiden. Enten du er interessert i å bygge handelssystemer, handler langsiktige trender, investerer i blue chip-selskaper eller velger penny stocks, kan du gjøre det og mye mer med Amibroker. Beste Amibroker AFL Collection Det er to steder jeg går for å se etter Amibroker AFL. Den ene er Amibroker-nettbiblioteket, og det andre er Yahoo Amibroker-forumet. Jeg har nylig kommet over denne samlingen av 129 Amibroker systemer også. Jeg har tatt del i det for dypt, men systemene ser enkle og enkle å bruke. Dette er alle gode steder å begynne å lære om Amibroker, men som med de fleste kilder til gratis materiale, er det ofte nødvendig med jakt for å komme seg til de gode greiene. Det andre problemet med en hvilken som helst Amibroker AFL-samling er at ethvert handelssystem du finner online er tilgjengelig for alle som skal bruke. På grunn av dette, er du ganske usannsynlig å finne en som fungerer, eller i det minste fungerer bra. Likevel kan Amibroker AFL som du finner på nettet, alltid justeres, endres og læres av for egne midler. Don8217t glemmer data En annen viktig ting å huske når du bruker Amibroker er at et handelssystem bare er like bra som dataene du bruker. Det er viktig å bruke høy kvalitet, ren lagerdata. Ellers vil du ende opp med et feil handelssystem som vil miste penger i ekte handel. Jeg bruker tjenestene på Norgate Premium Data, og jeg er veldig glad, spesielt med den nye historiske komponentdatabasen som følger med Alpha-programmet. Du kan få en gratis prøveversjon av tjenesten her. AFL i kursene mine Hvis du er på utkikk etter Amibroker AFL, inneholder kursene mine en samling av over 20 handelssystemer, noe trend etter og noen betydelige tilbakeføringer. Disse er testet på minst ti års historisk lagerdata, og i tilfelle av mitt nye Trend Following For Stocks kurs, har systemet og koden blitt testet over 30 år. Handelssystemene som vises på kursene mine er de beste handelssystemene I8217ve funnet fra år med tilbaketesting og forskning. De gir avkastning fra 13 CAR (sammensatt årlig retur) til over 50 biler. Og de er alle enkle, enkle systemer som enkelt kan implementeres på daglig eller ukentlig basis. Trading the Noise AFL For eksempel, trading system 4 i mitt HTBWS kurs kalles 8216Trading Noise Plus Shorts8217. Den bruker en veldig enkel indikator for å måle nivået av støy i en lager for å bestemme når det er trending. Den returnerte 23,93 CAR over 10 år og hadde bare ett ned år som var 2002. Du kan få den gratis Amibroker AFL for strategien her. RSI med VIX AFL På samme måte kalles handelssystem 15, 8216RSI med Vix8217 og returnerte 25,73 i backtesting. Den bruker en enkel trend som følger strategien ved hjelp av RSI-indikatoren og VIX-volatilitetsindeksen som et filter. Få den gratis koden Her Cherry Picking Penny Stocks Trading System 18, kalt 8216Cherry Picking Penny Stocks8217, leverer 30,45 CAR over 10 års aksjemarkedsdata og har en maksimal systemutnyttelse på -30,18. Systemet plukker penny-aksjer som beveger seg i sterke oppadgående trender ved å bruke et filter basert på ATR (gjennomsnittlig true range-funksjon). It also has a price filter though to avoid the really illiquid penny stocks. And these trading systems are also mentioned in my book which is available on Amazon. The book, however, does not include any of the new strategies that I have since added to the courses. Such as Trend Following For Stocks, Market Timing with the VIX and the Unusual Volume system. See More Posts Like This One Writing AFL for Amibroker Learn Amibroker with TradingMarkets: Review My stock market book 20 Quantitative Trading Systems How to build a Nifty positional trading system in under 3 minutes using Amibroker 20 Basic Amibroker Buy Arguments How to build profitable mean reversion trading systems This week8217s stock picks 29 April 2014 Can you make money in penny stocks Simple breakout trading system 038 code 16 Best Trading Books Of All Time Best Trading Audiobook (Download Free On Audible) Finding the Next Starbucks by Michael Moe Review Require to create Popup Alert AFL for Amibroker i have draw the horizontaltrend line in so many stocks in multipal time frame (2 min. 5 min. 15min. 30 min. hrs. and daily) and whenever price will cross and close above (selected time candle) of horizontaltrend line then require 8220POPUP8221 alert and same think below the horizontaltrend line and close the price below the horizontaltrend line. input area are as under. Input Area 82128212821282128212- selective stock, selective time frame price close above horizontaltrend line price close below horizontaltrend line Let me know the charges Sorry, I don8217t tend to do custom programming. I8217m sure there are others who can assist you. Takk. sir do you have afl or afl code for the gunners 24 based on gann fan and sq of 9 technique Leave a Reply Cancel reply Categories JB Marwood Independent trader, analyst writer JB Marwood is an independent trader, educator and writer specialising in trading systems and stock trading. He began his career trading the FTSE 100 and German Bund for a trading house in London and now works through his own company. He also writes for Seeking Alpha and other financial publications. Google Please remember financial trading is risky and you could incur significant loss of capital. Nothing on this site is to be construed as personalised investment advice. Please see the full disclaimer .

No comments:

Post a Comment