PCA Synthetics: L'Indicatore per il Trading Sostenibile su MetaTrader 5

Mike 2017.01.26 18:11 37 0 0
Allegato

Se sei un trader e hai mai sentito parlare di PCA Synthetics, sei nel posto giusto! Questo indicatore offre una selezione automatica dei coefficienti per ogni strumento in un portafoglio pseudo-stazionario, mirando a raggiungere l'equilibrio a zero.

Per utilizzare questo indicatore, è essenziale avere la libreria AlgLib nella cartella Include\Math del tuo terminale MetaTrader.

 

Un Po' di Teoria

Ogni strumento si muove in una propria direzione, e ogni direzione rappresenta una dimensione separata in una matrice multidimensionale. Ruotando la matrice, ossia moltiplicando ogni elemento per un certo numero, cerchiamo di trovare un asse con la distanza minima tra l'asse e tutti gli strumenti, ovvero la minima varianza totale. Questo numero diventa il valore angolare, che indica di quanto ogni strumento deve essere ruotato per muoversi nella stessa direzione degli altri. Questo valore angolare rappresenta il coefficiente per ogni valuta nel portafoglio.

Se il valore del coefficiente è maggiore di 0, la valuta viene acquistata; se è inferiore a 0, viene venduta. In questo modo, possiamo mantenere la stazionarietà del sintetico creato, ricalcolando periodicamente i coefficienti. Inoltre, il PCA non trova semplicemente l'asse con la minima varianza per il portafoglio, ma ne identifica diversi. Il numero di strumenti nel portafoglio corrisponde al numero di componenti (vettori). Ognuno di questi è chiamato componente principale e determina quanto influisce sul cambiamento totale del movimento del portafoglio.

 

Possibili Problemi

  1. Se il grafico non viene visualizzato, controlla cosa appare nella scheda Esperti. Potrebbero esserci errori o la sincronizzazione con altri grafici è in corso. Se non ci sono messaggi, prova a cambiare timeframe.

  2. I valori dei vettori ottenuti sono stati verificati con quelli calcolati nel pacchetto R, quindi i valori stessi sono corretti. Tuttavia, il segno di un coefficiente specifico potrebbe essere errato, poiché il PCA non considera i segni. Il segno “-” o “+” può essere determinato solo empiricamente, ossia tramite tentativi ed errori.

Il problema n°2 è descritto con le immagini qui: http://stats.stackexchange.com/questions/34396/im-getting-jumpy-loadings-in-rollapply-pca-in-r-can-i-fix-it

 

Parametri

InpVector = 0; // Se ci sono N valute nel portafoglio, l'asse di movimento numero 0 = varianza massima, N - 1 = minima
InpFrame = 300; // Finestra mobile per il calcolo dei coefficienti, per ciascuna delle barre InpDepth vengono effettuati calcoli InpFrame
InpDepth = 1000; // Il numero totale di barre nella storia, per cui il grafico è disegnato
InpForward = 500; // La barra per fermare il ricalcolo dei coefficienti e utilizzare i precedenti, questo è OOS
InpPeriod = 1; // Smussamento per il МА, per rendere il grafico meno tremolante
InpTimePeriod = PERIOD_CURRENT; // Timeframe per i calcoli
InpNormalize = true; // Normalizza i prezzi prima di mostrarli, per smussare i gap di volatilità di USDJPY e EURGBP
InpSynthetics = true; // Disegna il sintetico riassuntivo moltiplicato per i coefficienti trovati o ciascuna coppia individualmente
InpPrices = Logs; // Algoritmo di normalizzazione delle coppie
InpSymbols = "AUDUSD,USDCHF,USDCAD"; // Coppie per il portafoglio
InpMagic = "ID" // Nome personalizzato dell'indicatore, per facilitare il posizionamento di più istanze su un grafico senza conflitti

L'idea è stata adottata da qui: https://www.mql5.com/en/code/9908

 

 

Elenco
Commento 0