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
Ok, ieri ci siamo un po' sovraeccitati, immagino che anche tu abbia festeggiato come me la "Giornata delle guardie di frontiera".
Puoi darmi un link per la corretta sincronizzazione delle battute, perché anch'io uso questo metodo di sincronizzazione con l'ultima battuta e basta?
Non le darò un link (perché non l'ho ancora incontrato), ma le descriverò il metodo.
Il metodo riguarda la sincronizzazione di strumenti diversi, anche se può essere utilizzato per la sincronizzazione di TF diversi.
Mi sono occupato di questo problema per molto tempo e persino SD ha realizzato un bug-fix per i bug di questo metodo che ho identificato.
Il problema della sincronizzazione è legato al fatto che strumenti diversi hanno un numero diverso di barre. Approssimativamente lo stesso è un falso criterio, tutto deve essere esatto. Da barra a barra. Altrimenti si perde il significato di sincronizzazione.
Il secondo aspetto di questo problema è come visualizzare una barra se non c'è nessuna barra sullo strumento corrente?
L'essenza del metodo è semplice: i dati sullo strumento vengono richiesti rigorosamente per tempo...
e il campione di tempo viene preso dal buffer standard dell'indicatore time[]. In questo modo, si ha sempre la certezza di trovarsi di fronte a una barra che è arrivata in sincronia con una barra su un altro strumento.
Anche in questo caso, se non esiste una barra di questo tipo nello strumento corrente, non verrà richiesta. E se lo strumento richiesto non ha una barra di questo tipo come campione, si otterrà uno zero nel conteggio e si potrà normalmente gestire questa eccezione, a seconda della logica del programma.
Implementazione della sincronizzazione (in MQL4) per un numero qualsiasi di IF(da qui):
Per analogia per due simboli(da qui):
Cioè tutto è abbastanza semplice. Un'altra cosa è che la classica rappresentazione barometrica (discretizzazione a tempo costante) dei prezzi BP non è l'unica, e tanto meno è sempre corretta. A volte è estremamente utile sincronizzare i prezzi BP di un'altra dimensione temporale. Cioè, introducendo distorsioni non lineari dal punto di vista del tempo classico. Di conseguenza, la correlazione mostrerà interrelazioni non lineari di due VR classici.Grazie per l'aiuto!
Mi sono sbagliato, lo ammetto, non pensavo che la sincronizzazione fosse così complicata.
Cercherò di capirlo e di sincronizzare le barre direttamente su questo indicatore, dato che ne ho molto bisogno.
Grazie a tutti per le informazioni!
Ho riscritto un po'l'indicatore. Ora, presumibilmente, dovrebbe saltare le parti negative della storia.
Visto che abbiamo iniziato, vi prego di controllare gli errori :)
Ribadisco la necessità di un'ottimizzazione algoritmica per tutti gli indicatori. E anche per un meccanismo integrato di calcolo dei valori dell'indicatore in memoria (file), in modo che durante l'ottimizzazione del tester l'indicatore non calcoli la stessa cosa, ma prenda valori già pronti da lì.
L'ottimizzazione algoritmica per ogni indicatore è diversa. Per i diversi modi di utilizzare la correlazione, ho fatto, ad esempio, questo e questo.
La lettura a memoria dei valori degli indicatori calcolati in anticipo per l'intera storia è stata effettuata solo nella mia calcolatrice. Cioè, non ho un meccanismo universale, perché uso solo le mie soluzioni, che non sono affatto belle. Ma poiché sono per il miglioramento di tutto, sarebbe bello avere un meccanismo universale nel caso dell'ottimizzatore del tester MT5, perché dà un'accelerazione di diversi ordini di grandezza (esperienza di utilizzo nella mia calcolatrice), cioè supera Cloud in termini di efficienza.
Ciao a tutti
A volte passo il tempo a distorcere i codici di altri, di solito i risultati di un programma incompleto o incompleto, sia per mancanza di tempo che per mancanza di abilità.
Questa volta avrei cercato di distorcere questo meraviglioso indicatore, e ho provato a fare qualcosa del genere:
- Disegnare solo una linea, non una linea tratteggiata di tracciatura
- Per aggiungere un sacco di simboli come
Poi ho creato 2 varianti del codice sorgente:
- Variante visiva: una linea colorata per ciascuna delle coppie di valute correlazione 1 linea spessa che è solo la media di 7 linee ((A+B+C+D+E+F+G)/7)
- Nessuna variante visiva: 1 sola linea, che è il risultato della formula di cui sopra ((A+B+C+D+D+E+F+G)/7)
Quasi come se si aggiungessero 7 (o 8) indicatori di correlazione originali, ma tutti sommati in modo da ottenere solo le medie come con la versione, una delle quali è costituita da 7 linee + 1 (media), e l'altra versione con 1 linea (solo media).
Qualcosa del genere:
Per una serie di ragioni il codice confuso non fa quello che voglio a causa di errori completamente logici.
Il problema principale riguarda i buffer, la sincronizzazione e la rientranza ricorsiva del codice:
if(bars1>bars2) { minBars=bars2; bars2=bars1-bars2; etc...+ oltre ad altri errori logici.
sono state aggiunte alcune funzioni Print() per aiutare nel caso di tracciamento dei valori delle variabili e sono state commentate le istruzioni return 0 per trovare dove il codice fallisce logicamente.
codice e file