Saturday 11 November 2017

Trading Strategie Optimalisering


Hoe om handel stelsel te optimaliseer Nota: Hierdie is redelik gevorderde onderwerp. Lees asseblief eers die vorige AFL tutoriale. Inleiding Die idee agter 'n optimalisering is eenvoudig. Eerstens moet jy 'n handel stelsel het, kan dit 'n eenvoudige bewegende gemiddelde crossover byvoorbeeld wees. In byna elke stelsel daar is 'n paar parameters (soos gemiddelde tydperk) wat besluit hoe gegee stelsel optree (dit wil sê is, is geskik vir 'n lang termyn of kort termyn, hoe is reageer op baie volatiel aandele, ens). Die optimalisering is die proses om optimale waardes van die parameters (gee hoogste wins uit die stelsel) vir 'n gegewe simbool (of 'n portefeulje van simbole). AmiBroker is een van die baie min programme wat jou toelaat om jou stelsel te optimaliseer op verskeie simbole in 'n keer. Om jou stelsel te optimaliseer wat jy hoef te definieer van een Tot tien parameters te verbeter. Jy besluit wat is 'n minimum en maksimum toelaatbare waarde van die parameter en in watter vermeerderings hierdie waarde moet opgedateer word. AmiBroker voer dan verskeie terug toets die stelsel met behulp van alle moontlike kombinasies van parameters waardes. Wanneer hierdie proses afgehandel is AmiBroker vertoon die lys van resultate gesorteer volgens netto wins. Jy is in staat om die waardes van optimalisering parameters wat die beste resultaat te gee te sien. Skryf AFL formule Optimalisering in terug tester word ondersteun deur nuwe funksie genoem te optimaliseer. Die sintaksis van hierdie funksie is soos volg: veranderlike = optimaliseer (& quot; Beskrywing & quot ;, verstek min Max stap...); veranderlike - is normaal AFL veranderlike wat die waarde wat deur optimaliseer funksie kry opgedra. Met gewone back testing, skandering, eksplorasie en kortverhale modes die optimaliseer funksie gee terug verstek waarde, sodat die bogenoemde funksie oproep is gelykstaande aan: veranderlike = verstek; In optimalisering terug af optimaliseer funksie opeenvolgende waardes van min tot maksimum (inklusief) met stap stepping. & Quot; Beskrywing & quot; is 'n string wat gebruik word om die optimalisering veranderlike identifiseer en vertoon as 'n naam kolom in die lys optimalisering gevolg. standaard is 'n standaard waarde wat funksie gee terug in eksplorasie, aanwyser, kommentaar te optimaliseer, scan en normale terug toets modes min 'n minimum waarde van die veranderlike wat new Max is 'n maksimum waarde van die veranderlike wat new stap is 'n interval wat gebruik word vir die verhoging van die waarde van min tot maksimum AmiBroker ondersteun upto 64 oproepe na funksie te optimaliseer (dus Tot 64 optimization veranderlikes), kennis dat as jy 'n volledige optimalisering dan is dit regtig 'n goeie idee om verskeie optimalisering veranderlikes om slegs 'n paar te beperk. Elke oproep te optimaliseer genereer (maksimum - min) / stap optimalisering lusse en verskeie oproepe na optimaliseer vermeerder die aantal lopies wat nodig is. Byvoorbeeld optimalisering twee parameters met behulp van 10 stappe sal vereis dat 10 * 10 = 100 optimization sirkelroetes. Bel optimaliseer funksie slegs een keer per veranderlike aan die begin van jou formule soos elke oproep genereer 'n nuwe optimalisering sirkelroetes Meervoudige simbool optimalisering is ten volle ondersteun deur AmiBroker Maksimum soek spasie is 2 64 (10 19 = 10.000.000.000.000.000.000) kombinasies 1. eenveranderlike optimalisering: sigavg = Optimaliseer ( "Signal gemiddelde" 9. 2. 20. 1.); Koop = Kruis (MACD (12. 26), Signal (12. 26. sigavg)); Koop = Kruis (CCI (per),-vlak); Verkoop = Kruis (Vlak, CCI (per)); 3. Verskeie (3) veranderlike optimalisering: mfast = Optimaliseer ( "MACD Fast" 12. 8. 16. 1.); mslow = Optimaliseer ( "MACD Slow" 26. 17. 30. 1.); sigavg = Optimaliseer ( "Signal gemiddelde" 9. 2. 20. 1.); Koop = Kruis (MACD (mfast, mslow) Signal (mfast, mslow, sigavg).); Verkoop = Kruis (Signal (mfast, mslow, sigavg), MACD (mfast, mslow)); Na die begin van die formule kliek net op Optimaliseer knoppie in & quot; outomatiese analise & quot; venster. AmiBroker sal begin toets alle moontlike kombinasies van optimalisering veranderlikes en rapporteer die resultate in die lys. Na optimalisering van die lys van gevolg gedoen word gesorteer volgens die Net% wins. Soos jy kan sorteer die resultate deur 'n kolom in die lys gevolg is dit maklik om die optimale waardes van parameters te kry vir die laagste drawdown, laagste aantal ambagte, grootste wins faktor, laagste markblootstelling en hoogste risiko-aangepaste jaarlikse% opbrengs. Die laaste kolomme van gevolg lys bied die waardes van optimalisering veranderlikes vir gegewe toets. Wanneer jy besluit watter kombinasie van parameters by jou behoeftes die beste al wat jy hoef te doen is om die standaard waardes in optimaliseer funksie te vervang noem met die optimale waardes. Teen die huidige stadium moet jy hulle tik met die hand in die venster formule wysig (die tweede parameter van optimaliseer funksie oproep). Vertoon 3D animasie optimalisering kaarte 3D optimalisering grafiek vertoon, moet jy twee-veranderlike optimization eerste hardloop. Twee veranderlike optimalisering het 'n formule wat 2 Optimaliseer () funksie oproepe het. 'N Voorbeeld van twee veranderlike optimalisering formule lyk soos volg: per = Optimaliseer ( "per" 2. 5. 50. 1.); Vlak = Optimaliseer ( "vlak" 2. 2. 150. 4.); Koop = Kruis (CCI (per),-vlak); Sodra optimalisering voltooi moet jy kliek op die drop down arrow op Optimaliseer knoppie en kies View 3D optimalisering grafiek. In 'n paar sekondes sal 'n kleurvolle driedimensionele oppervlak plot verskyn in 'n 3D venster grafiek kyker. 'N Voorbeeld 3D grafiek gegenereer met behulp van bogenoemde formule word hieronder getoon. By verstek die 3D kaarte vertoon waardes van die netto wins teen optimalisering veranderlikes. Jy kan egter stip 3D oppervlak grafiek vir 'n kolom in die optimalisering gevolg tafel. Klik op die kolomkop om dit te sorteer (blou pyl sal verskyn wat aandui dat optimization resultate word gesorteer volgens gekose kolom) en kies dan View 3D optimalisering grafiek weer. Deur die verbeelding van hoe parameters jou stelsel se invloed op handel prestasie, kan jy meer geredelik besluit watter parameterwaardes produseer & quot; broos & quot; en wat produseer & quot; robuuste & quot; stelsel prestasie. Robuuste instellings streke in die 3D grafiek wat geleidelike eerder as skielike veranderinge in die oppervlak plot wys. 3D optimalisering kaarte is groot hulpmiddel om krommepassing voorkom. Krommepassing (of oor-optimalisering) vind plaas wanneer die stelsel is meer kompleks as wat dit nodig het om te wees, en alles wat kompleksiteit is gefokus op marktoestande wat nooit weer kan gebeur. Radikale veranderinge (of spykers) in die 3D optimalisering kaarte wys duidelik oor-optimalisering gebiede. Jy moet parameter streek wat 'n breë en wye plato op 3D grafiek produseer vir jou werklike lewe handel kies. Parameter stelle vervaardiging van wins are sal nie betroubaar werk in die werklike handel. 3D kontroles grafiek kyker AmiBroker se 3D grafiek kyker bied totale besigtiging vermoëns, met die volledige grafiek rotasie en animasie. Nou kan jy jou stelsel resultate sien uit elke denkbare perspektief. Jy kan die posisie en ander parameters van die grafiek gebruik te maak van die muis, nutsbalk en sleutelbord kortpaaie, alles wat jy vir jou makliker te vind te beheer. Hier vind u die lys. Muis kontroles: - Om te draai - hou links muis knoppie en beweeg in X / Y aanwysings - Om Zoom-in, zoom-out - hou regter muis knoppie en beweeg in X / Y aanwysings - Om te beweeg (vertaal) - hou links muis knoppie en Ctrl sleutel en beweeg in X / Y aanwysings - Lewendig - hou links muis knoppie, sleep vinnig en die knoppie vrylating terwyl sleep Sleutelbord beheer: Ruimte - lewende (motor-draai) Numeriese eiland 4 - skuif na links Numeriese eiland 6 - skuif na regs Numeriese eiland 8 - skuif up Numeriese eiland 2 - beweeg af Page Up - watervlak tot Page Down - watervlak af Elegant (nie-uitputtende) optimalisering Inleiding AmiBroker bied nou slim (nie-uitputtende) optimization benewens gereelde, uitputtende soek. Nie-uitputtende soek is nuttig as getal van almal parameter kombinasies van gegewe handel stelsel is eenvoudig te groot haalbaar vir uitputtende soektog te wees. Uitputtende soek is heeltemal fyn, solank dit redelik is om dit te gebruik. Kom ons sê jy het 2 parameters elke wissel 1-100 (stap 1). Dis 10000 kombinasies - perfek OK vir uitputtende soek. Nou met 3 parameters het jy 1000000 kombinasies - dit is nog OK vir uitputtende soek (maar kan lenghty wees). Met 4 parameters het jy as 100 miljoen kombinasies en met 5 parameters (1..100) jy 10000000000 kombinasies. In daardie geval sou dit baie tyd in beslag om almal van hulle is so wees, en dit is die gebied waar nie-uitputtende slim-soekmetodes die probleem wat nie opgelos in 'n redelike tyd deur gebruik te maak uitputtende soek kan oplos. Vinnige begin Hier is absoluut die eenvoudigste instruksie hoe om nuwe nie-uitputtende Optimizer (in hierdie geval CMA-ES) gebruik. 1. Maak jou formule in die Formule Redakteur 2. Voeg hierdie enkele lyn aan die bokant van jou formule: OptimizerSetEngine (& quot; cmae & quot;); // Jy kan ook gebruik om & quot; spso & quot; of & quot; trib & quot; hier 3. (Opsioneel) Kies jou optimalisering teiken in outomatiese analise, instellings, & quot; Loop vorentoe & quot; blad, Optimization teiken area. As jy hierdie stap sal optimaliseer vir die motor / MDD (saamgestelde jaarlikse opbrengs gedeel deur maksimum% onttrekking) slaan. en. Dis dit. Nou as jy optimalisering hardloop met behulp van hierdie formule, sal dit nuwe evolusionêre (nie-uitputtende) CMA-ES Optimizer gebruik. Hoe werk dit ? Die optimalisering is die proses om minimum (of maksimum) van gegewe funksie. Enige handel stelsel kan beskou word as 'n funksie van sekere aantal argumente. Die insette is parameters en kwotasie data. die uitset is jou optimalisering teiken (Sê Motor / MDD). En jy is op soek vir 'n maksimum van gegewe funksie. Sommige van smart optimeringsalgoritmes is gebaseer op die natuur (dieregedrag) - PSO algoritme, of biologiese proses - Genetiese algoritmes, en 'n paar is gebaseer op wiskundige konsepte verkry deur die mens - CMA-ES. Hierdie algoritmes gebruik word in baie verskillende gebiede, insluitend finansies. Gee & quot; PSO finansies & quot; of & quot; CMA-ES finansies & quot; in Google en jy sal baie van die inligting te vind. Nie-uitputtende (of & quot; slim & quot;) metodes sal globale of plaaslike optimale vind. Die doel is natuurlik om globale een vind nie, maar as daar 'n enkele skerp piek uit Honderde parameter kombinasies, kan nie-uitputtende metodes versuim om hierdie enkele hoogtepunt vind, maar neem dit vorm perspecive handelaar se bevinding enkele skerp piek is nutteloos vir verhandeling, want dit gevolg onstabiel (te broos) sou wees en nie kopieer in real handel. In optimalisering proses is ons eerder op soek na plato streke met 'n stabiele parameters en dit is die gebied waar intelligente metodes skyn. Soos om algoritme wat gebruik word deur nie-uitputtende soek dit lyk soos volg: a) die optimizer genereer 'n paar (gewoonlik ewekansige) begin bevolking van parameter stelle b) backtest word uitgevoer deur AmiBroker vir elke stel van die bevolking parameter c) die resultate van backtests geëvalueer volgens die logika van algoritme en nuwe bevolking gegenereer gebaseer op die evolusie van resultate, d) As nuwe beste is gevind - dit stoor en gaan na stap b) totdat stop kriteria voldoen Voorbeeld stop kriteria kan die volgende insluit: a) die bereiking van gespesifiseerde maksimum iterasies b) stop as die omvang van die beste doel waardes van die vorige X geslagte nul c) stop as die toevoeging van 0,1 standaardafwyking vektor in enige hoofas rigting nie die waarde van objektiewe waarde te verander Om Elegant (nie-uitputtende) Optimizer in AmiBroker gebruik wat jy nodig het om die optimizer enjin wat jy wil gebruik in die AFL formule gebruik te maak van OptimizerSetEngine funksie spesifiseer. OptimizerSetEngine (& quot; naam & quot;) Die funksie kies eksterne optimalisering enjin gedefinieer by die naam. AmiBroker tans skepe met 3 enjins: Standard Particle Swarm Optimizer (& quot; spso & quot;), stamme (& quot; trib & quot;), en CMA-ES (& quot; cmae & quot;) - die name in draadjies is om gebruik te word in OptimizerSetEngine oproepe. Benewens die keuse optimizer enjin kan jy 'n paar van sy interne parameters. Om dit te doen gebruik OptimizerSetOption funksie. OptimizerSetOption (& quot; naam & quot ;, waarde) funksie Die funksie stel addisionele parameters vir eksterne optimalisering enjin. Die parameters is enjin-afhanklike. Al drie Optimizers verskeep met AmiBroker (SPSO, trib, CMAE) ondersteuning twee parameters: & quot; Loop & quot; (Aantal lopies) en & quot; MaxEval & quot; (Maksimum evaluerings (toetse) per enkele lopie). Die gedrag van elke parameter is enjin-afhanklike, sodat dieselfde waardes kan en gewoonlik sal verskillende resultate met verskillende enjins gebruik oplewer. Die verskil tussen Loop en MaxEval is soos volg. Evaluering (of toets) is enkele backtest (of evaluering van doelfunksie waarde). Run is een volle duur van die algoritme (vind optimale waarde) - gewoonlik met baie toetse (evaluerings). Elke lopie net weer begin die hele optimalisering proses van die nuwe begin (nuwe aanvanklike ewekansige bevolking). Daarom kan elke lopie lei tot die vind van verskillende plaaslike Max / min (indien dit nie globale mens vind). So loop parameter definieer aantal daaropvolgende algoritme lopies. MaxEval is die maksimum aantal evaluerings (bactests) in 'n enkele lopie. As die probleem is relatief eenvoudig en 1000 toetse is genoeg om globale maksimum vind, 5x1000 is meer geneig om globale maksimum vind want daar is minder kans om vas in plaaslike maksimum, soos daaropvolgende lopies begin uit verskillende aanvanklike ewekansige bevolking Die keuse van parameterwaardes kan lastig wees. Dit hang af van die probleem onder toets, sy kompleksiteit, ens, ens Enige stogastiese nie-uitputtende metode gee jou nie waarborg van die vind van globale maksimum / min, ongeag aantal toetse as dit is kleiner as volledig nie. Die maklikste antwoord is om. spesifiseer as groot aantal toetse as dit redelik vir jou in terme van tyd wat nodig is om te voltooi. Nog 'n eenvoudige raad is om te vermenigvuldig met 10 die aantal toetse met die toevoeging van nuwe dimensie. Dit kan lei tot oorskatting aantal toetse vereis, maar dit is heeltemal veilig. Verskeep enjins is ontwerp eenvoudig te wees om te gebruik, dus & quot; redelike & quot; verstek / outomatiese waardes word gebruik sodat optimalisering gewoonlik kan hardloop sonder om iets (die aanvaarding van standaard) spesifiseer. Dit is belangrik om te verstaan ​​dat alle smart optimeringsmetodes werk die beste in 'n aaneenlopende parameter ruimtes en relatief gladde objektiewe funksies. As parameter ruimte is diskrete ewolusionêre algoritmes kan sukkel om optimale waarde het. Dit is veral waar vir binêre (op / af) parameters - hulle is nie geskik vir enige search metode wat gradiënt van doelfunksie verandering gebruik (soos die meeste slim metodes te doen). As jou handel stelsel baie binêre parameters bevat, moet jy nie gebruik slim optimizer direk op hulle. In plaas daarvan probeer om net deurlopende parameters met behulp van smart Optimizer optimaliseer, en binêre parameters hand of via eksterne script skakel. SPSO - Standard Particle Swarm Optimizer Standard Particle Swarm Optimizer is gebaseer op SPSO2007 kode wat veronderstel is om te produseer goeie resultate met dien verstande dat korrekte parameters (bv lopies MaxEval) word vir spesifieke probleem. Pluk korrekte opsies vir die PSO Optimizer kan lastig wees dus resultate kan aansienlik wissel van geval tot geval. SPSO. dll kom met volle bron kodes in & quot; ADK & quot; subgids. Voorbeeld-kode vir Standard Particle Swarm Optimizer: OptimizerSetEngine (& quot; spso & quot;); OptimizerSetOption (& quot; Lopies & quot ;, 1); sl = Optimaliseer (& quot; s & quot ;, 26, 1, 100, 1); a = Optimaliseer (& quot; f & quot ;, 12, 1, 100, 1); Koop = Kruis (MACD (a, SL), 0); Verkoop = Kruis (0, MACD (a, SL)); STAMME - Adaptive Parameter-minder Particle Swarm Optimizer Stamme is aanpasbaar, parameter-minder weergawe van PSO (deeltjie swerm optimalisering) nie-uitputtende optimizer. Vir wetenskaplike agtergrond te sien: In teorie behoort dit beter te presteer as gewone PSO, want dit outomaties die swerm groottes en algoritme strategie kan aanpas om die probleem opgelos. Praktyk toon dat sy prestasie is baie soortgelyk aan PSO. Die Tribes. DLL plugin implemente & quot; stamme-D & quot; (Dit wil sê dimensielose) variant. Gebaseer op clerc. maurice. free. fr/pso/Tribes/TRIBES-D. zip deur Maurice Clerc. Oorspronklike bron kodes gebruik word met toestemming van die outeur Tribes. DLL kom met volledige bronkode (binne & quot; ADK & quot; gids) Ondersteun parameters: & Quot; MaxEval & quot; - Maksimum aantal evaluerings (backtests) per lopie (verstek = 1000). OptimizerSetOption (& quot; MaxEval & quot ;, 1000); Jy moet die aantal evaluerings te verhoog met 'n toenemende aantal dimensies (aantal optimalisering params). Die verstek 1000 is goed vir 2 of maksimum 3 dimensies. & Quot; Lopies & quot; - Aantal lopies (weer begin). (Verstek = 5) Jy kan die aantal lopies teen verstek waarde van 5 los. By verstek aantal lopies (of weer begin) is ingestel op 5. Om stamme Optimizer gebruik, moet jy net een reël toe te voeg tot jou kode: OptimizerSetEngine (& quot; trib & quot;); OptimizerSetOption (& quot; MaxEval & quot ;, 5000); // 5000 evaluerings Max CMA-ES - kovariansiematriks Aanpassing Evolusionêre Strategie optimizer CMA-ES (kovariansiematriks Aanpassing Evolusionêre Strategie) is 'n gevorderde nie-uitputtende optimizer. Vir wetenskaplike agtergrond te sien: Volgens wetenskaplike maatstawwe beter as nege ander, gewildste evolusionêre strategieë (soos PSO, genetiese en Differensiële evolusie). Die CMAE. DLL plugin implemente & quot; Globale & quot; variant van soek met 'n paar weer begin met 'n toenemende grootte van die bevolking CMAE. DLL kom met volledige bronkode (binne & quot; ADK & quot; gids) By verstek aantal lopies (of weer begin) is ingestel op 5. Dit word aanbeveel om die standaard aantal weer begin verlaat. Jy kan dit verander met behulp van OptimizerSetOption (& quot; Lopies & quot ;, N) oproep, waar N moet wees in die reeks 1..10. Spesifisering van meer as 10 lopies word nie aanbeveel nie, hoewel moontlik. Let daarop dat elke lopie gebruik twee keer die grootte van die bevolking van die vorige lopie dus eksponensieel groei. Daarom met 10 lopies jy eindig met bevolking 2 ^ 10 groter (1024 keer) as die eerste lopie. Daar is nog 'n parameter & quot; MaxEval & quot ;. Die standaard waarde is nul, wat beteken dat plugin outomaties MaxEval bereken wat nodig is. Dit word aanbeveel om NIE te MaxEval definieer deur jouself as verstek werk goed. Die algoritme is slim genoeg om die aantal evaluasies vereis die minimum te beperk en dit konvergeer baie vinnig om oplossing punt, so dikwels dit vind oplossings vinniger as ander strategieë. Dit is normaal dat die prop n paar evaluerings stappe sal oorslaan, al is dit vasgestel dat oplossing gevind is, dus moet jy nie verbaas wees dat optimization progress bar baie vinnig op 'n sekere punte kan beweeg. Die plugin het ook die vermoë om verskeie stappe oor aanvanklik geraamde waarde te verhoog indien dit nodig is om die oplossing te vind. As gevolg van sy aangepaste natuur, die & quot; beraamde tyd oor & quot; en / of & quot; aantal stappe & quot; vertoon deur die dialoog vordering is slegs & quot; beste raaiskoot op die oomblik & quot; en kan wissel gedurende optimalisering natuurlik. Om CMA-ES Optimizer gebruik, moet jy net een reël toe te voeg tot jou kode: OptimizerSetEngine (& quot; cmae & quot;); Dit sal die optimalisering met standaard instellings wat goed vir die meeste gevalle is hardloop. Daar moet kennis geneem, want dit is die geval met baie continouos-ruimte soek algoritmes, wat dalende & quot; stap & quot; parameter in Optimaliseer () funciton oproepe nie beduidend beïnvloed optimalisering keer. Die enigste ding wat saak maak, is die probleem & quot; dimensie & quot ;, dit wil sê die aantal verskillende parameters (aantal optimaliseer funksie oproepe). Die aantal & quot; stappe & quot; per parameter kan ingestel word sonder dat die optimalisering tyd, so gebruik die beste besluit wat jy wil. In teorie behoort die algoritme in staat wees om oplossing te vind by die meeste 900 * (N + 3) * (N + 3) backtests waar & quot; N & quot; is die dimensie. In die praktyk is dit konvergeer 'n baie vinniger. Byvoorbeeld die oplossing in 3 (N = 3) dimensionele parameter ruimte (sê 100 * 100 * 100 = 1000000 uitputtende stappe) kan gevind word in so min as 500-900 CMA-ES stappe. Multi-threaded individuele optimalisering Vanaf AmiBroker 5.70 bykomend tot meervoudige simbool multi-threading. jy kan multi-threaded enkel-simbool optimalisering uit te voer. Om toegang tot hierdie funksie, kliek op drop down arrow langs & quot; Optimaliseer & quot; knoppie in die venster Nuwe Ontleding en kies & quot; Individuele Optimaliseer & quot ;. & Quot; Individuele Optimaliseer & quot; sal alle beskikbare verwerker cores gebruik om enkel-simbool optimalisering voer, maak dit baie vinniger as die gewone optimalisering. In & quot; Huidige simbool & quot; af sal optimalisering uit te voer op 'n simbool. In & quot; Alle simbole & quot; en & quot; Filter & quot; modes dit sal al simbole agtermekaar, dit wil sê eerste volledige optimalisering vir die eerste simbool, dan optimalisering op tweede simbool, ens te verwerk beperkings: 1. Custom backtester word NIE ondersteun (nog) 2. Smart optimalisering enjins word nie ondersteun nie - slegs LIMITATIEVE optimalisering werk. Uiteindelik kan ons ontslae te raak van beperking (1) - wanneer AmiBroker verander sodat persoonlike backtester nie meer gebruik OLE. Maar (2) is waarskynlik hier om te bly vir 'n lang. Optimalisering van 'n handel stelsel Opgedateer op 2010/04/06 Optimalisering is nuttig in baie verskillende maniere. In die handel, kan jy byvoorbeeld gebruik 'n optimizer met 'n backtester of simulator enjin 'n paar parameters van 'n handel stelsel wissel en sien of dit die algehele portefeulje prestasie kan verhoog, of jy kan 'n optimizer gebruik om verskeie variasies van 'n bepaalde koop reël toets in 'n handel stelsel. Byna elke stukkie van 'n handel stelsel of handel strategie kan geoptimaliseer word; jy kan optimaliseer koop, verkoop, kort of dekking reëls, tipes orde, orde perke, portefeulje instellings, tot stilstand kom. Die optimalisering is uitgevoer met behulp van een van die volgende algoritmes: Exhaustive optimalisering, genetiese algoritme en Bevolkingsontwikkeling-gebaseerde inkrementele leer of PBIL. Die Exhaustive optimalisering, wat ook brute krag optimalisering genoem word, toets elke moontlike oplossing. Hierdie tegniek moet slegs toegedien word wanneer jy 'n klein aantal kombinasies te toets. As 'n voorbeeld, 'n handel strategie met 5 faktore te optimaliseer (elke faktor wissel van 1 tot 10) skep 100,000 kombinasies. In die geval het jy 'n paar honderd of miljoene kombinasies te toets; jy moet oorweeg om die genetiese algoritme en die PBIL algoritme. Deur die gebruik van hierdie algoritmes in die QuantShare handel sagteware. jy kan miljoene kombinasies van 'n handel stelsel, asook handel reëls, posisie stelsels en neurale netwerkmodelle optimaliseer. Ons sal dieper in hierdie algoritmes te grawe in 'n toekomstige post. Vir nou, laat ons gebruik maak van die uitputtende optimization aan detail die faktore of instellings wat gebruik kan word new in QuantShare. Skep 'n handel stelsel: In die menu van jou handel sagteware. kies "Ontleding" en kliek dan op "Simulator". In die simulator vorm, klik op "Voeg" om 'n nuwe handelsmerk te skep. Optimaliseer handel reëls: Die belangrikste komponent van 'n handel stelsel is sy lys reëls. Die koop, verkoop, kort en dekking reëls word deur die simulator om te besluit watter posisies aan te gaan en wat posisioneer om af te sluit. Hierdie reëls kan direk new met die formule redakteur of die gebruik van die towenaar. Byvoorbeeld, onder die "Koop op oop van môre", kliek op "reël Voeg". Onder die "reël" paneel, tik "RSI (a)" (relatiewe sterkte-indeks) in die eerste invoer veld en "B" in die tweede invoer veld. As jy klaar is, blyk twee lyne in die rooster; hierdie lyne laat die minimum, maksimum en stap waardes van die veranderlike wat jy wil te optimaliseer is definieer. In die "n" veranderlike lyn, tik "7" onder die kolom "Min", "14" onder die kolom "Max" en "7" onder die kolom "Stap". In die "b" veranderlike lyn, tik "40" onder die kolom "Min", "70" onder die kolom "Max" en "10" onder die kolom "Stap". Klik op "Update" om die veranderinge te stoor; links paneel vertoon "Rule0 (8)", wat beteken dat die reël het agt kombinasies. Klik op "Close" om terug na die handel strategie redakteur vorm skakel. Kies "Skep handel stelsel met behulp van die formule redakteur" blad om te sien hoe die handel stelsel reëls is vertaal in die QuantShare vektor-gebaseerde taal. Optimaliseer handel stelsel "instellings: In die "Skep 'n handel strategie" vorm, kies "Optimaliseer" en kliek dan op "Optimization". Klik op "Voeg item" om 'n nuwe optimizable veranderlike te skep; dubbel kliek op die sel onder die kolom "veranderlike" om 'n lys van veranderlikes oopmaak. Kies byvoorbeeld "n aantal simbole" (Hierdie veld bepaal die maksimum aantal sekuriteite wat beskikbaar is in jou portefeulje behoort te wees op enige gegewe oomblik), tipe "6" onder die kolom "Min", "10" onder die kolom "Max" , "2" onder die kolom "Stap" en kliek op "OK" om jou insette te red. Jy het nou drie iterasies of kombinasies geskep. Jou totale aantal kombinasies is 24 (8 * 3). In die volgende pos, sal ons die geld bestuur script taal te gebruik om meer kombinasies te skep. Event Center Aangebied deur Michael Burke Optimalisering is die vermoë om uit te voer deur middel van baie verskillende kombinasies van handel strategie parameters ten einde te bepaal watter stel van parameters mees gunstig uitgevoer tydens die historiese back-toets. Die doel van optimalisering is om jou strategie vir konsekwentheid en robuustheid toets, en om jou te help vind 'n stel van parameters wat voordelig in die toekoms kan wees. Hierdie seminaar verken die strategie optimalisering proses, terminologie en beste praktyke deur te kyk na die werklike wêreld strategie voorbeelde. Verstaan ​​die optimalisering verslag en opmaak optimalisering instellings word ook gedek. Hoe om 'n strategie Optimization Begin Die opstel Optimization Insette en instellings Interpretasie van die Optimization Verslag Uitputtende teenoor genetiese versus Walk-vorentoe

No comments:

Post a Comment