Test di sistemi di previsione in tempo reale - pagina 19

 
grasn >> :

Un po' più tardi sarò in grado di dare una stima della probabilità di realizzazione della previsione. Domanda - di quale correlazione stai parlando?

Intendo qualcosa che permetta di valutare la qualità di un sistema di predizione in qualche tipo di punti. In modo da poter prendere due sistemi, dare un punteggio a ciascuno, confrontare i punteggi e dire "questo è XX migliore di quello".

In generale, sarebbe interessante pensare a come una tale stima potrebbe essere fatta più accuratamente...

Il coefficiente di correlazione è la prima cosa che mi è venuta in mente. Come questo.

Torniamo indietro nella storia di un paio d'anni.

Ogni ora che eseguiamo il sistema nella storia, costruisce una previsione e conta la sua correlazione con la storia

Poi la correlazione media è il punteggio del sistema.

E su quali tecniche basate la vostra stima della probabilità di realizzazione della previsione?


 

Ho sempre voluto provare un parametro curioso - aspettativa matematica ad ogni sezione di tempo, ma non ho mai avuto abbastanza tempo. Il calcolo è abbastanza semplice, è la somma dei prodotti dei livelli di prezzo per le corrispondenti frequenze di occorrenza. La probabilità è presa dallo stato di probabilità iniziale del sistema.


Non ho testato affatto il parametro, quindi non posso dire nulla. Ma solo per l'interesse sportivo: 15 min, EURUSD, previsione di un giorno dal momento attuale

Vettore di stato (un po' fuori luogo).


Aspettative sulle sezioni di tempo (1 campione - 15 minuti)




Livelli probabili (o poco probabili):



 

a Lord_Shadows

Переименовали ветку. Теперь уже не игра, а тестирование, и кончились прогнозы.

I pronostici non sono ancora iniziati, nel senso che ci stiamo solo scaldando :o)) unisciti a noi :o)


a shtoba

Intendo qualcosa che permette di valutare la qualità del sistema di predizione in termini di alcuni punti. In generale sarebbe interessante pensare a come fare una tale stima.

Un tale rating è stato inventato da tempo per i campionati - infatti, è il numero di punti guadagnati. Posso aggiungere - senza applicare alcuna MM - solo il modello funziona. La cosa principale è: a cosa servono questi punti? Qual è il punto?

Se andiamo alla storia per un paio d'anni, eseguiamo il sistema ogni ora, costruisce la previsione e calcola la sua correlazione con la storia. Poi il valore medio della correlazione è una specie di punteggio del sistema.

Il mercato non si ripete mai, e se si calcola la correlazione della previsione utilizzando 3 dati, si troveranno molte situazioni "simili". Ma il coefficiente non dice nulla.

E quali metodi usate per stimare la probabilità di realizzazione delle previsioni?

In due modi:

(1) Si fa una previsione ad ogni conteggio e si valuta il suo rendimento. Poi si calcolano le frequenze, se risulta, si esegue un'analisi più complessa per mettere in relazione la frequenza con la situazione attuale alla previsione, indipendentemente dal modello

(2) Il secondo metodo, più teorico, si trova nel modello stesso.

 

FELICE GIORNO DELLA VOCE!!!! FELICE GIORNO DELLA NOSTRA VITTORIA!!! :о)))

Ha solo mancato un po' il livello 1,3331, il resto va bene. Ora una situazione curiosa su EURUSD. Qui sotto c'è il calcolo della "mappa" dell'entropia dell'informazione:

Se prendiamo a cuore il principio della massima entropia, dovremmo aspettarci un pullback al livello di circa 1,3445, ma d'altra parte, il modello dinamico mostra una possibilità essenziale di muoversi fino a 1,3756 (ricordo, considero il livello di prezzo come un livello statistico, intorno al quale il prezzo si "concentrerà"). Quindi, la cosa più ragionevole è non iniziare a fare trading lunedì, ma aspettare circa 10-20 letture di 15 minuti ciascuna :o)


Cosa ne pensate, colleghi? Chi ha piani/obiettivi per lunedì?


PROBLEMA:

(1) Ho iniziato a imparare MQL e ho fatto uno script "fetch data" molto cool :o) per MathCAD:

extern int diapason = 7000;


int start()
{
double process[];

GetHistoryProcess(process, diapason);
CreateFlowData(process);

return(0);
}


void GetHistoryProcess(double signal[], int window)
{
int n;
int i;

double y[];

ArrayResize(y, window);
ArrayInitialize(y, 0.0);

ArrayResize(signal, window);
ArrayInitialize(signal, 0.0);

i=0;

for(n=0; n<=window-1; n++)
{
y[i]=(High[window-n-1]+Low[window-n-1])/2.0;
i=i+1;
}

ArrayCopy(signal, y, 0, 0, WHOLE_ARRAY);

return(0);
}


void CreateFlowData(double process[])
{
int i;
int N;
int Handle;

string FILE="data.csv";

N=ArraySize(process);
Handle=FileOpen(FILE, FILE_CSV|FILE_WRITE,";");

if(Handle<0)
{
if(GetLastError()==4103)
{
Alert("Нет файла с именем ",FILE);
}
else
{
Alert("Ошибка при открытии файла ",FILE);
}

return;
}

for(i=0; i<=N-1; i++)
{
FileWrite(Handle, process[i]);
}

FileClose(Handle);

return(0);
}


