Aiuto del 6° grado Poly! - pagina 2

 
gooly:

Ciao dennisj2,

sei sicuro di aver davvero bisogno della tua formula?

Potresti provare prima a cercare altri filtri come Kalman, Ehlers, Gauss, Jurik (JMA), DEMA. La maggior parte di loro deriva dai filtri di frequenza passa-basso (fisici) e la maggior parte di loro ha trovato la sua strada nel codice di mt4.

Forse un JMA (ci sono molte varianti) con un periodo più lungo fa quello che stai cercando?



Hai qualche link che posso cercare?

 
dennisj2:



SDC - ora sei allo stesso livello in cui sono io - la formula di regressione lineare che ho trovato funziona - e ci sono due formule nettamente diverse che ho trovato che producono risultati identici. Queste formule sono ottime se la regressione lineare (una linea di tendenza dritta) è quello che stavamo cercando.

Prima, un po' di materiale di riferimento:

Microsoft: http://office.microsoft.com/en-us/excel-help/linest-HP005209155.aspx

IntegralCalc: https://www.youtube.com/watch?v=1pawL_5QYxE&noredirect=1


Data l'equazione di regressione lineare y = mx + b:

Dove y = prezzo, (ad esempio, Close[x])

e x = indice (ad esempio, Bar[x])

e m = Pendenza (il coefficiente applicato ad ogni coppia (x,y))

e b = Intercetta Y (il valore base dell'intercetta Y applicato ad ogni coppia (x,y))


Metodo A: Da IntegralCalcMetodo B: Da Microsoft (dove x(overbar) e y(overbar) sono mezzi)


Anche la formula della linea di tendenza della regressione polinomiale all'ennesimo grado è relativamente facile da applicare:

Data la formula: y = m1*x1 + m2*x2 + m3*x3 + ... + b

Dove le variabili x, y, m e b portano la stessa definizione descritta nell'equazione lineare.

Sembra che io abbia tutto, quindi cosa manca?

Quello che manca è il calcolo della m (pendenza) e della b (intercetta Y) per una regressione polinomiale; l'equazione lineare per calcolare questi valori non si applica a una regressione polinomiale. Da quello che ho imparato, la regressione polinomiale richiede una formula che calcola i minimi quadrati basati su un sistema di equazioni polinomiali usando una matrice. Guardate i grafici di esempio qui sopra. Nel primo grafico, le linee polinomiali (6) sono assolutamente immacolate - i massimi e i minimi sono chiaramente indicati. Con questi dati, sarò in grado di tenere i trade più a lungo di quanto non faccia oggi, raddoppiando, potenzialmente triplicando la mia media di pip per trade.

Nel secondo grafico, mostro i risultati del metodo poly(6) vs. il metodo i-regr che usa una matrice gauss per risolvere i coefficienti di pendenza - e, inutile dirlo, è abbastanza inutile a causa della latenza sostanziale del metodo. D'altra parte, una semplice media mobile è ancora peggio - la SMA è troppo sensibile durante le correzioni di mercato intermedie che potrebbero causare una reazione eccessiva del mio EA.

Sono disposto a pagare qualcuno per sviluppare un vero indicatore di regressione polinomiale - ma, i risultati devono assolutamente rispecchiare i risultati che Excel produce. La funzione LINEST() è una scatola nera dove viene usato molto voodoo per calcolare i coefficienti. Molto semplicemente, ho bisogno di capire questo voodoo.

Aggiornamento: ho allegato un file che mostra il metodo implementato in Excel.


Ho codificato una regressione lineare un po' di tempo fa, ecco il link al mio codice: Regressione lineare Non garantisco che sia corretto al 100% però, penso di aver identificato un problema con l'utilizzo dell'indice x zero nei calcoli che ho risolto qualche tempo dopo.

Ho codificato anche una versione mobile di questo, la versione mobile crea una parabola simile a una media mobile smussata perché a ogni barra disegna solo l'ultima coordinata della linea di regressione lineare.

Ho cercato di imparare come usare un poli nominale di 2° grado per la tua linea. Ho pensato che se possiamo farlo con una quadratica possiamo espandere che farlo con un 6° grado.

Leggerò i vostri link e vedrò se posso imparare qualcosa,

 
SDC:

Ho codificato una regressione lineare un po' di tempo fa, ecco il link al mio codice: Regressione lineare Non garantisco che sia corretta al 100% però, penso di aver identificato un problema con l'utilizzo dell'indice x zero nei calcoli che ho risolto qualche tempo dopo.

Ho codificato anche una versione mobile di questa, la versione mobile crea una parabola simile a una media mobile smussata perché a ogni barra disegna solo l'ultima coordinata della regressione lineare.

Ho cercato di imparare come usare un poli nominale di 2° grado per la tua linea. Ho pensato che se possiamo farlo con una quadratica possiamo espandere che farlo con un 6° grado.

Leggerò i vostri link e vedrò se posso imparare qualcosa,


SDC: Sono d'accordo - una quadratica potrebbe non essere sufficiente, ma tendo a credere che una cubica potrebbe essere sufficiente per estendere a gradi superiori.
 
dennisj2:


Hai qualche link che posso ricercare?

Basta cercare su Google: indicatore mt4

e poi uno dei nomi..

Può essere che tu aggiunga un filtro (passa-basso).

Alcuni sono nel codice base di mt4 - altri no e non dovremmo postare link esterni...

 
SDC: ho un altro link - potrebbe essere esattamente quello di cui abbiamo bisogno
 
Basta ricordare che la regressione è un adattamento di curva e come qualcuno ha già sottolineato le regressioni ridipingono. Non sono sicuro di quale valore predittivo abbia il puro adattamento della curva. Dai miei esperimenti il loro valore predittivo non era molto buono.
 
rocketman99:
Basta ricordare che la regressione è l'adattamento della curva e, come qualcuno ha già sottolineato, le regressioni ridipingono. Non sono sicuro di quale valore predittivo abbia il puro adattamento delle curve. Dai miei esperimenti il loro valore predittivo non era molto buono.



Rocketman,

Sono d'accordo con te in parte, nel senso che i modelli di regressione tendono a ridipingere le tendenze storiche e non sono molto affidabili. Questo è chiaramente il caso dell'indicatore i-regr - ho osservato questo indicatore dal vivo negli ultimi giorni e posso dire onestamente che questo indicatore non offre alcun valore per tre motivi: 1) è ipersensibile alle correzioni a breve termine, e 2) la sua grave latenza (con l'e-regr EA) nel momento in cui l'indicatore dipinge il punto di ingresso inferiore per le posizioni lunghe, o il limite superiore per le posizioni corte, il mercato si è spostato ben oltre i punti di ingresso e, nella maggior parte dei casi, è contrario alla tendenza del mercato, e 3) dalla sola osservazione, quando il mercato si è diretto verso l'alto, l'indicatore puntava verso il basso, e viceversa, quindi il suo utilizzo come indicatore di tendenza direzionale è affidabile al 50% nel migliore dei casi.

