Indicator Test Report MT4
- Utilità
-
Narayanan Mohanan Mohanan Krishnan
Costruisco strumenti di misura per MetaTrader. Descrivono ciò che il mercato ha fatto e dichiarano i limiti di ogni misurazione anziché nasconderli. - Versione: 3.10
Indicator Test Report per MetaTrader 4: un verificatore di repaint MT4 e un tester di indicatori che mostra come si comporta effettivamente qualsiasi indicatore
Non è possibile vedere l'interno di un indicatore compilato. L'Indicator Test Report carica qualsiasi indicatore – acquistato, scritto o integrato in MetaTrader – e risponde alla domanda che una descrizione non può: ridipinge, quanta cronologia ha bisogno e cosa pubblica realmente? Riporta il comportamento. Non classifica.
Carica qualsiasi indicatore nello Strategy Tester e ottieni un rapporto in linguaggio semplice su dodici aspetti del suo comportamento: quanti buffer pubblica, quanta cronologia ha bisogno prima che i suoi valori abbiano un significato, se i valori sulle barre chiuse cambiano mai in seguito e quanto costa leggerli.
Non esiste alcun punteggio, nessun punteggio minimo e nessun verdetto sulla validità di un indicatore: solo ciò che è stato osservato e ciò che dimostra e non dimostra.
Cosa risponde
1. Buffer.Quante serie di dati numerati l'indicatore pubblica effettivamente e l'indice più alto che risponde. Questo è spesso più di quanto mostrato dal grafico: un indicatore a due righe può pubblicare sei buffer e una lettura EA per indice necessita del numero reale. Laddove gli indici non sono contigui, lo dice il rapporto: l’indicizzazione tramite conteggio leggerebbe la serie sbagliata.
2. Stato di calcolo.Quante barre ha calcolato il target rispetto a quante ne esistono. Zero con buffer popolati è uno stato reale, denominato, non un errore.
3. Stabilità a barra chiusa.Il primo valore visualizzato per ciascuna barra viene congelato, quindi confrontato con ogni lettura successiva. Se un valore su una barra già chiusa cambia successivamente, il report fornisce l'ora della barra, l'indice del buffer ed entrambi i valori. Una barra di corrente in movimento non viene ridipinta: ricalcolare la barra di formazione è corretto e auspicabile. Ciò che conta è una barra chiusa il cui valore successivamente cambia.
4. Riscaldamento.Il numero di barre necessarie a ciascun buffer prima di mantenere qualsiasi valore, misurato sulle barre più vecchie disponibili anziché nella finestra recente in cui ogni risposta sarebbe zero. I buffer differiscono legittimamente: una linea di segnale necessita di più cronologia della serie che livella. Le prime cinquanta barre sul grafico potrebbero non essere ancora significative.
5. Sfarfallio del segnale intrabar.Se la barra di formazione lampeggia tra vuoto e un segnale numerico prima della chiusura. Normale per un indicatore di segnale; è importante se il tuo EA agisce sulla barra di formazione.
6. Costo di accesso al buffer.Il costo in microsecondi per il recupero dei valori, per barra, in modo da poter preventivare un EA che legga diversi valori per tick. Cifre relative per confrontare gli indicatori, non numeri VPS assoluti.
7. Dominio di uscita.Il valore più piccolo e più grande emesso da ciascun buffer, fino a sedici cifre decimali, per il dimensionamento delle soglie in un EA. Questi sono gli intervalli osservati, mai quelli possibili.
8. Persistenza del segnale.Per frecce, punti e bandierine: se sulla barra di formazione appariva un valore, era ancora lì alla chiusura? Le linee continue ottengono un punteggio del 100% in base alla costruzione e sono contrassegnate come tali, perché quel numero è aritmetico piuttosto che un risultato.
9. Valori non numerici.Se un buffer ha emesso un valore che non è un numero. Ogni confronto con un NaN è falso, inclusi maggiore e minore di, quindi un test di soglia non viene mai attivato e non segnala errori, e qualsiasi operazione aritmetica che ne tocca uno produce a sua volta NaN. Questo è un difetto del bersaglio ed è invisibile a una guardia contro cui è scritto EMPTY_VALUE solo.
10. Impronta dell'oggetto cartografico.Quanti oggetti sulla carta sono apparsi durante la corsa del bersaglio e, su una carta in tempo reale, quanti erano ancora lì dopo che è stato rimosso. Gli indicatori di pannello, zona e dashboard disegnano con oggetti anziché buffer, quindi per questi prodotti ogni altro controllo misura la metà vuota. Un indicatore che non pulisce lascia detriti che rimuovi a mano.
11. Dipendenza dal modello.Eseguire due volte modificando solo il modello del tester. Ogni tick e OHLC a 1 minuto sono percorsi di prezzo simulati diversi, quindi un indicatore che reagisce deliberatamente al movimento intrabar può legittimamente differire. È importante quando i valori target dichiarati a barra chiusa sono definitivi.
12. Dipendenza dalla storia.Esegui due volte modificando solo l'intervallo di date. Una differenza significa che il target riporta valori diversi per la stessa barra a seconda di quanta storia l'ha preceduta: il difetto che rende un backtest in disaccordo con un grafico in tempo reale.
Provalo su qualcosa che già conosci
Legge qualsiasi cosa raggiungibile iCustom, inclusi gli indicatori di MetaTrader. Puntalo su ZigZag: tutti sanno che ZigZag ridipinge e il rapporto ti mostrerà le barre che sono cambiate ed entrambi i valori. Puntalo verso Ichimoku e osserva le due campate spostate nel futuro comportarsi in modo diverso dalle tre che non lo sono. Confrontare lo strumento con un indicatore di cui già conosci il comportamento è il modo più veloce per decidere se fidarti di uno che hai appena acquistato - e non costa nulla.
Come è stato testato questo strumento
Ogni controllo è stato verificato rispetto a indicatori appositamente creati che si comportano male deliberatamente: uno che riscrive ogni barra della sua cronologia a ogni tick, uno che emette valori non numerici, uno che necessita di 399 barre di riscaldamento, uno che lascia dietro di sé gli oggetti del grafico quando viene rimosso. I controlli li hanno colti, con i tempi delle barre e i valori prima e dopo. Uno strumento che riporta gli indicatori di altre persone dovrebbe essere in grado di dire come è stato testato.
Anche i motori funzionano l'uno contro l'altro. Lo stesso indicatore misurato su MetaTrader 4 e MetaTrader 5 concorda su dieci dei dodici controlli; i due che differiscono sono i fatti della piattaforma, etichettati nel rapporto: MetaTrader 4 non ha BarsCalculated e non c’è modo di scaricare un indicatore in anticipo, quindi quei controlli dicono ciò che non possono misurare invece di riportare un comodo zero.
Se scrivi indicatori invece di acquistarli
Lo stesso rapporto risponde a una domanda diversa: cosa fa effettivamente il mio prodotto e posso dirlo nella descrizione? L'affermazione secondo cui i valori a barra chiusa sono definitivi vale di più quando si arriva con il numero di confronti dietro di esso - ed è meglio trovare tu stesso un ridipingere piuttosto che farlo trovare a un revisore.
Eseguilo su entrambe le piattaforme e la coppia ti mostrerà dove le tue build MT4 e MT5 divergono: diversi conteggi di buffer, un riscaldamento che si è spostato, un valore che cambia su uno e non sull'altro. Questa divergenza normalmente ti arriva come una recensione a una stella da parte di qualcuno che li ha acquistati entrambi.
Lo snippet generato è la documentazione di integrazione che altrimenti scriveresti a mano: ogni buffer ha un nome, con il suo riscaldamento, il suo intervallo e se si svuota. Spediscilo o incollalo nella tua descrizione. È il comportamento del tuo prodotto, misurato, non un'affermazione.
Cosa non fa
Non ti dirà se un segnale ha un vantaggio, se vale la pena acquistare un indicatore o se una strategia è redditizia. Non classifica, non classifica né classifica. Non legge il codice sorgente, ma solo il comportamento osservabile attraverso l'interfaccia buffer documentata. Esegue il target sui propri input predefiniti.
Una constatazione non è un difetto
Il repaint, un lungo riscaldamento, il movimento intrabarra e gli oggetti cartografici sono scelte di progettazione e molti buoni indicatori li realizzano deliberatamente. Questo strumento misura ciò che è accaduto; solo la descrizione del venditore può dire se era previsto. Ogni segnalazione riporta quella frase, e un'altra: se qualcosa ti sorprende, chiedi allo sviluppatore. Una segnalazione è una buona domanda da porre a un venditore. Non è una prova da pubblicare contro di loro, e non è stata concepita per esserlo.
Un risultato pulito non è una prova
Ogni Indicator Test Report lo dice nel proprio testo. Una corsa è un simbolo, un intervallo di tempo, un periodo, un modello di tester. Il rapporto afferma che i controlli di una determinata esecuzione non possono essere testati: un'esecuzione con troppo pochi tick non può testare il comportamento intrabar, e lo dice invece di riportare un comodo zero. L'assenza di un'osservazione non è prova dell'assenza.
Ogni rapporto termina con un riepilogo in una schermata di tutti e dodici i controlli, oltre a una tabella di ogni esecuzione precedente sullo stesso obiettivo, in modo che diverse analisi in condizioni diverse possano essere lette come un insieme.
Ingressi
- Nome dell'indicatore— il target, esattamente come appare nel Navigatore, inclusa la sua cartella. Un prodotto di mercato si trova sotto Market\ e il proprio nome; gli esempi MetaTrader di seguito Examples\. Sbagliare questo punto è l’unico errore che ferma la corsa, e il rapporto lo dice in un linguaggio semplice invece di fallire in silenzio.
- Prima aspetta questo numero di battute- il rapporto non inizia finché il grafico non contiene così tanta storia. Predefinito 500.
- Sbarre chiuse da tenere d'occhio per il repaint- quanto indietro nel tempo ogni segno di spunta viene riletto e confrontato. Questa è la profondità del controllo 3. Default 300.
- Nuove barre da guardare prima di riferire — la dimensione del campione.La corsa termina dopo che queste barre si sono chiuse, quindi un numero più piccolo è un test più debole, non una scorciatoia. Predefinito 200.
- Cronologia massima da sondare per il riscaldamento— quanto indietro cercare il primo valore reale su ciascun buffer. Predefinito 10000.
- Tolleranza per i controlli numerici di repaint— al di sotto di questo limite una differenza viene trattata come rumore in virgola mobile anziché come variazione. Si adatta alla grandezza dei valori, quindi una serie di prezzi e una serie di volumi vengono giudicate agli stessi termini. Predefinito 0.00000001.
- Linea di base: Auto/Blocca/Reimposta- decide con cosa confrontare una seconda esecuzione. Auto è ciò che la maggior parte delle persone intende quando esegue un target due volte: la prima esecuzione imposta il riferimento e le successive eseguono il confronto senza sostituirlo. Automatico predefinito.
- Esegui etichetta- come dichiari cosa hai cambiato tra due esecuzioni. MetaTrader non fornisce a un programma alcun modo per vedere quale modello di tester è in esecuzione, quindi l'etichetta è l'unico modo in cui il report può distinguere una modifica del modello da una ripetizione.
- Nome visualizzato di destinazione— un nome leggibile per l'intestazione del rapporto. Accanto viene comunque visualizzato il percorso del file, poiché un nome visualizzato non deve mai sostituire l'identità di ciò che è stato misurato.
- Scrivi uno snippet EA pronto all'uso— attivato per impostazione predefinita. Disattivalo se desideri solo il rapporto.
- Prefisso del file di output— consente a due esecuzioni sulla stessa destinazione di scrivere su file separati invece di condividere un riepilogo.
Cosa mostrano gli screenshot
- L'istantanea.Tutti e dodici i controlli su un'unica schermata: ogni esecuzione termina con questo blocco, qualunque altra cosa contenga il rapporto.
- Una scoperta.Una barra chiusa il cui valore è cambiato, con il tempo della barra ed entrambi i valori. Questo è lo scopo dello strumento; il resto è contesto.
- Entrambe le piattaforme.Lo stesso indicatore misurato su MetaTrader 4 e MetaTrader 5, quindi i due report possono essere confrontati riga per riga.
- Un rifiuto onesto.Una corsa che non può testare qualcosa e lo dice, invece di stampare uno zero che potrebbe essere letto come un passaggio.
- Lo snippet generato.Un pronto per l'uso .mqh file scritto dall'esecuzione, con ogni buffer denominato e una funzione di lettura già attiva.
Leggendo gli screenshot
L'ambra non è rossa.Un verdetto color ambra significaè stato riscontrato un comportamento ed ecco le prove, nonquesto indicatore è rotto. Il repaint, un lungo riscaldamento e gli oggetti grafici sono scelte di progettazione e molti buoni indicatori li fanno deliberatamente: il rapporto ti fornisce il tempo della barra ed entrambi i valori in modo che tu possa chiederlo allo sviluppatore, che è ciò che quella pagina ti dice di fare.
I verdetti azzurri sono quelli che vale la pena comprendere. [NOT TESTED] E[NOT FOUND] significa che la corsa non ha potuto misurare qualcosa: troppo pochi tick o una scansione che ha raggiunto il limite massimo. Non sono lasciapassare. La maggior parte degli strumenti stamperebbe lì un comodo zero; questo ti dice che alla domanda non è stata data risposta, che è la differenza tra una misurazione e una rassicurazione.
L'immagine di parità mostra lo stesso indicatore misurato su entrambe le piattaforme in modo che i due report possano essere confrontati riga per riga. Il reperto mostrato nelle immagini deriva da un indicatore di prova deliberatamente rotto e scritto allo scopo, non da un prodotto in commercio.
A proposito degli screenshot.Ogni immagine viene catturata da una corsa reale: i report sono i file scritti dallo strumento, non modelli. Queste immagini vengono catturate su MetaTrader 4, perché due dei dodici controlli vengono letti legittimamente in modo diverso e mostrare l'output di MetaTrader 5 in un elenco MetaTrader 4 lo traviserebbe. L'immagine di parità mostra entrambe le piattaforme affiancate sullo stesso indicatore: dieci dei dodici controlli sono identici e i due che differiscono sono nominati nel rapporto. Questi due sono una questione di ciò che la PIATTAFORMA può fornire, non di quanto attentamente è stato scritto il port: MQL4 non ha BarsCalculated funzione e nessun modo per scaricare un indicatore in anticipo. Nulla è stato lasciato fuori dalla build di MetaTrader 4: riporta tutto ciò che MetaTrader 4 è in grado di riportare e lo dice dove non può. Questo strumento è progettato per indicare ciò che non è in grado di misurare e ciò si applica innanzitutto al suo stesso elenco.
Produzione
Un report di testo, una linea di base CSV per il confronto tra corse e un riepilogo cumulativo, una riga per corsa, scritti nella cartella File condivisa in modo che sopravvivano tra le corse. Ogni valore diverso viene scritto nel proprio CSV quando un confronto ne trova uno.
E uno snippet di codice pronto all'uso: un file compilabile .mqh nominando ogni buffer live, il suo riscaldamento, l'intervallo osservato e se si svuota, con una funzione di lettura già scritta per la piattaforma su cui hai eseguito. È ciò che altrimenti un chiamante scoprirebbe durante il processo. Se l'esecuzione ha rilevato modifiche a barra chiusa o valori NaN, lo snippet lo dice in alto e indirizza il suo esempio a un buffer senza risultati contrari.
Credito dove è dovuto
Segue l'approccio della lettura del bufferTester degli indicatori personalizzatidi Piotr Latoszynski, gratuito sul mercato dal 2020. Il metodo di congelamento e confronto per rilevare valori modificati a barra chiusa è stato descritto da Brahim Ben Abla in mql5.com post 772704 (17 luglio 2026), con numeri reali; il metodo è suo, mia è solo la spedizione.
Cosa differisce su MetaTrader 4
Dieci dei dodici controlli si leggono in modo identico al MetaTrader 5 basato sullo stesso indicatore. Due non possono: MQL4 non ha BarsCalculated, quindi lo stato di calcolo è una sonda empirica ed è etichettato[PROXY MT4]; e MQL4 non può scaricare un indicatore in anticipo, quindi alla domanda di pulizia dell'oggetto grafico viene data risposta solo su un grafico in tempo reale e si legge[NON TESTATO]nel Tester della strategia. Entrambi sono nominati nel rapporto anziché nascosti. Né si tratta di una limitazione di questo strumento o di una scorciatoia nel port: sono le capacità dello stesso MetaTrader 4, e il rapporto dice quale dei due sta guardando piuttosto che riportare un comodo zero.
Note
- Questo è un Expert Advisor che scrive un rapporto. Non viene mai scambiato.Non inserisce ordini, non apre e chiude nessuna posizione e non tocca nulla nel tuo account: legge un indicatore e scrive file di testo.
- Il trading automatico deve essere abilitato.MetaTrader controlla ogni Expert Advisor dietro tale autorizzazione, indipendentemente dal fatto che esegua o meno operazioni di trading, quindi con il pulsante spento il terminale smette di chiamare il programma e non vedrai alcun rapporto e nessun errore. Collegalo a un account demo se preferisci non abilitarlo su un account live; il risultato è identico, perché qui nulla dipende dall'account.
- Viene eseguito nello Strategy Tester e su un grafico in tempo reale in cui un controllo necessita di tick reali. Legge il target attraverso il documento iCustom interfaccia.
- Alcuni target che creano internamente le proprie maniglie degli indicatori non segnalano mai uno stato calcolato. Il rapporto nomina quel caso invece di riportare uno zero.
- L'output viene inviato alla cartella File condivisi, pertanto i report sopravvivono tra le esecuzioni e accumulano una riga di riepilogo ciascuno.
- Sono supportate più istanze.Due grafici possono misurare simboli diversi contemporaneamente ed entrambe le esecuzioni si aggiungono allo stesso riepilogo cumulativo anziché sovrascriversi a vicenda: testato con due istanze che terminano a un secondo di distanza. Assegna loro prefissi di output diversi se preferisci mantenere separate le due storie.
- Nessuna dipendenza esterna. Non chiama alcuna libreria e nessun altro indicatore.
| Altri strumenti da questo sviluppatore Sviluppo indicatori MetaTrader ed Expert Advisor con attenzione a un codice pulito e documentato: logica a barra chiusa, buffer validati e nessuna dipendenza da altri indicatori. Questo strumento esiste perché volevo verificare questa affermazione sul mio stesso lavoro prima di chiedere a qualcuno di crederci. Vedi tutti i prodotti pubblicati → Hai trovato qualcosa in un rapporto che non ti aspettavi o vuoi un controllo che i dodici non coprono? Mandami un messaggio privato, sarò felice di risponderti. |
Sviluppato e mantenuto da Narayanan Mohanan, ML/Python/MQL Developer.
Se rileva un errore nella traduzione di questa pagina, me lo segnali e provvederò a correggerlo.
