Guarda come scaricare robot di trading gratuitamente
Ci trovi su Twitter!
Unisciti alla nostra fan page
Script interessante?
Pubblica il link!
lasciare che altri lo valutino
Ti è piaciuto lo script? Provalo nel Terminale MetaTrader 5
Script

RepaintTest - measure whether a drawing indicator repaints - script per MetaTrader 5

Yogeswaran Suppiah
Yogeswaran Suppiah
Independent MetaTrader developer based in Malaysia, publishing chart analysis tools for discretionary traders. On MQL5 since 2015.
| Italian English Русский 中文 Español Deutsch 日本語 Português 한국어 Français Türkçe
Visualizzazioni:
20
Valutazioni:
(2)
Pubblicato:
Freelance MQL5 Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance

Quasi tutte le descrizioni degli indicatori contengono l'espressione "non-repainting". Quasi nessuna contiene un valore numerico. L'espressione non può essere falsa, poiché non è associata ad alcuna procedura: sia uno sviluppatore che non ha mai verificato, sia uno che ha effettuato verifiche approfondite scrivono la stessa frase. Questo script sostituisce l'espressione con un valore numerico.

L’invariante

Una volta che una barra si è chiusa ed è stata elaborata, nessun oggetto disegnato dall’indicatore su di essa può mai cambiare. Non deve spostarsi, non deve cambiare colore, non deve cambiare il proprio testo e non deve scomparire. Si tratta di un’affermazione che può risultare falsa, ed è proprio questo che la rende degna di essere verificata.

Metodo

Si inserisce un simbolo personalizzato con una porzione iniziale di dati storici reali, si applica l’indicatore tramite un modello e si registra ogni oggetto da esso disegnato. Vengono aggiunte altre barre e il grafico viene sottoposto a un ricalcolo completo, in modo che l’indicatore ricostruisca ogni oggetto da zero su un arco temporale più lungo. Ogni oggetto del passaggio precedente che si trova su una barra già chiusa viene quindi ricercato nel nuovo passaggio e confrontato campo per campo: entrambi i tempi di ancoraggio, entrambi i prezzi di ancoraggio, il colore e il testo. Ripeti l’operazione per tutti i passaggi richiesti.

Una ricostruzione completa è un test più impegnativo rispetto a un tick incrementale. L’indicatore deve riprodurre una mappa identica a partire da una cronologia più lunga, utilizzando indici di array diversi, senza alcun ricordo di ciò che ha tracciato l’ultima volta. Questo è esattamente ciò che un utente innesca scorrendo indietro abbastanza a lungo da consentire al terminale di recuperare barre più vecchie, ed è qui che i nomi degli oggetti basati sull’INDICE della barra, anziché sul TEMPO della barra, falliscono.

Cosa conta

Le modifiche e le sparizioni vengono conteggiate separatamente, e solo una modifica implica che l’affermazione sia falsa. La maggior parte degli indicatori di disegno elimina intenzionalmente i vecchi oggetti una volta superato un limite massimo, quindi una sparizione è solitamente dovuta alle vostre impostazioni di MaxObjects o HistoryBars piuttosto che a un difetto. Eseguite il test con tali limiti disattivati.

Un'esecuzione che non ha effettuato alcun confronto viene segnalata come INCONCLUSIVA, mai come superata. Il bug più pericoloso che un framework di test possa presentare è segnalare il successo in un'esecuzione vuota, poiché è proprio quel numero che finisce per essere citato.

L'output è un file CSV in MQL5\Files, con una riga per simbolo, timeframe e passo, contenente il conteggio degli oggetti confrontati, modificati e scomparsi, nonché il primo oggetto in errore. Sommando i valori della colonna marks_compared si ottiene il numero che è possibile pubblicare, insieme al file che lo conferma.

Utilizzo

1. Impostare Prefix sul prefisso del nome dell’oggetto del proprio indicatore. Elencare in Exclude tutto ciò che cambia per impostazione predefinita: una legenda ridisegnata ad ogni tick, un timer per il conto alla rovescia. Questi non sono «marks». Dichiararli qui è più onesto che filtrarli silenziosamente.

2. Associa il tuo indicatore a un grafico con tutte le limitazioni di disegno disattivate e salva quel grafico come modello. Imposta “Modello” su di esso.

3. Aumentare il valore di “SettleMs” finché il conteggio dei marcatori al primo passaggio smette di variare tra un'esecuzione e l'altra. Un valore troppo basso non produce errori, ma causa sparizioni fantasma.

4. Rompete qualcosa di proposito una volta: spostate un oggetto di una barra e verificate che lo script lo segnali, indicando il nome del campo. Un sistema di test che non avete mai visto fallire non è ancora una prova.

Cosa non vi dirà

Se l’indicatore sia accurato o se i suoi segnali siano attendibili. Risponde a una domanda ben precisa, ed è l’unico motivo per cui la risposta ha qualche valore.

Due test che sembrano test ma non lo sono, entrambi provati e scartati prima di questo: lo Strategy Tester, dove gli oggetti di un indicatore basato su iCustom non sono affatto enumerabili da un EA su MT4; e la variazione dell’input HistoryBars dell’indicatore stesso su un grafico in tempo reale, che modifica il punto di inizio del ciclo ma lascia inalterati rates_total e ogni indice dell’array, per cui il tipo di bug che questo test dovrebbe individuare non viene mai messo in evidenza.

Gratuito e senza necessità di attribuzione. Se individua qualcosa nel vostro codice, sarei lieto di sapere di cosa si tratta.

Risultato del RepaintTest: 199.984 controlli di invarianza, 0 modificati, 0 scomparsi

Come funziona il test: inserire dati iniziali, aggiungere barre, forzare una ricostruzione completa, confrontare

Tradotto dall’inglese da MetaQuotes Ltd.
Codice originale https://www.mql5.com/en/code/76632

Sniper Gold Hybrid Recovery EA Sniper Gold Hybrid Recovery EA

EA per il recupero del basket XAUUSD su timeframe M15 con spaziatura ATR adattiva, verifica della struttura LL/LH, gating dinamico dell’RSI, rilevamento dei crolli, filtro delle notizie e ottimizzazione intelligente delle operazioni.

Volume Profile Levels Indicator Volume Profile Levels Indicator

Crea un istogramma del volume orizzontale su una finestra di analisi retrospettiva recente e contrassegna il Punto di Controllo (POC) e l'Area di Valore utilizzando l'algoritmo standard TPO/volume per l'espansione dell'area di valore — non solo il POC ± un offset fisso. Viene aggiornato una volta per ogni nuova barra e visualizzato come barra laterale accanto al prezzo.

Support Resistance zig zag based Support Resistance zig zag based

"Support Resistance zig zag based" è un indicatore di Price Action progettato per tracciare in modo automatico e dinamico sul grafico i livelli di supporto, resistenza e le aree di transizione (Flip Zones). Si concentra esclusivamente sulla rappresentazione chiara della struttura dei prezzi e sull’evidenziazione delle principali aree di rimbalzo (SBR e RBS). Include inoltre un pannello di controllo interattivo per monitorare in tempo reale l’andamento del mercato.

iFVG Indicator With Signals iFVG Indicator With Signals

iFVG Indicator With Signals