La settimana scorsa l'USDJPY era in bilico intorno all'area 102.35-102.50, i-regr ha mostrato una tendenza di mercato al ribasso (aveva curvato verso il basso e si stava muovendo più in basso), e-regr ha emesso un sell, poi l'indicatore appena 5 periodi dopo è passato a long e si è ridipinto come se fosse sempre stato long mentre l'USDJPY avanzava a 104.20)

A sostegno del punto che gli indicatori di tipo re-paint non offrono alcun valore e non sono affidabili - dato quello che ho visto lavorare con le librerie MQL4 disponibili, vi assicuro che capisco la frustrazione espressa da coloro che hanno lavorato con questi indicatori - dato quello che abbiamo, niente funziona. Detto questo, devo ancora vedere un indicatore di regressione polinomiale affidabile che calcoli fino al 6° grado. Vi assicuro anche che quando avremo una regressione polinomiale affidabile, i risultati saranno spettacolari.

 
dennisj2:



Rocketman,

Sono in parte d'accordo con te, nel senso che i modelli di regressione tendono a ridipingere le tendenze storiche e non sono molto affidabili. Questo è chiaramente il caso dell'indicatore i-regr - ho osservato questo indicatore dal vivo negli ultimi giorni e posso dire onestamente che questo indicatore non offre alcun valore per tre motivi: 1) è ipersensibile alle correzioni a breve termine, e 2) la sua grave latenza (con l'e-regr EA) nel momento in cui l'indicatore dipinge il punto di ingresso inferiore per le posizioni lunghe, o il limite superiore per le posizioni corte, il mercato si è spostato ben oltre i punti di ingresso e, nella maggior parte dei casi, è contrario alla tendenza del mercato, e 3) dalla sola osservazione, quando il mercato si è diretto verso l'alto, l'indicatore puntava verso il basso, e viceversa, quindi il suo utilizzo come indicatore di tendenza direzionale è affidabile al 50% nel migliore dei casi.

