Home Technische indicator Bericht

PCA Synthetics: Automatische Coëfficiëntselectie voor MetaTrader 5

Bijlage
16997.zip (11.72 KB, Downloaden 0 keer)

De PCA Synthetics indicator biedt een automatische selectie van coëfficiënten voor elk instrument in een pseudo-stationaire portefeuille, die de neiging heeft naar een evenwicht rond nul te bewegen.

Let op: voor deze indicator is de AlgLib-bibliotheek vereist in de Include\Math map van de terminal.

Een Beetje Theorie

Elk instrument beweegt in zijn eigen richting, en elke richting is een aparte dimensie in een multidimensionale array. Door de matrix te draaien, dat wil zeggen, door elk element met een bepaald getal te vermenigvuldigen, proberen we een as te vinden met de minimale afstand tot de as en alle instrumenten, oftewel de minste totale variantie. Het getal waarmee elk element van de matrix wordt vermenigvuldigd, wordt vervolgens de hoekwaarde, waarmee het bewegende instrument moet worden gedraaid zodat het in dezelfde richting beweegt als de andere instrumenten. Deze hoekwaarde is de coëfficiënt voor elke valuta in de portefeuille.

Als de coëfficiënt groter is dan 0, wordt de valuta gekocht; als deze kleiner is dan 0, wordt deze verkocht. Op deze manier is het mogelijk om de stationariteit van de gemaakte synthetische portefeuille te behouden door af en toe de coëfficiënten opnieuw te berekenen. Bovendien vindt de PCA niet alleen de as met de minste variantie voor de portefeuille, maar meerdere. Het aantal instrumenten in de portefeuille correspondeert met het aantal componenten (vectoren). Elke component wordt een hoofdfactor genoemd en bepaalt hoeveel invloed deze heeft op de totale verandering van de portefeuillebeweging.

Mogelijke Problemen

  1. Als de grafiek niet wordt weergegeven, kijk dan wat er in het Experts tabblad wordt afgedrukt. Misschien zijn er fouten of is er een synchronisatie met andere grafieken aan de gang. Als er geen berichten zijn, probeer dan andere tijdframes.

  2. De verkregen vectorwaarden zijn gecontroleerd met de waarden die in het R-pakket zijn berekend, dus de waarden zelf zijn correct. Maar het teken van een specifieke coëfficiënt kan verkeerd zijn, aangezien de PCA geen aandacht besteedt aan de tekens. Het "-" of "+" teken kan alleen empirisch worden bepaald, dat wil zeggen, door middel van proefondervindelijk onderzoek.

Probleem #2 is beschreven met afbeeldingen hier: http://stats.stackexchange.com/questions/34396/im-getting-jumpy-loadings-in-rollapply-pca-in-r-can-i-fix-it

Parameters

InpVector = 0; // Als er N valuta's in de portefeuille zijn, dan is de bewegingsas nummer 0 = maximale variantie, N - 1 = minimale
InpFrame = 300; // Vlot venster voor de berekening van coëfficiënten, voor elke InpDepth bars worden InpFrame berekeningen gemaakt
InpDepth = 1000; // Totaal aantal bars in de geschiedenis voor het tekenen van de grafiek
InpForward = 500; // De bar om te stoppen met het herberekenen van de coëfficiënten en de vorige te gebruiken, dit is OOS
InpPeriod = 1; // Vervaging voor de MA, om de grafiek minder schokkerig te laten lijken
InpTimePeriod = PERIOD_CURRENT; // Tijdframe voor de berekeningen
InpNormalize = true; // Normaliseer de prijzen voor weergave, om de volatiliteitsverschillen van USDJPY en EURGBP te verzachten
InpSynthetics = true; // Teken de samenvattende synthetische portefeuille vermenigvuldigd met de gevonden coëfficiënten of elk paar afzonderlijk
InpPrices = Logs; // Normalisatie-algoritme van paren
InpSymbols = "AUDUSD,USDCHF,USDCAD"; // Paren voor de portefeuille
InpMagic = "ID" // Aangepaste naam van de indicator, om het plaatsen van meerdere instanties op één grafiek zonder conflicten te vergemakkelijken

Het idee is hier vandaan overgenomen: https://www.mql5.com/en/code/9908

Gerelateerde berichten

Reactie (0)