All'inizio non riuscivo a capire perché le previsioni non si avverassero affatto, poi l'ho capito - ho dimenticato di "girare" i dati :o). Ho inserito extern pensando di avere un'interfaccia all'inizializzazione, dove posso inserire l'intervallo di storia desiderato (cambia anche) senza compilazione. Quindi non c'è un'interfaccia, non funziona per gli script? Ha preso alcuni esperti per esempio, lì funziona.


(2) Non riesco a capire come "scrivere nel futuro" la serie temporale di previsione (per esempio). Durante il calcolo, e durante l'elaborazione e l'analisi dei dati, il tempo si è spostato di, diciamo, pochi conteggi? Approssimativamente, voglio caricare 100 campioni nel futuro a partire da una certa data storica (o zero), cioè alcuni dati devono essere caricati nella storia prima della barra attuale, e altri oltre. Non funziona.

 
grasn >> :

All'inizio non riuscivo a capire perché le previsioni non si avverassero affatto, ma poi l'ho capito - ho dimenticato di "girare" i dati :o). Inserito extern, pensando che all'inizializzazione ci sarà un'interfaccia, dove posso inserire l'intervallo storico desiderato (cambia anche) senza compilazione. Quindi non c'è un'interfaccia, non funziona per gli script? Ha preso alcuni esperti per esempio, lì funziona.

Non funziona per gli script, solo per gli indicatori e gli Expert Advisor. Fai la tua esportazione come indicatore se vuoi gestire le variabili esterne


(2) Non riesco a capire come (per esempio) dovrei "scrivere la serie temporale delle previsioni nel futuro". Durante i calcoli, e durante l'elaborazione e l'analisi dei dati, il tempo si è spostato di, diciamo, qualche conteggio? In parole povere, voglio caricare 100 campioni nel futuro a partire da una certa data storica (o zero), cioè alcuni dati devono essere caricati nella storia prima della barra attuale, e altri più avanti. Non sembra funzionare.

Non c'è futuro in MT. Tutte le serie sono messe in array e viceversa. L'indice 0 corrisponde all'ora corrente (o l'ultima disponibile), l'indice 1 corrisponde alla barra indietro, ecc. Allora per il futuro abbiamo bisogno degli indici -1, -2, ecc, ma non ci sono tali indici negativi in mql.

Ma ci sono altri problemi. Guarda la funzione SetIndexShift per gli indicatori (imposta lo spostamento della linea dell'indicatore rispetto all'inizio del grafico). È solo uno spostamento visivo. Gli indici sono come erano e rimangono.


C'è anche SetIndexDrawBegin (Imposta il numero di serie della barra dall'inizio dei dati, da cui deve iniziare il disegno della linea dell'indicatore), può essere usato per tagliare il disegno a sinistra per una barra specificata.

 

Per rendere tutto sincrono nel tempo - segnate i valori delle vostre serie non con gli indici, ma con il tempo e sincronizzate con il grafico MT tramite Time[bar].

Ma c'è un problema: l'asse del tempo sul grafico può essere non uniforme. Se non ci sono barre nella serie iniziale sul grafico (non c'è connessione con il server o c'è un buco per qualche altra ragione) - allora le barre saranno ancora disegnate in modo continuo, e il tempo salterà sopra queste lacune. Questo è naturale per il "passato".

 
grasn >> :

...Inserito extern, pensando che all'inizializzazione ci sarà un'interfaccia dove posso inserire l'intervallo storico desiderato (cambia anche) senza compilare. Quindi non c'è un'interfaccia, non funziona per gli script? Ho preso alcuni esperti come esempio, funziona lì....

Inserite la #proprietà show_inputs nello script e il vostro esterno apparirà quando lo script viene eseguito.

 

a Shtoba, granit77

Colleghi, grazie per l'aiuto. :о) Non sono troppo contento di questi indicatori :o). Non so come usarli. Per il trading sono livelli di stato locali, secondo il concetto di modellazione del mercato - il prezzo si "concentra" vicino ad essi. Sull'immagine sono rossi (più precisamente, non li ho ancora calcolati, sto preparando un astrolabio :o)):

Teoricamente, possono essere mostrati in MT come linee ("trend" per esempio, il tipo sembra essere OBJ_TREND). Si pone solo una domanda molto semplice, come ricalcolare i conteggi del tempo (0, 1, 2, .... (15 minuti ciascuno)) al tempo "futuro". Finora, ho trovato il seguente modo: prendiamo il numero di secondi TimeCurrent( ), ci aggiungiamo quello previsto e questo numero dovrebbe essere convertito in tempo in qualche modo. Come si fa?

PS: Ma abbiamo ancora qualcosa in questa entropia. Il prezzo non ha raggiunto il livello, ma ha iniziato a muoversi e se facciamo un accordo saremmo ancora nel plus: o)

 

 
grasn >> :
... Si pone solo una domanda molto semplice, come ricalcolare i conteggi del tempo (0, 1, 2, .... (15 minuti ciascuno)) al tempo "futuro"...
FutureTime=Time[0]+N*Period()*60;
где N - номер бара в будущее от нулевого.
Motivazione: