Forex Portfölj Optimering
Portföljoptimering. Real-Time efter timmar Pre-Market News. Flash Citat Sammanfattning Citat Interactive Charts Default Setting. Observera att när du väljer ditt val kommer det att gälla alla framtida besök på Om du vid något tillfälle är intresserad av att återgå Till standardinställningarna, välj Standardinställning ovan. Om du har några frågor eller stöter på några problem med att ändra standardinställningarna, vänligen maila. Bekräfta ditt val. Du har valt att ändra standardinställningen för Quote Search Din standardmålsida om du inte ändrar din konfiguration igen eller raderar dina cookies. Är du säker på att du vill ändra dina inställningar. Avaktivera din annonsblockerare eller uppdatera dina inställningar för att säkerställa att javascript och cookies är aktiverade så att vi kan fortsätta Ge dig de förstklassiga marknadsnyheterna och uppgifterna du kommer att förvänta dig från oss. UTFINITION av optimering. I samband med teknisk analys är optimering processen att justera en tr Adning system i ett försök att göra det mer effektivt Dessa anpassningar inkluderar att ändra antalet perioder som används för att flytta medelvärden, ändra antalet indikatorer som används eller helt enkelt ta bort vad som inte fungerar. Till exempel, om en investerare har ett enkelt handelssystem Som bara består av en korsning av slutkursen och ett glidande medelvärde genom att ändra perioderna för det glidande genomsnittet, kommer näringsidkaren att få olika vinster, risker, kapitalutdrag osv. Optimering hjälper dig sålunda att välja de optimala parametrarna att handla. BREAKNING NER Optimering. När ett handelssystem är utvecklat är nästa steg före genomförandet backtest och optimering. Att hitta den bästa möjliga kombinationen av inställningar för parametrarna i handelssystemet är avgörande för ett handelssystems vinstgenererande framgång. Det finns många fallgropar och Fällor som handlare ibland oavsiktligt förbiser Överoptimering och för stor eller för liten en provdatadeperiod är bara ett par av de subtila Misstag som leder till att handelssystem misslyckas. Ett handelssystem används för att definiera en uppsättning regler som bestämmer inmatningen och utträdet av en handel som ger konsekvent vinst. Med varje regel som tillämpas inom ett system minskar antalet signaler i ordning För att tillfredsställa de kollektiva kriterier som fastställs i hela reglerna Tillämpning av alltför många regler för att uppnå backtestresultat som visar högre vinster kan leda till vad som kallas kurvmontering. Detta är när resultaten av ett backtest i en Tidsperioden visar lönsamhet men kollapsar när samma system och inställningar tillämpas på en annan tidsperiod. Tänk dig exempelvis ett handelssystem som använder ett dagligt diagram över det senaste året och väljer månad och dag då en stor omkastning Ägde rum för att indikera en signal i riktning mot omkastningen som ger en lönsam handel. Reglerna för detta hypotetiska, men opraktiska system skulle vara listan över månadsdatum med inget år som skulle resultera i Den högsta nettovinsten för det året Optimeringen skulle tendera mot den exakta tidpunkten för varje omkastning och resultera i perfekt kurvanpassning. Men när systemet appliceras på ett annat år eller i framtiden kommer det högst sannolikt att misslyckas. Provdata Period . Dagsperioden för vilken backtestningen utförs för att optimera inställningarna för ett handelssystem varierar beroende på systemet Vissa system genererar flera handelssignaler per dag och vissa genererar en signal per månad eller mindre. I båda fallen är baksidan - test bör åtminstone innehålla ett antal handelssignaler som kommer att presentera resultat som är statistiskt signifikanta. Det sägs att man måste se till att provperioden omfattar alla allmänna marknadsförutsättningar, inklusive uppåtgående trender, downtrends och range trading. Hjälpa till att förhindra optimeringsresultat som fungerar endast i en typ av marknadsförutsättning. Hur optimerar handelssystemet. NOTERA Detta är ganska avancerat ämne Var god läs tidigare AFL-tutorials fi Rst. Tanken bakom en optimering är enkel. Först måste du ha ett handelssystem. Det här kan vara ett enkelt glidande medelvärde. I nästan alla system finns det vissa parametrar som medelvärde som bestämmer hur givet system fungerar, dvs det passar väl På lång sikt eller på kort sikt, hur reagerar det på mycket volatila aktier osv. Optimeringen är processen att hitta optimala värden för de parametrar som ger högsta vinsten från systemet för en viss symbol eller en portfölj med symboler. AmiBroker är en av de mycket Några program som låter dig optimera ditt system på flera symboler samtidigt. För att optimera ditt system måste du definiera från en upp till tio parametrar som ska optimeras. Du bestämmer vad som är ett minimum och maximalt tillåtet värde för parametern och i vilka steg detta värde Ska uppdateras AmiBroker utför sedan flera backtester systemet med ALLA möjliga kombinationer av parametervärden När denna process är klar visar AmiBroker listan Av resultat sorterade efter nettovinst Du kan se värdena för optimeringsparametrar som ger det bästa resultatet. Skriva AFL-formel. Optimering i backtester stöds via ny funktion som kallas optimera Syntaxen för den här funktionen är som följer. variabel optimera Beskrivning, Default min max step. variable - är normal AFL-variabel som får tilldelas det värde som returneras genom att optimera funktionen Med normal backtesting, scanning, exploration och comentary lägen returnerar funktionen standardvärdet, så ovanstående funktionsanrop motsvarar variabel standard. In optimering Mode optimerar funktionen returnerar successiva värden från min till max inkluderat med steg-stegning. Beskrivningen är en sträng som används för att identifiera optimeringsvariabeln och visas som ett kolumnnamn i optimeringsresultatlistan. Default är ett standardvärde som optimerar avkastningen i Prospektering, indikator, kommentar, skanning och normala backtestlägen. min är ett minimivärde av variabeln som är o Ptimized. max är ett maximalt värde för variabeln som är optimerad. step är ett intervall som används för att öka värdet från min till max. AmiBroker stöder upp till 64 samtal för att optimera funktionen därför upp till 64 optimeringsvariabler, notera att om du använder uttömmande optimering då Det är jättebra att begränsa antalet optimeringsvariabler till bara få. Varje samtal för att optimera generera max-min stegoptimeringsloppar och flera samtal för att optimera multiplicera antalet körningar som behövs. Exempelvis kan optimering av två parametrar med 10 steg kräva 10 10 100 Optimeringsloops. Call optimera funktionen endast ONCE per variabel i början av din formel eftersom varje samtal genererar en ny optimeringsloops. Multiple-symbol optimering stöds fullt ut av AmiBroker. Maximum sökutrymme är 2 64 10 19 10.000.000.000.000.000.000 kombinationer.1 Enkel variabel optimering. sigavg Optimera Signalgenomsnitt 9 2 20 1.Buy Cross MACD 12 26, Signal 12 26 sigavg Sälj Cross Signal 12 26 sigavg, MAC D 12 26.2 Tvåvariabel optimering lämplig för 3D charting. per Optimera per 2 5 50 1 Nivå Optimera nivå 2 2 150 4.Buy Cross CCI per, - Level Sälj Korsnivå, CCI per.3 Flera 3 variabel optimering. mfast Optimera MACD Snabb 12 8 16 1 mslow Optimera MACD Slow 26 17 30 1 sigavg Optimera Signalgenomsnitt 9 2 20 1.Buy Cross MACD mfast, mslow Signal mfast, mslow, sigavg Sälj kryssignal mfast, mslow, sigavg, MACD mfast, mslow. Efter inmatning Formeln klickar bara på Optimera-knappen i det automatiska analysfönstret. AmiBroker kommer att börja testa alla möjliga kombinationer av optimeringsvariabler och rapportera resultaten i listan. Efter optimering görs listan över resultat presenteras sorterat efter nettoresultatet. Du kan sortera resultaten efter Vilken kolumn som helst i resultatlistan är det enkelt att få de optimala värdena för parametrar för den lägsta nedräkningen, lägsta antalet affärer, största vinstfaktorn, lägsta marknadsexponering och högsta riskjusterade årliga avkastning. De sista kolumnerna av resultat li St presenterar värdena för optimeringsvariabler för given test. När du bestämmer vilken kombination av parametrar som passar dina behov är det bästa du behöver göra att ersätta standardvärdena för att optimera funktionssamtal med optimala värden. I nuvarande steg måste du skriva dem För hand i formulärredigeringsfönstret den andra parametern för optimering av funktionssamtal. Visar 3D animerade optimeringsscheman. För att visa 3D optimeringsschema måste du köra tvåvariabel optimering först. Två variabla optimeringar behöver en formel som har 2 Optimera funktionssamtal Ett exempel Tvåvariabel optimeringsformel ser ut som this. per Optimera per 2 5 50 1 Nivåoptimera nivå 2 2 150 4.Buy Cross CCI per, - Level Sälj Korsnivå, CCI per. Efter inmatning av formuläret måste du klicka på Optimera button. Once Optimeringen är klar bör du klicka på nedåtpilen på Optimera-knappen och välja Visa 3D-optimeringsgraf Om några sekunder visas en färgstark tredimensionell yta i en 3D-kartvisningsfönster Ett exempel på 3D-diagram som genereras med ovanstående formel visas nedan. Som standard visar 3D-diagrammen värden på nettovinst mot optimeringsvariabler. Du kan dock plotta 3D-ytplan för varje kolumn i optimeringsresultattabellen. Klicka bara på kolumnrubriken För att sortera den visas den blå pilen som visar att optimeringsresultatet sorteras efter vald kolumn och sedan väljer Visa 3D optimeringsgraf igen. Genom att visualisera hur parametrarna påverkar handelsprestanda kan du lättare bestämma vilka parametervärden som producerar bräckliga och vilka producerar robusta Systemprestanda Robusta inställningar är regioner i 3D-grafen som visar gradvis snarare än plötsliga förändringar i ytan. 3D-optimeringskartor är ett utmärkt verktyg för att förhindra kurvmontering. Kurvmontering eller överoptimering inträffar när systemet är mer komplext än det behöver Var och all den komplexiteten var inriktad på marknadsförhållanden som aldrig kan hända igen Radikala förändringar eller spik S i 3D optimeringsdiagrammen visar tydligt överoptimeringsområden Du borde välja parameterregion som producerar en bred och bred platå på 3D-diagrammet för ditt verkliga handel Parametersatser som producerar vinstspikar fungerar inte på ett tillförlitligt sätt i verklig handel. 3D-kartvisnings kontroller. AmiBroker s 3D-kartvisare erbjuder totalt visningsförmåga med full grafrotation och animering Nu kan du se dina systemresultat från alla tänkbara perspektiv Du kan styra positionen och andra parametrar i diagrammet med hjälp av musen, verktygsfältet och tangentbordsgenvägarna, vad som än är lättare För dig Nedan hittar du listan.- Att rotera - håll ner VÄNSTER musknapp och flytta i XY riktningar - för att zooma in, zooma ut - håll nere höger musknapp och flytta i XY riktningar - Flytta översätt - håll ner VÄNSTER musknapp och CTRL-tangent och flytta i XY riktningar - för att animera - håll ner VÄNSTER musknapp, dra snabbt och släpp knappen medan du drar. SACE - animera automatiskt rotera LÄNKARE ARRO W VÄNSTER - vrid vänster vänster HÖGER PIL VÄNSTER - vrid vänster höger UPP PIL VÄNSTER - vrid horisonten upp NER PIL TAST - vrid horisonten ner NUMPAD PLUS - Nära zoom in NUMPAD - MINUS - Våg Zooma ut NUMPAD 4 - Flytta vänster NUMPAD 6 - Flytta åt höger NUMPAD 8 - flytta upp NUMPAD 2 - flytta ner PAGE UP - vattennivån upp PAGE DOWN - vattennivån ner. Smart icke-uttömmande optimering. AmiBroker erbjuder nu smart, icke-uttömmande optimering utöver regelbunden och uttömmande sökning. Ej uttömmande sökning är användbar. Om numret på alla parameterkombinationer av ett givet handelssystem helt enkelt är för stort för att vara genomförbart för uttömmande sökning. Uttömmande sökning är helt bra så länge det är rimligt att använda det. Låt oss säga att du har 2 parametrar vardera från 1 till 100 steg 1 Det är 10000 kombinationer - perfekt OK för uttömmande sökning Nu med 3 parametrar har du 1 miljon kombinationer - det är fortfarande OK för uttömmande sökning men kan vara långvarig Med 4 parametrar har du 100 miljoner kombinationer och med 5 parametrar 1 100 y Ou har 10 miljarder kombinationer i så fall skulle det vara för tidskrävande att kontrollera dem alla, och det här är det område där icke-uttömmande smarta sökmetoder kan lösa det problem som inte är lösbart i rimlig tid med uttömmande sökning. Absolut den enklaste instruktionen hur man använder nytt icke-uttömmande optimeringsmedel i detta fall CMA-ES.1 Öppna din formel i Formel Editor.2 Lägg till den här raden längst upp på din formel. OptimizerSetEngine cmae du kan också använda spso eller trib .3 Valfritt Välj optimeringsmål i Automatisk analys, Inställningar, Gå framåt-fliken, Optimeringsmålfält Om du hoppar över det här steget kommer det att optimera för CAR MDD-föreningens årliga avkastning dividerad med maximal drawdown. Nu om du kör optimering med hjälp av denna formel Kommer att använda ny evolutionär icke-uttömmande CMA-ES optimizer. How fungerar det. Optimeringen är processen att hitta minsta eller maximala givna funktion. Varje handelssystem kan betraktas som en funktion av ett visst tal Av argument Ingångarna är parametrar och citatdata. Utmatningen är ditt optimeringsmål, säg CAR MDD. Och du letar efter maximalt givna funktioner. Vissa intelligenta optimeringsalgoritmer är baserade på naturdjurbeteende - PSO-algoritm eller biologisk process - Genetiska algoritmer, Och vissa är baserade på matematiska begrepp som härrör från människor - CMA-ES. Dessa algoritmer används på många olika områden, bland annat finansiera Enter PSO-finansiering eller CMA-ES-finansiering i Google och du hittar mycket information. Inga uttömmande eller smarta metoder Kommer att hitta globalt eller lokalt optimalt Målet är givetvis att hitta global en, men om det finns en enda skarp topp utifrån zillionsparametarkombinationer, kan icke-uttömmande metoder misslyckas med att hitta denna enda topp, men att den bildar handelarens perspektiv, Att hitta en enkel skarp topp är oanvändbar för handel eftersom resultatet skulle vara instabil för bräcklig och inte replikerbar i verklig handel. I optimeringsprocessen letar vi ganska efter platåregioner med st Kan parametrar och detta är det område där intelligenta metoder lyser. Som en algoritm som används av icke-uttömmande sökning ser det ut som följer. a optimiseraren genererar några vanligen slumpmässiga startpopulationer av parameteruppsättningar b backtest utförs av AmiBroker för varje parameteruppsättning från Befolkning c resultaten av backtest utvärderas enligt algoritmens logik och ny befolkning genereras baserat på utvecklingen av resultaten, d om det nya bäst finns - spara det och gå till steg b tills stoppkriterierna är uppfyllda. Exempel på stoppkriterier kan Inkludera en uppnående specificerad maximal iterationer b stopp om intervallet av de bästa objektivvärdena för de senaste X generationerna är noll c stopp om du lägger till 0 1 standardavvikelsevektor i någon huvudaxelriktning ändrar inte värdet av objektivvärdet d others. To använda någon smart Icke-uttömmande optimeringsapparat i AmiBroker måste du ange optimeringsmotorn du vill använda i AFL-formeln med OptimizerSetEngine-funktionen. Funktionen väljer extern upp Timingmotor definierad av namn AmiBroker skickas för närvarande med 3 motorer Standard Particle Swarm Optimizer spso, Stammar trib, och CMA-ES cmae - namnen i axlar ska användas i OptimizerSetEngine-samtal. Förutom att välja optimeringsmotor kanske du vill ställa in några Av dess interna parametrar För att göra så använd OptimizerSetOption funktion. OptimizerSetOption namn, värdesfunktion. Funktionen ställa ytterligare parametrar för extern optimeringsmotor Parametrarna är motorberoende Alla tre optimeringsmedel som skickas med AmiBroker SPSO, Trib, CMAE stöder två parametrar Kör antalet körningar Och MaxEval maximal utvärderingstest per enskild körning Varje parameters beteende är motorns beroende, så samma värden kan och brukar ge olika resultat med olika motorer som används. Skillnaden mellan Runs och MaxEval är enligt följande. Utvärdering eller test är enkel backtest eller utvärdering Av objektivt funktionsvärde RUN är en full körning av algoritmfyndet optimalt värde - vanligtvis fakturera Lving många test utvärderingar. Varje gång bara RESTARTS hela optimeringsprocessen från den nya början ny initial slumpmässig population Därför kan varje körning leda till att hitta annan lokal max min om den inte hittar global en så kör parametern definierar antal efterföljande algoritm kör MaxEval är Det maximala antalet utvärderingar bactests i en enda run. If problemet är relativt enkelt och 1000 tester är tillräckliga för att hitta global max, är 5x1000 mer sannolikt att hitta globalt maximalt eftersom det finns mindre chanser att fastna i lokal max, eftersom efterföljande körningar Kommer att börja från olika initiala slumpmässiga populationer. Att välja parametervärden kan vara knepigt. Det beror på problem under testet, dess komplexitet osv. Varje stokastisk icke-uttömmande metod ger dig ingen garanti för att hitta global max min, oavsett antal test om Det är mindre än uttömmande Det enklaste svaret är att ange så många test som det är rimligt för dig när det gäller den tid som krävs för att slutföra En annan enkel råd är att multiplicera med 10 antalet tester med att lägga till en ny dimension. Det kan leda till att överskatta antalet test som krävs, men det är ganska säkert. Skickade motorer är konstruerade för att vara enkla att använda, därför används rimliga standardautomatiska värden så optimering Kan vanligtvis köras utan att ange något som accepterar standardvärden. Det är viktigt att förstå att alla smarta optimeringsmetoder fungerar bäst i kontinuerliga parametrar och relativt släta objektivfunktioner Om parametrarummet är diskreta evolutionära algoritmer kan ha problem med att hitta optimalt värde. Det är särskilt sant för binära På av parametrar - de är inte lämpade för någon sökmetod som använder gradienten för objektiv funktionsändring som de flesta smarta metoder gör Om ditt handelssystem innehåller många binära parametrar, bör du inte använda smart optimizer direkt på dem istället försöka optimera endast kontinuerliga parametrar med hjälp av Smart optimizer, och byta binära parametrar manuellt eller via externa L script. SPSO - Standard Particle Swarm Optimizer. Standard Particle Swarm Optimizer är baserad på SPSO2007 kod som ska producera bra resultat förutsatt att korrekta parametrar, dvs Runs, MaxEval ges för ett visst problem. Att välja rätt alternativ för PSO optimizer kan vara svårt därför Resultaten kan skilja sig väsentligt från fall till fall. Levereras med fullständiga källkoder i ADK-undermappen. Exempelkod för Standard Particle Swarm Optimizer hittar optimalt värde i 1000 test inom sökutrymmet på 10000 kombinationer. OptimizerSetEngine spso OptimizerSetOption Kör, 1 OptimizerSetOption MaxEval, 1000.sl Optimera s, 26, 1, 100, 1 fa Optimera f, 12, 1, 100, 1.Buy Cross MACD fa, sl, 0 Sälj Kors 0, MACD fa, sl. TRIBES - Adaptiv Parameter-mindre Partikel Swarm Optimizer. Tribes är adaptiv, parameter-mindre version av PSO Partikel swarm optimering icke-uttömmande optimizer För vetenskaplig bakgrund se. I teorin borde det fungera bättre än vanlig PSO, eftersom det automatiskt kan justera svärmstorleken och algoritmstrategin för att problemet ska lösas. Praktiken visar att dess prestanda är ganska lik PSO. Plugin implementerar Tribes-D dvs dimensionslös variant Baserat på Maurice Clerc Originalkälla används med tillstånd från författaren. Levereras med fullständig källkod inuti ADK-mappen. Stödda parametrar MaxEval - maximalt antal utvärderingsbacktests per kör standard 1000. Du borde öka antalet utvärderingar med ökande antal dimensioner antal optimeringsparametrar Standard 1000 är bra för 2 eller maximalt 3 dimensioner. Runs - antal körningar startar om standard 5 Du kan lämna antalet körningar vid standardvärdet på 5.By standard antal körningar eller omstart är inställt på 5.Till använda Stammar optimizer behöver du bara lägga till en rad i din kod. OptimizerSetOption MaxEval, 5000 5000 utvärderingar max. CMA-ES - Covariance Matrix Adaptation Evolutionär Strategi Optimizer. CMA-ES Covariance Matrix Adaptation Evolutionary Strategy är avancerad icke-uttömmande optimizer För vetenskaplig bakgrund se Enligt vetenskapliga benchmarks överträffar nio andra, mest populära evolutionära strategier som PSO, Genetisk och Differential evolution. The plugin implementerar Global variant av sökning med flera omstartar med ökande pop Ulationstorlek kommer med full källkod inuti ADK-mappen. Med standard antal körningar eller omstart är inställt på 5 Det rekommenderas att lämna standardnumret på omstart. Du kan variera det med OptimizerSetOption Kör, N-samtal, där N ska ligga inom intervallet 1 10 Specificera mer än 10 körningar rekommenderas inte om möjligt. Observera att varje körning använder TWICE storleken på befolkningen i tidigare körning så att den växer exponentiellt. Därför slutar med 10 körningar med befolkningen 2 10 större 1024 gånger än den första körningen. Där Är en annan parameter MaxEval Standardvärdet är NOLL vilket innebär att plugin automatiskt beräknar MaxEval krävs. Det rekommenderas att INTE definiera MaxEval själv som standard fungerar bra. Algoritmen är smart nog för att minimera antalet utvärderingar som krävs och det konvergerar mycket snabbt Till lösningspunkten, så ofta det finner lösningar snabbare än andra strategier. Det är normalt att pluginhoppet kommer att hoppa över några utvärderingssteg, om det upptäcker att lösningen hittades, därför E du borde inte bli förvånad över att optimeringsfältet kan gå mycket snabbt vid vissa punkter. Pluggen har också förmåga att öka antalet steg över initialt uppskattat värde om det behövs för att hitta lösningen. På grund av dess adaptiva natur är den beräknade tiden kvar och Eller antalet steg som visas av framdriftsdialogrutan är bara gissning vid tiden och kan variera under optimeringskursen. För att använda CMA-ES optimeringsprogram behöver du bara lägga till en rad i din kod. Detta kommer att köra optimeringen med standardinställningar som Är bra för de flesta fall. Det bör noteras, som det är fallet med många continouos-space-sökalgoritmer, påverkar den minskande stegparametern i Optimera funciton-samtal inte signifikant optimeringstider. Det enda som betyder något är problemdimensionen, dvs Antal olika parametrar antal optimera funktionssamtal Antalet steg per parameter kan ställas in utan att påverka optimeringstiden, så använd den finaste upplösningen du vill ha i teorin Y algoritmen borde kunna hitta en lösning på högst 900 N 3 N 3 backtests där N är dimensionen I praktiken konvergerar det en massa snabbare. Till exempel kan lösningen i 3 N 3-dimensionell parameterutrymme säga 100 100 100 1 miljon uttömmande steg kan Kan hittas i så få som 500-900 CMA-ES-steg. Multitrådad individuell optimering. Börja från AmiBroker 5 70 förutom multitråds-multithreadning kan du utföra multi-threaded single-symbol optimization För att komma åt denna funktionalitet, klicka på drop Nerpil bredvid Optimera-knappen i fönstret Ny analys och välj Individuell optimering. Individuell optimering kommer att använda alla tillgängliga processorkärnor för att utföra enkelsymboloptimering, vilket gör det mycket snabbare än vanlig optimering. I nuvarande symbolläge utförs optimering på en symbol I alla symboler och filterlägen kommer det att behandla alla symboler i följd, dvs första fullständiga optimering för första symbolen, sedan optimering på andra symbolen, etc. Limitations 1 Custo M backtester stöds INTE 2 Smart optimeringsmotorer stöds INTE. Endast EXHAUSTIVE optimering fungerar. Vi kan eventuellt bli av med begränsning 1 - när AmiBroker ändras så anpassade backtester inte använder OLE längre men 2 är förmodligen här för att stanna länge.
Comments
Post a Comment