Ho fatto una di queste cose una volta ... - pagina 8

 
Candid:
La maggior parte delle volte il motivo dell'arresto del calcolo è la divisione per zero, bisogna solo avere pazienza (se il codice è lungo), caricare la ricerca "/" e inserire stupidamente il controllo del divisore per zero ovunque e stampare un messaggio di errore se 0....

Ho provato a sostituire il valore minimo, l'indicatore esplode (come il tasso di cambio eurodollaro in 5 minuti, sei cifre) l'algoritmo è iterativo, ho iniziato a controllare con matcad, ma non è 0, è un numero immaginario, L'algoritmo itera e comincia a controllare con matcad, ma non è 0, è immaginario, a matcad non interessa, e ho rinunciato subito e non ne vale la pena, per questo ho scritto, l'ho portato a un limite ragionevole, mi basta, ho capito come funziona, come eseguirlo e come interpretarlo...

Non credo che sia sufficiente per il trading manuale, ho molte idee, voglio provarlo, voglio vedere, testarlo, ma questo Kalman non è l'unico.

Ho un'idea per un controllo di livello circolare, penso che lo proverò domani, forse verrà fuori qualcosa di interessante, non riesco più a dormire, il caldo sta diventando troppo caldo, il mio cervello si sta sciogliendo

Spero che se alexei (matematico) ha seguito il messaggio non menta.

 
Prival:

Ho provato a sostituire il valore minimo, l'indicatore esplode (come il tasso di cambio eurodollaro in 5 minuti, sei cifre) l'algoritmo è iterativo, ho iniziato a controllare con matcad, ma non è 0, è un numero immaginario, L'algoritmo itera e comincia a controllare con matcad, ma non è 0, è immaginario, a matcad non interessa, e ho rinunciato subito e non ne vale la pena, per questo ho scritto, l'ho portato a un limite ragionevole, mi basta, ho capito come funziona, come eseguirlo e come interpretarlo...

Non credo che sia sufficiente per il trading manuale, ho molte idee, voglio provarlo, voglio vedere, testarlo, ma questo Kalman non è l'unico.

Ho un'idea per un controllo di livello circolare, penso che lo proverò domani, forse verrà fuori qualcosa di interessante, non riesco più a dormire, il caldo è troppo, il mio cervello si sta già sciogliendo

Spero che se alexei (matematico) ha seguito il messaggio non abbia mentito finora.

A volte c'è della spazzatura nel flusso dei prezzi.

Personalmente raccomando di non fidarsi ciecamente delle serie temporali.

In Mt5 questo problema è ancora più grave.

Ecco perché la "divisione per zero" avviene in un luogo impensabile...

;)

 
Prival:

esattamente 0, sì c'è una divisione, ... Ho provato a sostituire il valore minimo, l'indicatore esplode (come il tasso di cambio eurodollaro in 5 minuti di lavoro è una cifra a sei cifre) l'algoritmo è iterativo,

Naturalmente non conosco tutta la specificità dell'indicatore, ma è più logico in questa situazione, basta saltare un passo, cioè ripristinare lo stato all'inizio dell'iterazione fallita e iniziare la prossima da essa.
 
Prival:

Ho provato a sostituire il valore minimo, l'indicatore esplode (come il tasso di cambio eurodollaro in 5 minuti, sei cifre), l'algoritmo è iterativo, Ho iniziato a controllarlo con matcad, ma non è 0, è un numero immaginario, matcad se ne frega, ma dovrei scrivere una libreria in MQL che fa girare matrici di numeri immaginari e mi sono arreso subito.

Perché non fare qualcosa di più semplice - semplicemente importare le citazioni in Matcad e scrivere lì un semplice tester per calcolare le statistiche - senza essere coinvolti in MQL?

Se l'algoritmo funziona su una storia più o meno lunga - riscriverlo in MQL non sarà un problema.

 
Candid:
Sono d'accordo che lo zig-zag non è esattamente una prova diretta dei livelli "tondi". Non è davvero facile capire come ottenere queste statistiche. Tuttavia, l'effetto dei livelli 00 si sente a zig zag, quindi possiamo essere d'accordo che c'è un effetto, ma la questione della sua forza rimane aperta.

Il picco in 00 naturalmente ha luogo, ma il crollo nei prossimi 6 valori è abbastanza evidente. E il calo del 99 compensa quasi completamente questo picco. IMHO, spostare il mercato di 1 punto per raggiungere il livello rotondo sembra essere abbastanza possibile per i market maker. La domanda è: vale la pena prestare attenzione?
 

