Aiuta a scrivere una regressione lineare - pagina 2

 
kvn писал (а): QUINDI DOV'È L'ERRORE [...] ???????
DNA?
 
kvn:
Non voglio discutere di LR. QUINDI DOV'È L'ERRORE NEL CODICE DELL'INDICATORE???????
Chi diavolo lo sa. Nessuno sa quale algoritmo state cercando di implementare. Prima scrivi un'idea, poi delle formule, e poi una spiegazione - questo pezzo di codice fa questo e quello. E nessuno indovinerà.
 
ancora una volta
come viene calcolato LR
//L'indicatore è calcolato con la formula:LR = at+b
//dove LR - prezzo di chiusura"medio" previsto,
//t - punto nel tempo,(n1 variabile nell'indicatore)Pt - prezzo di chiusura degli ultimi n periodi.(Close[n2])
//a = (n*SUMM(t*Pt) -SUMM(t)*SUMM(Pt))/(n*SUMM(t^2) - (SUMM(t))^2) - angolo tangente della linea di regressione,
//b = 1/n*(SOMMA(Pt) - a*SOMMA(t)), - spostamento orizzontale}

codice dell'indicatore di cui sopra.

Calcola da n=1 a 100 in modo errato, poi esce n=22 e il risultato è corretto, penso che il ciclo sia scritto male, ma non so dove.
 
Sembra che non sia sincronizzato. Per la barra n x ci vogliono nn, con l'indice per y che è
n2=n+n1-1 = n+nn-1
Ci sono molti indicatori di regressione nelle vicinanze, per esempio https://forum.mql4.com/ru/10446/page39, se li cerchi tutti, è meglio navigare dalla fine.
 
Posso solo dedurre una formula:
 
lna01:
Sembra che non sia sincronizzato. Per la barra n x prende nn, con l'indice per y che è
n2=n+n1-1 = n+nn-1

E in generale
ci sono molti indicatori di regressione nelle vicinanze, per esempio
https://forum.mql4.com/ru/10446/page39, se li cercate tutti.
è meglio iniziare dalla fine.


n1 non è uguale a nn ma varia da 1 a nn - il periodo dell'indicatore.
e n - numero di barre da ricalcolare (per lavorare più velocemente e senza tirare tutta la coda)

In generale https://forum.mql4.com/ru/10446/page39 non è una regressione lineare ma piuttosto una derivata della MA.
 
kvn:
lna01:
Sembra che non sia sincronizzato. Per la barra n x prende nn, con l'indice per y che è
n2=n+n1-1 = n+nn-1

n1 non è uguale a nn ma varia da 1 a nn - periodo dell'indicatore.
e n è il numero di barre da ricalcolare (per lavorare più velocemente e non trascinare tutta la coda)

In generale https://forum.mql4.com/ru/10446/page39 non è una regressione lineare ma piuttosto una derivata della MA.
Beh, che diamine, supponiamo che la LR sia deliberatamente spostata di un punto. Propongo questo: sostituire l'espressione complicata
b=(1/nn)*(ssm3-a*ssm2);
sostituire con
b=(1.0/nn)*(ssm3-a*ssm2);
(l'errore principale era qui).
E se lo spostamento non è necessario, sostituire con
LR=a*nn+b;
a
LR=a+b;
Dopo questo, confronta ciò che viene disegnato da questo indicatore con quello di at_LR0. mq4 e cerca di scoprire perché non è una derivata della MA e come liberarsi correttamente della coda.

P.S. Per non perdere tempo con i parametri, lasciate che gli indicatori siano collocati sul grafico orario e impostate il periodo del vostro indicatore su un altro.
 
(l'errore principale era qui).
GRAZIE mille per la dritta, non l'avrei mai detto, peccato che non sia scritto nel manuale della lingua.
Si scopre che ogni volta che una delle variabili è un intero, la costante deve essere scritta come un numero frazionario. Lo terrò presente.
E per quanto riguarda il DR o no, è una questione privata.
Metti il mio indicatore sul grafico e fai attenzione ai punti di flessione della linea. È sempre la fine della tendenza e non è un cattivo punto di uscita.
E la sua intersezione con il MA (qualsiasi) è anche bella.

Sarei molto grato di ricevere informazioni su come rendere l'indicatore più veloce, come aumentare la velocità di MT.
E forse qualcuno sa dove sono le informazioni sulla velocità di esecuzione dei vari operatori MT (per esempio, quanti cicli di clock vengono eseguiti nei diversi operatori del ciclo).
 
kvn:
(l'errore principale era qui).
GRAZIE mille per la dritta, non l'avrei mai detto, ma è un peccato che non sia scritto nel manuale della lingua.
Si scopre che ogni volta che una delle variabili è un intero, la costante deve essere scritta come un numero frazionario. Capito.
Se ti riferisci al casting, è descritto in MQL4 e in tutti gli altri linguaggi di programmazione.
 
kvn:
Inoltre, sarei molto grato per qualsiasi informazione su come rendere il giradischi più veloce, come aumentare la velocità MT.
E se qualcuno sa se c'è qualche informazione sulla velocità di esecuzione delle diverse dichiarazioni di MT (per esempio quanti cicli di clock vengono eseguiti).
Come per MT, è utile per l'utente cercare di ridurre al minimo il numero di buffer di indicatori. Le velocità di esecuzione degli operatori vengono solitamente apprese in modo indipendente utilizzando gli operatori Print e GetTickCount. Anche se sarebbe gradito che qualcuno digerisse questo e pubblicasse un articolo.