La settimana scorsa l'USDJPY era in bilico intorno all'area 102.35-102.50, i-regr ha mostrato una tendenza di mercato al ribasso (aveva curvato verso il basso e si stava muovendo più in basso), e-regr ha emesso un sell, poi l'indicatore appena 5 periodi dopo è passato a long e si è ridipinto come se fosse sempre stato long mentre l'USDJPY avanzava a 104.20)

A sostegno del punto che gli indicatori di tipo re-paint non offrono alcun valore e non sono affidabili - dato quello che ho visto lavorare con le librerie MQL4 disponibili, vi assicuro che capisco la frustrazione espressa da coloro che hanno lavorato con questi indicatori - dato quello che abbiamo, niente funziona. Detto questo, devo ancora vedere un indicatore di regressione polinomiale affidabile che calcoli fino al 6° grado. Vi assicuro anche che quando avremo una regressione polinomiale affidabile, i risultati saranno spettacolari.




Non sono un matematico, ma la mia esperienza con qualsiasi forma di regressione non è stata molto buona. Come hai notato ci sono molti modi per fare regressioni che possono alla fine risultare in un migliore adattamento statistico della curva. Ma la domanda rimane sul suo potere predittivo.

Se volete davvero andare sul duro con questa roba, allora dovete indagare su R e provare alcune delle regressioni avanzate disponibili (cercate su Google ARIMA, ARCH/GARCH ecc.): http://talksonmarkets.files.wordpress.com/2012/09/time-series-analysis-with-arima-e28093-arch013.pdf

Ho passato settimane su questa roba e ho anche studiato la cointegrazione e il mio successo è stato vicino allo zero.

Non credo che la codifica di MQL4 sia all'altezza di queste analisi statistiche avanzate.

 

beh, hmmm hmmm_00

I don't think MQL4 coding is up to the task for this advanced statistical analysis.

tutto può essere fatto in MQL, questo non è il fattore limitante. Sembra che il porting di una di questefonti sarebbe sufficiente:
http://rosettacode.org/wiki/Polynomial_regression

Risolvere una regressione P6 (polinomio di 6° grado) è risolvere un sistema di 6 equazioni con 6 variabili su una funzione numerica discreta, che forse non è semplice, ma non è impossibile da fare.

Posso guardare più tardi quale metodo viene usato esattamente in i_regr.mq4.

la mia esperienza con qualsiasi forma di regressione non è stata molto buona

Devo essere d'accordo, questo era il punto del mio primo commento. Perché... cosa stiamo facendo? Stiamo adattando una parte della curva casuale (l'attuale PA (Price Action)) a P6, in questo caso. E poi ci aspettiamo che il prossimo punto di PA si comporti come se fosse una continuazione di questa curva?

OK, sembra che Dennis stia usando questa curva come funzione di trasformazione a piccola latenza del PA, e questo ha un certo senso, tuttavia quanto può essere buono? Questo deve essere fatto su un TF più alto a causa del filtraggio del rumore, e non credo che sarà possibile evitare le perdite quando il PA entra in range, che è il problema con questo tipo di strategia di trading.


Questo indicatore non offre alcun valore per tre motivi: 1) è ipersensibile alle correzioni a breve termine, e 2) la sua grave latenza (con l'EA e-regr) nel momento in cui l'indicatore dipinge il punto di ingresso inferiore per le posizioni lunghe, o il limite superiore per le posizioni corte, il mercato si è spostato ben oltre i punti di ingresso e, nella maggior parte dei casi, è contrario alla tendenza del mercato, e 3) dalla sola osservazione, quando il mercato si è diretto verso l'alto, l'indicatore era rivolto verso il basso, e viceversa quindi il suo uso come un indicatore di tendenza direzionale è affidabile al 50% al meglio