A proposito, sì, ho in qualche modo dato meccanicamente la figura, ma la situazione con 99, 00 e 01 mostra una chiara asimmetria rispetto a su e giù, il che è strano. Una costruzione più vicina dà un diagramma leggermente diverso.


Ahimè, nessuna traccia dell'effetto.

 
Candid:

A proposito, sì, ho in qualche modo dato meccanicamente la figura, ma la situazione con 99, 00 e 01 mostra una chiara asimmetria rispetto a su e giù, il che è strano. Una costruzione più vicina dà un diagramma leggermente diverso.


Ahimè, nessuna traccia dell'effetto.


Puoi dirmi di più su cos'è questo grafico e come è costruito?
 
Prival:

Puoi spiegare più in dettaglio che tipo di grafico è e come è costruito?

I dati al momento di fissare il vertice ZZ sono registrati così:

              IExt = CurMax*100;
              CExt = MathRound(CurMax*10000);
              FileWrite(h,Time[Bars-CurMaxBar],CExt-IExt*100);

              ...

              IExt = CurMin*100;
              CExt = MathRound(CurMin*10000);
              FileWrite(h,Time[Bars-CurMinBar],CExt-IExt*100);

Ho poi importato il file in Matlab e ho tracciato la distribuzione. Probabilmente può essere costruito anche in matcadab.

A proposito, può anche essere costruito nel terminale, l'induke è nell'allegato


P.S. Sarebbe bello aggiungere questa linea all'intestazione.

#property indicator_minimum 0.0
File:
 

Da quanto ho capito, questo test mostra dove lo zigzag si rompe più spesso. Vicino al livello o no. Ma questo è un test dello zigzag ma non della performance (significatività) dei livelli circolari.

Lo zigzag non c'entra per niente. Mi sembra che dovremmo controllare dal punto di vista dell'efficienza per entrare nel mercato; c'è un tale indicatore https://www.mql5.com/ru/forum/126953/page10

Spiegherò qui nella figura


Ho preso il livello circolare 1.29 come esempio

  1. Prendiamo il caso più semplice. Senza alcun filtro. Il prezzo ha rotto il livello verso l'alto - compriamo. Sul grafico, è il punto 1 e 2 (ci sono più punti, ho scelto due, per non sovraccaricare la figura)
  2. l'uscita dopo 1 ora, non è importante, possiamo prendere un altro numero. La cosa principale è la stessa per tutti, questo parametro dovrebbe essere fissato altrimenti ci sarà ambiguità nell'analisi delle statistiche dei risultati.
  3. per il tempo di esistenza dell'affare sul mercato, dal punto 1 al punto 1-1, fissare (ricordare) il punto di prezzo massimo e minimo, così come il valore dell'affare stesso, tutto in punti.
  4. Corriamo attraverso la storia e memorizziamo tutti questi dati. Usandoli, calcoliamo l'efficacia dell'entrata, dell'uscita e l'efficacia della transazione. Calcolare la media.
  5. Ripetere gli stessi passi da 1 a 4 per la vendita.

Ora prendiamo altri livelli 00+10, 00+20.... ecc. otteniamo statistiche per ogni livello e confrontiamo queste statistiche con zero = livello arrotondato.

Per i punti estratti.

#1 drawdown 10 punti = punto di entrata - minimo,

Efficienza di uscita (massimo - punto di uscita = 8 pip)

Valore del profitto (uscita - punto di entrata = 22 pip)

Gamma di movimento (max-min=38 pip)

Al punto numero 2, il drawdown sarà = 0, perché (entrata = minimo), questa è l'entrata perfetta, non c'è di meglio, il prezzo non è andato contro di voi un solo pip.

S.I., è così che bisogna controllare, + il numero di punti di ingresso dovrebbe essere grande, quello che sarebbe un risultato statisticamente significativo.

 

Beh, si potrebbe fare qualcosa del genere, poi si potrebbe fare con le opzioni senza gli input extra sul chiacchiericcio intorno al livello. Mi chiedo se ci saranno dei volontari per scrivere un esperto? :)

A proposito, tornando a questo argomento, potrebbe essere solo l'algoritmo dell'insieme di base degli input-output. Devo pensarci, forse vale davvero la pena dare un'occhiata.