![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
dreder, grazie per il consiglio, ma non è probabile che lo prenda: sono un drogato, e una sola dose reale è stata sufficiente per farmi diventare dipendente. E anche tu sei un drogato, vero?
Infatti, perché non unirsi a un piccolo circolo di drogati, alcuni dei quali sanno molto di matematica (non io)?
2 Candido: Lo raccolgo e te lo mando. Ci sono Marple, Sato, Wald, Farina, lezioni sul DSP e sul calcolo dell'ACF in Mathcad. Spero che l'intero archivio passi in una volta sola (ho circa 13,5 Mbyte tutti insieme, quindi saranno meno di 20 quando si inoltra). Te l'ho mandato da un'altra casella di posta. Scrivimi una riga con il risultato - o mandami un'email.
Lasciatemi provare a spiegare l'ACF con un esempio, ...
E cosa c'è di sbagliato nella fastcorellation della libreria di klot?
Infatti, perché non fare una chiacchierata in un piccolo cerchio...
Sono d'accordo, solo che non sono bravo in matematica, sono una C al massimo. Vod un paio di drink in questa ricca esperienza di ingegnere radiofonico dell'aviazione :-)
lna01 a proposito della fastcorellation, non sapevo che ci fosse, scusa se ti disturbo ancora con domande così sgradevoli :-), come tutto conta.
lna01 a proposito di fastcorellation non sapevo che ci fosse, scusate se ricomincio a fare brutte domande :-), come conta tutto.
Il formato è il seguente:
void fastcorellation(double& signal[], int signallen, double pattern[], int patternlen)
/*************************************************************************
Corelazione tramite FFT
In ingresso:
Signal è un array di segnali, con cui eseguiamo la correlazione.
Numerazione degli elementi da 0 a SignalLen-1
SignalLen - lunghezza del segnale.
Pattern - array di pattern, la correlazione del segnale con cui stiamo cercando
Numerazione degli elementi da 0 a PatternLen-1
PatternLen - la lunghezza del pattern.
Uscita:
Segnale - valori di correlazione in punti da 0 a
SignalLen-1.
*************************************************************************/
Sì, ho capito. A giudicare dalla descrizione, gli array sono effettivamente periodici, e l'ACF per tali dati dipenderà dalla differenza di argomenti per definizione, cioè il processo diventerà automaticamente stazionario. Non ci sta, maledizione...
L'ACF sarà simmetrica se usi la FFT, cioè hai bisogno dei dati fino al centro. Anche se non so dove vuoi applicarlo.
Se l'ACF dipende dalla differenza degli argomenti, è non stazionario.
Sì, tutto ha un senso. A giudicare dalla descrizione, gli array sono effettivamente periodici, e per tali dati l'ACF dipenderà per definizione dalla differenza degli argomenti, cioè il processo diventerà automaticamente stazionario. Non ci sta, dannazione...
Ho bisogno di una procedura che calcoli i coefficienti a e b nell'equazione y(x)=a*x+b. Allora forse sarò in grado di creare di nuovo qualche algoritmo ACF a curva in MQL.
Cercherò di spiegare l'ACF con un esempio, diciamo che abbiamo due serie di dati, la prima 0 1 2 3 4 5 e la seconda 10 11 12 13 14 15, se calcoliamo il coefficiente di correlazione (CC) di queste serie è = 1, cioè conoscendo la prima serie possiamo calcolare con precisione la seconda, se la seconda serie fosse 15 14 13 12 11 10, il CC sarebbe = -1, cioè quando una serie aumenta, la seconda nella stessa proporzione diminuisce.
L'ACF (funzione di autocorrelazione) è un confronto della matrice con se stessa solo spostata nel tempo. A shift=0, ACF =1, poiché i dati originali sono esattamente uguali a se stessi. Quando aumentiamo lo spostamento, l'ACF comincia a cambiare, penzolando tra -1 e 1, zero significa nessuna correlazione.
Se l'ACF del flusso di citazioni fosse tutto il tempo =1 eh che graal sarebbe :-).
Ho le foto, le ho postate sopra. Ma sono solo per 1 campione, penso che ACF dovrebbe variare nel tempo (certamente lo fa per il graal sarebbe stato trovato molto tempo fa), ma se troviamo la funzione che lo approssima e solo se troviamo i parametri di questa funzione sarà un significativo passo avanti
Cosa ci dà l'analisi ACF
1. costruire un modello più o meno adeguato di serie temporali.
2. determinare il tempo durante il quale il processo è correlato, cioè il tempo per il quale possiamo prevedere il comportamento della curva
3. L'ACF può essere usato in vari modi, fino a prendere decisioni commerciali. La cosa principale è capirlo e capire il suo comportamento in vari intervalli di tempo
Ho provato a scrivere uno script in MQL che visualizza il correlogramma (funzione di autocorrelazione) delle serie temporali in una finestra separata. Il codice costruisce una serie di prime differenze e trova una media campionaria di Nbars, il coefficiente di correlazione per la differenza corrente Open[i]-Open[i+1] con se stessa (colonna con indice zero), con la differenza precedenteOpen[i+1]-Open[i+2] (colonna con indice numero 1),..., con la k-esima differenza Open[i+k]-Open[i+k+1] (colonna con indice numero k), etc.., k gestisce valori da 0 a n.
//+------------------------------------------------------------------+
//| FAK. mq4 |
//| Copyright © 2007, Neutron |
//+------------------------------------------------------------------+
#proprietà indicator_separate_window
#proprietà indicator_buffers 1
#property indicator_color1 Red
#proprietà indicator_width1 4
extern int Nbars=10000, n=100;
int i, passo, inizio;
double s1,s2,fak[1000],Dif[10000];
int start()
{
Inizio=Nbars+n;
for (i=Start;i>=0;i--){Dif[i]=Open[i]-Open[i+1];}
for (step=0;step<=n;step++){s1=0;s2=0;
for (i=Nbars;i>=0;i--){s1=s1+Dif[i]*Dif[i+step];s2=s2+Dif[i]*Dif[i];}
fak[step]=s1/s2;}
}
int init()
{
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexBuffer(0,fak);
ritorno(0);
}
Fate attenzione che nei minuti la coppia EUR/GBP mostra una forte correlazione negativa tra le letture adiacenti (la barra con l'indice 1 e il valore -0,25). Per evitare di mostrare una colonna zero incompletamente informativa (sempre identicamente uguale a 1), è necessario tracciare una linea:
for (step=0;step<=n;step++){s1=0;s2=0;
sostituire con:
for (step=1;step<=n;step++){s1=0;s2=0;
Il prodotto del coefficiente di autocorrelazione r1 per la volatilità dello strumento sul TF selezionato darà la redditività media del TS basata sul processo di Markov. Sfortunatamente, questo valore non supera la commissione DC.