Beh, l'i-regr non funziona così male. Per vederlo in azione, basta usare il backtest in modalità visiva di e-regr.mq4 e far cadere l'indicatore sulla finestra di test.
Credo che utilizzi una sorta di regressione o interpolazione veloce, ma il suo risultato non è così male. Segue il PA e si adatta alla curva.

I tuoi punti:
1) tutti gli indicatori sono. questo è di solito risolto con l'aggiunta di un altro tipo di indicatore come filtro, o più alto TF.
2) bene, con un migliore adattamento della curva la latenza migliorerà. ma il problema principale non è la latenza ma i criteri di entrata dell'e-regr. innesco di controtendenza sui bordi del canale a dimensione costante? senza un adeguato recupero per il cambio di tendenza? senza un vero money management? ridicolo.
la mia idea primaria sarebbe entrata/uscita sul cambio di direzione della curva di regressione, ma non sono ancora sicuro di come un indicatore completo di riverniciatura sarebbe buono per questo.

Comunque, ho avuto l'impressione che tu stia usando l'intersezione di due curve di regressione con diversi coefficienti di determinazione per l'entrata/uscita

 
T

Sì, come ha detto Graziani possiamo codificare qualsiasi cosa in mql4, tutto si riduce a quanto bene capiamo come implementare questa matematica.

Per quanto riguarda la riverniciatura, questo non sarà un problema, l'unica barra che ci interessa è la barra zero, la barra di trading del prezzo corrente. Il modo in cui lo codificherei (assumendo che possiamo capire la matematica) è che l'equazione sarà eseguita sui prezzi delle ultime n barre, il valore risultante per la barra zero sarà disegnato, la linea su tutte le barre precedenti sarà lasciata come era dal calcolo precedente. Per prima cosa, non c'è bisogno di riadattare l'intera linea a qualsiasi storia del grafico quando possiamo fare trading solo sulla barra zero e in secondo luogo mostrerebbe una storia reale di come la linea è stata applicata ad ogni barra quando era la barra del prezzo live.

Dal link Dennis Posted Polynominal Regression ho trovato questo molto interessante dal punto di vista di un indicatore adattivo.

"Nella regressione polinomiale, diverse potenze della variabile X (X, X2, X3...) sono aggiunte ad un'equazione per vedere se aumentano significativamente l'r2. Prima si fa una regressione lineare, adattando un'equazione della forma Y=a+bX ai dati. Poi si adatta ai dati un'equazione della forma Y=a+b1X+b2X2, che produce una parabola. L'r2 aumenterà sempre quando si aggiunge un termine di ordine superiore, ma la domanda è se l'aumento dell'r2 è significativamente maggiore di quello previsto a causa del caso. Successivamente, si adatta un'equazione della forma Y=a+b1X+b2X2+b3X3, che produce una linea a forma di S, e si verifica l'aumento di r2. Questo può continuare fino a quando l'aggiunta di un altro termine non aumenta r2 in modo significativo".

Questo potrebbe essere tutto quello che dobbiamo sapere per codificarlo, notate come l'autore scrive y=a+b1X+b2X2 invece di y=ax2+bx+c ? Questo era quello che mi confondeva, pensavo che c dovesse essere un coefficiente completamente diverso. Da questo articolo risulta che i coefficienti c,d,e,f,g in y=ax6+bx5+cx4+dx3+ex2+fx+g sono direttamente legati a b che sappiamo già dalla regressione lineare, è la pendenza.

Detto questo, trovo difficile credere che sia davvero così semplice? Perché dovrebbero scrivere a,b,c,d,e,f,g, coefficienti se davvero può essere scritto come y=a+b1X+b2X2+b3X3+b4X4+b5X5+b6X6? Inoltre, come ha detto Dennis, altri articoli sembrano suggerire che l'intercetta della pendenza come in una regressione lineare non si applichi alla regressione poli. A volte mi chiedo se non si inventino queste cose man mano che vanno avanti.

A parte questo, l'articolo sembra implicare che r2 possa essere usato per misurare quanto bene la linea si adatti alla curva dei dati mentre stiamo testando gli aumenti di grado dell'equazione della polilinea,

Sto pensando che r2 potrebbe avere qualcosa a che fare con la varianza? Qualcuno può dire cosa sia r2 con certezza?