Mallar och profiler En mall är en uppsättning diagramfönsterparametrar som kan tillämpas på andra diagram. Följande kan lagras i en mall: Diagramtyp och färgdiagram Diagramskala OHLC-linje visas eller gömmer den bifogade expertrådgivaren och dess parametrar de angivna anpassade och tekniska indikatorerna med deras inställningslinjestudier separatorer av dagar. När en mall läggs till i ett diagram, kommer de lagrade inställningarna, som de är, att fästas till säkerheten och perioden. Till exempel kan man skapa en mall som innehåller indikatorer för MACD, RSI och Moving Average, och sedan använda den för andra diagram. I det här fallet kommer diagrammen att ha samma vy för olika symboler och perioder. Mallar lagras i TEMPLATES-katalogen som TPL-filer. En mall skapad en gång kan användas obegränsat antal gånger. En grundläggande mall (DEFAULT. TPL) skapas under installationen av terminalen. Den kommer automatiskt att läggas till för att skapa ett nytt kartfönster. I framtiden kan den ändras genom att använda de aktiva kartfönsteregenskaperna. För att skapa en ny mall måste man utföra quotCharts 150 Mall 150 Spara mall. quot-menykommando, kommandot för sammanhangsmenyns snabbmeny med samma namn eller genom att trycka på knappen för quotChartsquot-verktygsfältet. Som ett resultat kommer en ny mall att skapas på grundval av data i aktivt kartfönster. Samma åtgärder måste utföras för att ändra en mall, men en befintlig mall ska väljas istället för att ange ett nytt filnamn. För att införa en mall i diagramfönstret måste man välja önskad fil i mallens hanteringsmeny eller i någon tillgänglig mapp i quotOpenquot-fönstret som kan kallas av quotCharts 150 Mall 150 Load Template. quot meny kommando. QuotCharts 150 Template 150 Ta bort Templatequot-menykommandot och kommandot för sammanhangsmenyns snabbmeny med samma namn gör det möjligt att radera mallar. OBS: The quotDEFAULT. TPLquot kan inte tas bort. Profiler erbjuder ett bekvämt sätt att arbeta med grupper av diagram. När en profil öppnas placeras varje diagram med dess inställningar exakt på samma plats där det var innan, vid profilbesparingen. Alla ändringar i alla diagramfönster i den angivna listan sparas automatiskt i den aktuella profilen. Listan över alla kartfönster i den aktuella profilen finns i quotWindowquot-menyn. Namnet på den aktuella profilen visas i ett av statusfältet och markeras i profilhanteringsmenyn. När terminalen är installerad, skapas profilen som standard (DEFAULT). Ursprungligen lagras fyra grundläggande valutapar i det: quotEURUSDquot, quotUSDCHFquot, quotGBPUSDquot och quotUSDJPYquot. Profiler hanteras från en meny som kan kallas av quotFile 150 Profilesquot-menykommandon, genom att trycka på knappen på quotStandardquot-verktygsfältet. eller genom att klicka med musknappen på det aktuella profilnamnet i statusfältet. För att använda en annan profil måste man välja önskat namn från listan i den här menyn. Därefter öppnas den nya profilen och blir aktuell. Kommandot quotSave Profilequot sparar den aktuella profilen i sitt tillstånd vid det ögonblick som kommandot kördes under ett nytt namn. Den nya profilen är en kopia av den föregående och blir aktuell. Man kan ta bort profiler med kommandot quotRemove Profilequot. Kommandot quotNext Profilequot och Ctrl F5 öppnar alla tillgängliga profiler en efter en, och den tidigare profilkoden och accelerationsnycklarna för Shift F5 tillåter att söka profiler i omvänd riktning. OBS: Den aktuella profilen och som standard (DEFAULT) kan inte raderas. En fördefinierad profil kan tilldelas ett handelskonto i klientterminalen. Den här profilen måste ha ett namn som sammanfaller med handelskontoens nummer. Om det finns en motsvarande profil när du växlar till det angivna handelskontot öppnas det automatiskt. Om det inte finns någon fördefinierad profil, fortsätter den aktuella profilen. MetaTrader 4 - Exempel Portföljhandel i MetaTrader 4 Magnus ab integros saeklorum nascitur ordo Publius Vergilius Maro, Eclogues Introduktion Portföljprincipen är känd för länge sedan. Genom att diversifiera fonderna i flera riktningar skapar investerare sina portföljer, vilket minskar den totala förlustrisken och gör inkomstutvecklingen mer jämn. Portföljteori har vunnit fart i 1950 när den första portföljmatematiska modellen har föreslagits av Harry Markowitz. På 1980-talet har ett forskargrupp från Morgan Stanley utvecklat den första strategin för spridningshandel som banar vägen för gruppen av marknadsneutrala strategier. Den nuvarande portföljteori är mångsidig och komplex vilket gör det nästan omöjligt att beskriva alla portföljstrategier i en enda artikel. Därför kommer endast ett litet antal spekulativa strategier tillsammans med deras möjliga implementering i MetaTrader 4-plattformen att övervägas här. Några definitioner som tillämpas i denna artikel är följande: Portfölj (korg, syntetiskt instrument) uppsättning positioner vid flera handelsinstrument med beräknade optimala volymer. Positioner är öppna under en tid, spåras som en och avslutas med ett gemensamt finansiellt resultat. Portfölj (korg, syntetisk instrument) justering som ändrar uppsättningen portföljinstrument och deras volymer för att minimera förluster eller korrigera mellanresultat. Syntetisk volym antal syntetiska positioner (antal gånger portföljen köptes eller såldes). Virtuellt resultatavkastning som kan erhållas när en position hålls inom ett visst tidsintervall. Klassiska investeringsportföljer tillämpas vanligtvis på börser. Ett sådant tillvägagångssätt passar inte Forex mycket eftersom de flesta portföljer är spekulativa här. De skapas och handlas lite annorlunda. När det gäller Forex är portföljhandeln faktiskt en handel med flera valutor, men inte alla strategier för flera valutor är portfölj. Om symboler handlas oberoende och ingen total resultatdynamik spåras, är detta en multi-symbolhandel. Om flera oberoende system handlar på ett enda handelskonto är detta en strategiportfölj. Här kommer vi att överväga en portföljhandel i snäv mening när en syntetisk position bildas av flera symboler och hanteras efteråt. Principer Portföljutveckling består av de två stegen: välja symboler och beräkna partier och riktningar för dem. Här kommer vi bara att diskutera några enkla portföljutvecklingsmetoder tillsammans med algoritmprover. I synnerhet föreslår vi den vanliga minsta kvadratmetoden (OLS) och principiell komponentanalys (PCA). Mer information finns här: När du utvecklar en portfölj är det vanligtvis nödvändigt att definiera önskat portföljdiagrambeteende. Portföljdiagrammet representerar förändringarna av den totala vinsten för alla positioner som ingår i portföljen inom ett visst tidsintervall. Portföljoptimering är en sökning efter en kombination av partier och riktningar som passar bäst på önskat portföljbeteende. Beroende på vår uppgift kan det vara nödvändigt för en portfölj att återkomma till medelvärdet eller attributen för en tydligt markerad trend eller dess diagram ska likna ett diagram över en funktion. Tre portföljtyper (trend, platt, funktion): En portfölj kan representeras av följande ekvation: A, B, C. är tidsserier som motsvarar portföljsymbolerna k1, k2, k3. är symbolpartier (positivt köp, negativ försäljning) F-målfunktion (bestämd av värden i tidsseriepunkter) Detta är en multivariabel linjär regressionsekvation med en noll konstant term. Dess rötter kan lätt hittas med hjälp av OLS. Först och främst bör tidsserierna göras jämförbara, vilket innebär att prispunkter ska sättas till en insättningsvaluta. I det här fallet representerar varje element i varje timeseries ett virtuellt vinstvärde för ett enda parti av den lämpliga symbolen vid en viss tidpunkt. Preliminär prislogaritmering eller användande av prisskillnader rekommenderas vanligtvis i statistiska applikationsuppgifter. Det kan emellertid vara onödigt och till och med skadligt i vårt fall eftersom kritiska övergripande symboldynamikdata skulle förstöras under vägen. Målfunktionen definierar portföljdiagramtypen. Målvärdesvärdena beräknas preliminärt i varje punkt i enlighet därmed. När man till exempel utvecklar en enkel växande portfölj (trendportfölj) kommer målportföljen att ha värdena 0, 1S, 2S, 3S osv. Där S är ett ökning av pengevärdet, som portföljen ska ökas i varje stapel på ett förutbestämt intervall. OLS-algoritmen lägger till A-, B-, C.-tidsserier så att deras totala summa ser upp att upprepa målfunktionsschemat. För att uppnå detta minimerar OLS-algoritmen summan av kvadrerade avvikelser mellan serie summan och målfunktionen. Detta är en standard statistisk uppgift. Ingen detaljerad förståelse för algoritmoperationen krävs eftersom du kan använda ett färdigt bibliotek. Det kan också hända att målfunktionen innehåller bara nollvärden (platt portfölj). I det här fallet bör en extra förhållande summa gräns läggas till (till exempel: k1 k2 k3. 1) för att förbi lösa en regression ekvation med noll rötter. Alternativet är att flytta en ekvationsterminal till höger vilket gör det till en målfunktion som tar emot förhållandet -1, medan de övriga termerna optimeras som vanligt. I det här fallet jämställer vi instrumentkorget med ett valt instrument, vilket skapar en spridningsportfölj. Slutligen kan den mer avancerade PCA-algoritmen användas för att utveckla sådana portföljer. Det tillämpar instrumentets kovariansmatris för att beräkna koefficientvektorn som motsvarar punktmolnets tvärsnittshyperplan med portföljens minsta kvarvarande varians. Återigen behöver du inte förstå algoritmen i detaljer här eftersom du kan använda ett färdigt bibliotek. Algoritmer Nu är det dags att genomföra alla de idéer som beskrivs ovan med MQL-språk. Vi kommer att använda ett välkänt ALGLIB mattebibliotek anpassat för MT4. Ibland kan det hända att det uppstår problem under installationen, så jag kommer att bo mer om det. Om flera terminaler är installerade på en dator är det väldigt viktigt att hitta den korrekta datapappen eftersom kompilatorn inte ser biblioteket om det finns i en annan dataläge i en annan terminal. Installera ALGLIB-bibliotek: ladda ner biblioteket (mql5encode11077), packa upp zip-filen, öppna mappen och hitta Math-katalogen inuti lanseringen av etarader 4-plattformen, där biblioteket ska läggas till, välj menykommandot: Öppna filmappen Öppna MQL4 och inkludera undermapp Matematikmapp till Inkludera mapp på terminalen kontrollera resultaten:.mhq-filer ska vara inuti MQL4IncludeMathAlglib. Det första nyckelfasen: omvandling av tidsserier från prispunkter till insättningsvaluta. För att uppnå detta måste vi skriva en speciell funktion för att beräkna ett kontraktspris vid vilken tidpunkt som helst. Den konventionella MarketInfo-funktionen är inte väl lämpad för detta eftersom den endast ger ett korrekt poängpris för den sista kartfältet. Problemet är att avvikelser oundvikligen förekommer i historien, eftersom poängpriserna på vissa symboler ändras ständigt. Därför är det viktigt att exakt konvertera dataserier för att undvika signifikanta obalanser i portföljen. Provfunktionen som beräknar kontraktspriset visas nedan: Denna funktion kommer alltid att användas i framtiden. Det fungerar med valutapar, index, terminer och CFD. Dessutom betraktas även symbolprefix och postfix (FXprefix, FXpostfix) som tillämpas av vissa mäklare. Resultatet omvandlas till en målvaluta (ChartCurrency). Om vi multiplicerar det returnerade funktionsvärdet med det aktuella symbolpriset får vi priset på symbolerna en hel del. Efter att summan av alla kontraktspriser i portföljen beaktat mycket, får vi priset på hela portföljen. Om vi multiplicerar funktionsvärdet med en prisskillnad i tiden får vi vinst eller förlust som genereras under den prisförändringen. Nästa steg är att beräkna den virtuella vinsten för alla enskilda partskontrakt. Beräkningen genomförs som en tvådimensionell array där den första dimensionen är ett punktindex i det beräknade intervallet, medan den andra dimensionen är ett symbolindex (den andra dimensionstorleken kan begränsas av ett visst tal som vet att antalet symboler i portföljen kommer uppenbarligen inte att överstiga den): För det första bör vi lagra inledande priser för alla symboler (på den vänstra gränsen för det beräknade intervallet). Därefter beräknas skillnaden mellan de ursprungliga och slutliga priserna vid varje punkt i det beräknade intervallet och multipliceras med kontraktspriset. Varje gång skifter vi till höger med ett tidsintervall i slingan: I ovanstående kodfragment lämnade zerotimetiden för de beräknade intervallerna gränsen, tidsbegränsningstiden för den beräknade intervallets högra gränsen, Timeframe antal minuter i en streck av arbetet tidsram, poäng totalt antal detekterade poäng i det beräknade intervallet. Tidslabeln strikt överensstämmelsesregel används i exemplet ovan. Om en streck för en viss tidslabel är frånvarande, även vid en symbol, hoppas en position över och ett skift görs till nästa. Att hantera tidetiketter är mycket viktigt för preliminär databehandling, eftersom dataavvikelse på olika symboler kan orsaka allvarliga snedvridningar i portföljen. Provportföljdata för tre symboler och en oberoende funktion (kvadratparabol): Nu när vi har förberett data är det dags att skicka dem till optimeringsmodellen. Optimeringen ska utföras med hjälp av LRBuildZ, LSFitLinearC och PCABuildBasis funktioner från ALGLIB bibliotek. Dessa funktioner beskrivs kortfattat inom biblioteket självt, liksom på den officiella projektwebbplatsen: alglibdataanalysislinearregression. php och här: alglibdataanalysisprincipalcomponentsanalysis. php. Först, se till att inkludera biblioteket: Därefter bör kodfragmentet med tanke på modellfunktionerna ställas in för varje optimeringsmodell. Först kan vi undersöka provmodellmodellen: För det första kan det verka komplicerat, men i princip är allting enkelt. I början beräknas linjär trendfunktion och dess värden placeras i MODEL-matrisen. ModelGrowth-parametern anger tillväxtvärdet för hela beräkningsintervallet (värdet, varigenom portföljen ska växa i insättningsvalutan). ModelAbsolute och ModelPhase parametrarna är frivilliga och har ingen betydelse vid nuvarande skede. Matrisen skapas för beräkningar (MATRIX). Data om den virtuella vinsten för alla kontrakt från EQUITY-arrayen samt målfunktionsvärdena från MODEL-arrayen hämtas till den sista raden i matrisen. Antalet oberoende regressionsekvationsvariabler lagras i variabler. LRBuildZ-funktionen kallas efteråt för att utföra beräkning. Därefter skrivs regressions ekvationens rötter till ROOTS array med LRUnpack-funktionen. All komplex matematik ligger i biblioteket, medan du kan använda färdiga funktioner. Huvudproblemet är av teknisk karaktär här och relaterat till att alla samtal är korrekt inställda och bevaras under förberedelserna. Samma kodfragment kan användas för vilken funktion som helst. Byt ut MODEL-array innehåll med din målfunktion. Exempel på kvadratrotsparabolisk funktionberäkning visas nedan: Nedan är ett exempel på en mer komplex funktion som representerar summan av en linjär trend och harmoniska svängningar: I exemplet ovan är det möjligt att hantera en trendstorlek (med hjälp av ModelGrowth-parametern) och svängning amplitud (med användning av ModelAmplitude-parametern). Antal oscillationscykler ställs in av ModelCycles, medan oscillationsfaskväxling utförs med användning av ModelPhase. Dessutom ska vertikalskiftet utföras för att låta funktionen vara lika med noll vid en nollpunkt för att säkerställa att beräkningarna är korrekta: Dessa exempel gör det enkelt att utveckla en anpassad funktion. Du kan skapa någon funktionstyp beroende på din uppgift och handel. Ju mer komplexa funktionstyp desto svårare är det att välja den bästa lösningen, eftersom marknaden inte är skyldig att följa funktionen. Här är funktionen bara en approximation. Du behöver inte en målfunktion för att skapa spridning och returnera platta portföljer. Om du till exempel vill skapa en spridning mellan två symbolkorgar, laddas den optimerade korgen till huvuddelen av matrisen medan referenskorgan används som en målfunktion och laddas ned till den sista kolumnen i matrisen som totalt belopp: Nedan är en exemplar platt portföljberäkning där LSFitLinearC-funktionen gör portföljen så symmetrisk som möjligt runt noll inom det beräknade intervallet: Nedan är ytterligare ett viktigt exempel på beräkning av en platt portfölj med minsta varians med PCA-metod. Här beräknar PCABuildBasis-funktionen proportionerna så att portföljen blir så komprimerad inom beräkningsintervallet som möjligt: Om du känner dig överväldigad av alla dessa matematiska begrepp, oroa dig inte. Som jag redan har sagt behöver du inte förstå alla matematiska detaljer för att utveckla och använda portföljer. Generellt ser stegföljden ut enligt följande: Beräkning av virtuell vinst för portföljsymboler med enstaka partier Grafberäkning och handel med portföljen Nu när vi har erhållit ROOTS-array av optimala förhållanden med ett antal procedurer, är det dags att ändra förhållandena till massor. För att göra detta behöver vi normalisering: skalning och avrundning. Att ställa in en önskad skala gör det mycket bekvämt att handla. Avrundning är nödvändig för att få kapacitet i enlighet med mäklarekraven. Ibland rekommenderas att utföra normalisering genom total marginal i portföljen, men den här metoden har allvarliga nackdelar (eftersom marginalen för enskilda symboler varierar och kan ändras). Därför är det mycket mer rimligt att utföra normalisering med ett portföljpris eller volatilitet. Nedan är ett enkelt exempel på normaliseringsalgoritmen av portföljpriset: Här är portföljprisen jämställd med den nödvändiga via proportionerna. PortfolioValue krävs portföljpris, totalvärde totalt portföljpris med standardvärdena, skalvågskalansförhållande, LotsDigits partikapacitet, LOTS-grupp av de värdevärden som är lämpliga för handel. Många värden utgör den slutliga portföljstrukturen. Positiva partier motsvarar en lång position, medan negativa partier till en kort. Genom att känna till portföljstrukturen kan vi diagramma och utföra handelsverksamhet med portföljen. Nedan följer en gruppportföljstruktur efter normalisering: Portföljdiagrammet är endast uppskattat av Stäng priser och visas i en separat indikator undervindu. För att bygga portföljen ska vi beräkna varje kartfält på samma sätt som virtuell vinst för separata symboler har beräknats tidigare. Men nu sammanfattas de med hänsyn till tilldelade partier: I detta kodfragment kan vi se att diagrammet är ritat mellan de inledande och sista streckarna: drawbegin och drawend. Portföljvärdet är lika med summan av vinstslängden vid alla symboler beräknad som en prisskillnad multiplicerat med ett kontraktspris och tidigare beräknat parti. Jag har hoppat över tekniska aspekter relaterade till indikatorbuffertar, formatering och liknande. Den färdiga färdiga portföljindikatorn beskrivs i avsnittet nedan. Här kan du granska byggprovportföljens grafkonstruktion (indikatorbotten undervind) med målfunktionsgrafen bifogad: Här används kvadratrotparabolen symmetrisk i förhållande till referenspunkten (ModelAbsolutetrue) som målfunktion. Beräknade intervallgränser visas som röda prickade linjer, medan portföljen tenderar att röra sig längs målfunktionslinjen både in och ut ur det beräknade intervallet. Du kan utföra teknisk analys av portföljgrafer som liknar vanliga symbolprisgrafer, inklusive tillämpning av glidmedel, trendlinjer och nivåer. Detta utökar analytiska och handelsmöjligheter som gör det möjligt för dig att välja portföljstrukturen för att bilda en viss handelsuppsättning på en portföljgrafik, till exempel korrigering efter en trendimpuls, trendnedgång, avslutande en platt, överköpt-överlåtelse, konvergensdivergens, breakout-nivå konsolidering och andra inställningar. Trading setup kvalitet påverkas av portföljens sammansättning, optimeringsmetod, målfunktion och valt historik segment. Det är nödvändigt att känna till volatiliteten i portföljerna för att välja en lämplig handelsvolym. Eftersom portföljdiagrammet ursprungligen baseras på en insättningsvaluta, kan du bedöma ett portföljfluktuationsområde och potentiellt drawdown-djup direkt i den valutan med crosshair-markörsläget och dra. Ett handelssystem bör baseras på egenskaper för portföljbeteende och installationsstatistik. Hittills har vi inte nämnt det faktum att portföljbeteendet kan förändras dramatiskt utanför optimeringsintervallet. En platta kan bli en trend, medan en trend kan bli en omvändning. Ett handelssystem bör också överväga att portföljfastigheterna är benägna att förändras över tiden. Denna fråga kommer att diskuteras nedan. Handelsverksamhet med en portfölj består av en engångsinköp av samtliga portföljsymboler med beräknade volymer. För mer bekvämlighet är det rimligt att ha en särskild expertrådgivare för att utföra allt rutinarbete, bland annat att ta fram portföljstruktureringsdata, förbereda syntetiska positioner, spåra inmatningsnivåer, fixeringsvinster och begränsningsförluster. Vi kommer att tillämpa följande villkor avseende EA-verksamheten: lång syntetisk portföljposition och kort syntetisk portföljposition (där långa positioner ersätts med korta och vice versa). EA ska kunna ackumulera positioner, spåra syntetiska volymer samt utföra portfölj nettning och transformation. Provet EA beaktas i nästa avsnitt, även om dess struktur inte förklaras på grund av artikelvolymbegränsningarna. Nedan är det minimala gränssnittet för en portfölj EA: Ibland är det nödvändigt att bygga inte en men flera portföljer. I det enklaste fallet behövs det för att jämföra två portföljer. Vissa uppgifter kräver en hel portföljserie som ska byggas på ett enda historik segment som resulterar i en uppsättning portföljer som innehåller vissa mönster. För att genomföra sådana uppgifter krävs algoritmgenererande portföljer enligt en viss mall. Exempel på att implementera en sådan indikator finns i nästa avsnitt. Här kommer vi att beskriva endast sina mest kritiska operationsfunktioner. Vi måste ordna en strukturuppsättning för att lagra data för flera portföljer, till exempel: I detta kodfragment anger DIMSIZE den maximala storleken för lagring av portföljer. Strukturen är organiserad på följande sätt: symbolportföljsymboluppsättning, mycket lotmatris för portföljsymboler, formeltextsträng med portföljekvationen, riktningsportföljriktning (lång eller kort), filterfilterattribut (inkluderad). Att tillämpa strukturuppsättningen är mer bekväm och rimlig än att använda separata uppsättningar. Strukturen array kan också skapas för att lagra portföljen grafbuffert arrays: Portföljer inom uppsättningen varierar beroende på deras symbolkombinationer. Dessa kombinationer kan definieras i förväg eller genereras enligt vissa regler. Att arbeta med en uppsättning portföljer kan innehålla flera steg beroende på en uppgift. Låt oss överväga följande stegsekvenser här: Beräkning av diagram över separata portföljer Först beräknas separata portföljer inom en uppsättning enligt tidigare beskrivna principer. Kombinera portföljer vid en nollpunkt behövs för att underlätta analysen. För att göra detta väljs en punkt där alla portföljer är lika med noll. Omvänd portföljer i förhållande till nollnivå kan också vara användbara för att förenkla analysen. Fallande portföljer blir växande efter att partierna är inverterade. Filtreringsportföljer inom en uppsättning innebär att välja de bästa portföljerna med något kriterium, till exempel en tillväxthastighet, avvikelse från noll, position inom en uppsättning i förhållande till andra portföljer. Så de bästa portföljerna valdes och kammade i en korg med portföljer, eller en superportfölj (överlagring av portföljer). Bilden nedan illustrerar dessa steg: En vertikal växling används för att kombinera portföljer. Portfölj reverseras när multiplicerad med -1. Slutligen appliceras ett filter genom sortering och provtagning av värden. Ingen detaljerad beskrivning av dessa algoritmer finns här för att undvika en stor del av rutinkoden. Nedan visas en uppsättning portföljer konstruerade enligt de nämnda principerna: Diagrammet visar en uppsättning portföljer beräknade med PCA-modell med en kort period. De beräknade intervallgränserna visas som de röda streckade linjerna. Här kan vi se utvidgningen av portföljuppsättningen på båda sidor av optimeringsintervallet. Nollpunkten väljs vid gränsen för optimering av vänstra gränssnitt, medan omgångstiderna i förhållande till noll och filterapplikationen är markerade med de lila prickade linjerna. Den tjocka linjen skisserar superportföljen bestående av de mest aktiva portföljerna och därigenom har en anständig körning från nollpunkten. Kombinera portföljer ger ytterligare möjligheter till analys och utveckling av handelsstrategier, till exempel diversifiering mellan portföljer, spridningar mellan portföljer, konvergensdivergens av portföljen, väntande på vridning av en portföljuppsättning, flyttning från en portfölj till en annan och andra tillvägagångssätt. Implementeringsexempel De metoder som beskrivs i den aktuella artikeln har implementerats som en portföljindikator och en halvautomatiserad EA. Här kan du hitta instruktionerna, ladda ner källkoden och anpassa den till dina behov: Portfolio Modeller portföljutvecklare och optimizer. Den har flera optimeringsmodelltyper med konfigurerbara parametrar. Dessutom kan du lägga till egna modeller och målfunktioner. Det finns också grundläggande verktyg för den tekniska analysen av portföljer, samt olika diagramformateringsalternativ. Portfolio Multigraph-generator av portföljuppsättningar med samma modeller och parametrar och ytterligare alternativ för portföljtransformation och filtrering samt att skapa en superportfolio. Portföljförvaltare EA för att arbeta med portföljer och superportföljer. Den fungerar tillsammans med portföljindikatorn och möjliggör öppnande och hantering av syntetiska positioner samt har portföljkorrigeringsfunktionalitet och automatisk tradingläge baserat på grafiska linjer av virtuella order. Handelsstrategier Det finns många handelsstrategier baserade på att använda syntetiska instrument. Låt oss överväga några grundläggande idéer som kan vara användbara när vi skapar en handelsstrategi för portfölj. Låt oss inte glömma risker och begränsningar. Det klassiska sättet att generera en portfölj är att identifiera undervärderade tillgångar med en tillväxtpotential och inkludera dem i portföljen med förväntan om att de stiger. Portföljvolatiliteten är alltid lägre än summan av volatiliteterna för de inkluderade instrumenten. Detta tillvägagångssätt är bra för aktiemarknaden men det är av begränsad omfattning på Forex eftersom valutor vanligtvis inte visar på fortsatt tillväxt, till skillnad från aktier. Nedan följer Warren Buffetts långsiktiga portfölj: När man arbetar med standardinvesteringsportföljer är det nödvändigt att noggrant utvärdera aktuell tillgångs status för att köpa den under prisnedåtgående rörelse. Det första och enklaste alternativet för spekulativ portföljhandel är ett parhandel som skapar en spridning av två korrelationssymboler. Vid Forex är detta tillvägagångssätt väsentligt begränsat eftersom även högt korrelerade valutapar inte har någon samverkan och därför kan skilja sig avsevärt över tiden. I det här fallet handlar vi om en bruten spridning. För övrigt blir ett sådant parhandel till handel med en syntetisk korsfrekvens eftersom par med en gemensam valuta vanligen ingår i en spridning. Denna typ av parhandel är en mycket dålig idé. Efter att ha öppnat motsatta positioner genom spridning, måste vi ibland vänta mycket länge innan kurvorna konvergerar igen. Nedan följer ett exempel på högt korrelerande par och deras gradvisa och oundvikliga divergens: Utvecklingen av detta tillvägagångssätt är en multilateral spridningshandel när tre och flera valutapar ingår i spridningen. Detta är redan bättre än parhandel eftersom det är lättare att skapa en jämnare spridning med större antal kombinationsalternativ. Men samma risker förblir: en spridning kan diverga och inte konvergera igen. Det är mycket lättare att uppnå god spridningsavkastning på en tyst marknad, men starka fundamentala nyheter ger upphov till en snabb och oåterkallelig divergens efter ett tag. Intressant, om vi ökar antalet instrument i en spridning, ökar också divergenssannolikheten, eftersom ju fler valutor som är inblandade desto större är sannolikheten för att något händer under ett pressmeddelande. Att vänta på att spridningen ska konvergeras igen skulle vara en extremt skadlig strategi, eftersom detta bara fungerar på en tyst platt marknad. Nedan följer ett samlingsprofil på flera sidor under ett pressmeddelande: Spridning av handel har fler möjligheter på aktie - eller börsmarknaden om det finns en grundläggande koppling mellan tillgångar. Det finns emellertid fortfarande inga garantier mot spridningsbrister på utdelningsdagen eller under terminskontraktets löptid. Spread kan också bestå av marknadsindex och terminer, men detta kräver övervägande av valutahandel. En dödlig gren av spridningshandeln representeras av ett flerslås när cykliskt relaterade valutapar (till exempel EURUSD-GBPUSD-EURGBP) väljs och används för att bilda en balanserad spridning. I det här fallet har vi en perfekt spridning som är omöjlig att handla eftersom totala spridningar och provisioner är för höga. Om vi försöker obalansera lite, blir grafen mer trendliknande vilket motsätter sig spridning av handel, medan kostnaderna förblir tillräckligt höga vilket gör denna inställning meningslös. Nedan är ett exempel på ett balanserat multi-lock. Den totala spridningen visas som två röda linjer: Spridning av handelsnederlag gör att vi byter till trendmodeller. Vid första anblicken verkar allt vara harmoniskt nog här: identifiera trenden, gå in under en rättelse och avsluta med vinst på högre nivåer. Nedan är ett exempel på en bra trendmodell: Trendmodeller kan dock inte vara så enkla och praktiska ibland. Ibland vägrar en portfölj att växa ytterligare och ibland blir den kraftigt. I det här fallet handlar det om en trasig trend. Detta sker ganska ofta på korta och medellånga modeller. Handelseffektiviteten beror starkt på marknadsfasen här. När marknaden är trendig fungerar systemet bra. Om marknaden är platt eller särskilt flyktig kan många förluster uppstå. Nedan ser du en klar trendavslutning: Dessa nackdelar gör att vi omprövar traditionella tillvägagångssätt. Nu kan vi titta på spridningsutbrott och trendomvandlingsmetoder. Den gemensamma antagandet är att eftersom vi inte kan undvika portföljinstabilitet borde vi lära oss hur vi använder den. In order to develop a spread breakout setup, we need to create a very compact short-period spread with the minimum volatility in anticipation of a strong movement. The more we compress the portfolio volatility, the stronger it bursts out. For accelerated spread breakout, it is possible to form a setup before beginning trade sessions and before the news selecting certain intervals of a quiet market. PCA optimization method is best suited for volatility compression. In this setup, we do not know in advance, in which direction the breakout is to occur, therefore, the entry is already defined when moving from the spread boundaries. Below is a sample exit from the short-period spread channel with the spread channel boundaries highlighted: The method advantages: short-period spreads are frequent on charts and the volatility after the breakout often exceeds the spread corridor width. The drawbacks: spreads are expanded during news releases and a saw may form when the price moves up and down a few times. The conservative entry can be proposed as an alternative after exiting a spread corridor during the correction to the corridor boundary if possible. In order to create a trend reversal setup, a trend model is created, as well as turning movements and portfolio price levels are tracked. The movement direction is clearly defined but we do not know in advance when the trend reverses. An internal trend line crossing, reverse correction and roll-back are tracked for a conservative entry. Touching an external trend line and a roll-back are tracked for an aggressive entry. Below is an example of a trend portfolio with the external and internal lines displayed: The method advantages: good entry price, convenience, extreme price instability works in favor of the setup. Disadvantages: portfolio price may go up the trend due to fundamental reasons. In order to improve the situation, we may enter in fractional volumes from multiple levels. A similar setup can be implemented using square root parabolic function model. The setup is based on a well-known property: when the price reaches a theoretical limit of a market distribution range, its further movement is hindered. Like in other cases, the target optimization function is adjusted for the current market distribution. If the markets had featured normal Gaussian distribution, the time-based square root law would have always worked perfectly but since the market distribution is fractal and non-stationary in its nature, the situational adjustment is required. You can find more about market distributions in the following books by Edgar Peters: Chaos and Order in the Capital Markets Fractal Market Analysis Below is an example of a portfolio moving away from the parabolic function: This setup is perfect for adapting to mid-term volatility. However, just like in case of a trend setup, a portfolio price may move upwards due to fundamental factors. The market is not obliged to follow any target function behavior, but neither it is obliged to deviate from it as well. Some degree of freedom and duality remain at all times. All trade setups are not market-neutral in the absolute sense but are based on some form of technical analysis. The dual nature of trend and flat can be seen below. A trend model looks similar to an uneven flat on a bigger scale: Apart from symbol combination and model type, location of estimated interval boundaries is of great importance when developing a portfolio. When configuring the portfolio, it might be useful to move the boundaries and compare the results. Good choice of boundaries allows finding portfolios that are more suitable in terms of a trading setup. If a portfolio position enters a drawdown, it is possible to correct the portfolio without closing existing positions. Shifting the boundaries changes the portfolio curve adapting it to a changing situation. Positions should be corrected accordingly after re-arranging the portfolio. This does not mean that the drawdown will decrease in a moment, but the corrected portfolio might become more efficient. Next, lets consider some properties of portfolio sets and their possible applications in trading systems. The first property of portfolio sets to catch the eye is a set expansion, or divergence of portfolios with distance from the zero point. It would be only natural and reasonable to use this property for trading: buying rising portfolios and selling falling ones. Below is a sample expanding set of portfolios: The second property portfolio set compression (convergence) is opposite to the previous one. It happens after an expansion. Expansion and compression cycles suggest that this behavior can be used to open synthetic positions in anticipation of returning to the center of the set after reaching an alleged highest degree of expansion. However, the expansion highest degree always vary, and it is impossible to predict the final boundaries of the set curves expansion. Below is a sample compressing set of portfolios: Applying various target functions, filtration parameters, reversals and combinations provides good opportunities for experimenting and searching for efficient trading setups. Generally, all setups can be divided into two classes: trading breakouts and trading roll-backs. Below is an example of the first type trading setup with a reversal and shift of a portfolio set: A sample roll-back trading setup based on the multi-trend model is provided below: Another recurring portfolio property is a set twist (self-crossing). Typically, this corresponds to a change of a market trend. If we trade in anticipation of an expansion of portfolios, a twist is a negative effect requiring the set re-arrangement. For other strategies, crossing of some portfolio curves can be used to identify promising and played-out portfolios. Besides, it is necessary to consider a distance traveled, levels, position in a set and position relative to the target function. Below is an example of a set twisting multiple times: We have not focused out attention on the volume management issue up until now, though this is a critical part of any trading system. Generally, we can describe the following approaches: trading a single synthetic position (the simplest case) dividing the volumes (extended entry by levels) adding to a rising portfolio (pyramiding by trend) adding to a portfolio in a drawdown (position averaging) adding to a portfolio after a correction (finishing method) adding to a portfolio after a reversal (expansive strategy) adding to new portfolios (portfolio consolidation) combined approach (combining several approaches) Specific volume management method should be selected considering trading system features. When planning a profit and a drawdown, your calculations should be based on a portfolio volatility. In the simplest case, the portfolio volatility can be evaluated as the movement range of its graph within a certain segment. It is much better to evaluate volatility not only within the optimization interval but on the previous history as well. Knowing the portfolio volatility, it is possible to calculate a theoretical value of the maximum total drawdown at a series of positions. Traditionally, we caution against too frequent aggressive volume adding. The total funds allocated for a portfolio coverage on a trading account should be able to withstand unfavorable movement considering all additional positions. Multi-portfolio trading means systematic portfolio selection and consolidation. If one portfolio is bought and another one is added to it, this may have a positive diversification effect if the portfolios have noticeable differences. But if portfolios are correlating, this may have a negative effect, since they both may find themselves in a drawdown in case of an unfavorable movement. Normally, you should avoid adding correlating portfolios. At first glance, trading spread between two correlating portfolios may seem to be very promising but closer examination shows that such spreads are no different from usual spreads since they are not stationary. Various exit strategies can be applied in multi-portfolio trading, including: closing by total result of all portfolios closing a group of portfolios by the groups total result closing by certain portfolios targets and limits. For some strategies, the entry point is of critical importance. For example, if a strategy applies extreme prices before a trend reversal or correction, a period suitable for entry is very short. Other strategies are more reliant on the optimal calculation of a position adding system and portfolio selection principle. In this case, individual portfolios may enter a drawdown, but other (more efficient) portfolios within the consolidated series adjust the overall result. Conclusion Portfolio trading advantages: optimization allows you to create a portfolio curve according to your preferences, as well as form a desired trading setup and trade it similar to trading symbols on a price chart. However, unlike trading portfolios, buying and selling conventional assets leave traders in passive position (since they are only able to accept the current price chart or avoid using it). Besides, as the situation evolves, traders can adjust their portfolios to new market conditions. Portfolio trading drawbacks: standard pending orders are not applicable, more stringent minimum volume requirements, bigger spreads on 30 and lower charts, hindered intraday scalping, no OHLC data, not all indicators can be applied to portfolios. Generally, this is a rather specific approach in trading. Here we have only made an introductory overview of the portfolio properties and working methods. If you want to perform deeper studies of portfolio trading systems, I recommend using the MetaTrader 5 platform for that, while market distribution properties should be studied in specialized statistical packages. Warning: All rights to these materials are reserved by MQL5 Ltd. Copying or reprinting of these materials in whole or in part is prohibited. Forex Trading 8211 MetaTrader 4 Chart Templates Trading Bonus Free 25 No Deposit Required. goo. glnXSPZ7 Forex Trading 8211 MetaTrader 4 Chart Templates MetaTrader Forex Trading Tutorial: Setting up MetaTrader 4 for price action trading charts. The MetaTrader 4 software, often referred to as MT4, has plenty of options and novice users find themselves overwhelmed with the settings. If you8217ve never traded with MetaTrader 4, it8217s basically a trading platform that opens up a window into the world of foreign exchange. While it8217s true that it takes some time to figure everything out, there are really only a few settings that you will need to know to trade. One of the most useful features is the ability to add indicators, expert advisors and templates to your trading window in MetaTrader 4. This is extremely valuable because there are thousands of MT4 users, as well as trading professionals and companies who share their configurations for free or a for a small payment. Trading indicators help the user recognise price patterns and aid in live trading. There are thousands of different indicators out there. Indicators can produce buy and sell signals visible on the charts. Within MT4 there are many built-in indicators but users can also install custom indicators. These are very popular among traders as they often show much more information than the standard built-in ones. Indicators can also become parts of an Expert Advisor. Expert Advisors are built to automate trading. So if you have an indicator that shows buy and sell signals, an expert advisor would execute the trades on the signals. In addition, Expert Advisors have rules that define each trading position according to specific trading strategy and money management. Expert Advisors are usually paid by subscription but there are also free ones available on trading forums. Using EAs is completely automated so trades are executed without user input. The risks of such automated system are obvious so most traders prefer to rely on trading indicators and live analysis based on their market knowledge. In addition to Indicators and Expert Advisors there are custom templates that can be added to MetaTrader 4. Templates allow to configure the look and feel of your trading window. MT4 users often share templates with their settings. Now that you are considering using MetaTrader 4 and giving trading a go it8217s important to understand that all indicators are just that, indicators. There is no magical indicator that will make you rich. Markets are too unpredictable and too organic for anyone to predict the trends correctly all the time. However there are indicators that can help with that. There is a saying 8216The trend is your friend8217 which is often used in trading classrooms. If you can just follow the trends you can make it as a successful trader. However it8217s a lot easier said than done. Trends change and consolidate, their nature often seems very erratic. Indicators such as Moving Averages and Bollinger Bands help to see what8217s going on and recognise certain market sentiments, whether it is bullish, going up or bearish, going down. The type of moving averages to use largely depend on your trading strategy and the topic of moving averages in trading goes beyond the scope of this article. However these are the simplest indicators one can use to trade binary options or Forex using the MetaTrader 4 software. Deja un comentario Cancelar respuesta
No comments:
Post a Comment