Guarda come scaricare robot di trading gratuitamente
Ci trovi su Facebook!
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

OHLC Reality Check - at what stop distance does your backtest start lying? - script per MetaTrader 5

Petr Kostal
Petr Kostal
Petr Kostal — algorithmic trading developer, Czech Republic.
I trade on live accounts myself, so I build EAs the way I'd want to run them.
What I build:
• Expert Advisors and indicators for MetaTrader 4 and 5 (MQL4 / MQL5)
| Italian English Русский 中文 Español Deutsch 日本語 Português 한국어 Français Türkçe
Visualizzazioni:
112
Valutazioni:
(2)
Pubblicato:
Freelance MQL5 Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance

Ogni backtest condotto su dati OHLC a 1 minuto parte da un presupposto implicito: che all’interno di una barra il prezzo abbia seguito l’ordine Apertura – Minimo – Massimo – Chiusura in una barra rialzista e Apertura – Massimo – Minimo – Chiusura in una barra ribassista. È necessario partire da un presupposto, poiché i dati OHLC non registrano l’andamento del prezzo. I tick reali, invece, sì.

Tale presupposto ha rilevanza solo quando la barra che chiude un’operazione tocca sia lo stop che il target. A quel punto è l’ordine a determinare se l’operazione è stata vincente o in perdita, e il tester si limita a formulare un’ipotesi. Questo script misura la frequenza con cui tale ipotesi risulta errata.

Come funziona. Su ogni barra M1 apre un’operazione virtuale tra due livelli – uno al di sopra dell’apertura della barra, uno al di sotto, entrambi alla stessa distanza – e procede in avanti finché il prezzo non raggiunge uno dei due. Se la barra di chiusura ha toccato un solo livello, non c’era nulla da decidere. Se li ha toccati entrambi, lo script confronta l’ipotesi del tester con l’andamento effettivo dei tick reali di quel minuto.

La risposta dipende interamente dall’ampiezza dell’intervallo, quindi lo script analizza diverse distanze e traccia la curva. Su XAUUSD, in 30 giorni e 27.844 operazioni virtuali:

  • stop di 20 punti – il 62,6% delle operazioni contestate, il 23,84% risolte in modo errato
  • Stop di 50 punti: 30,1% contestate, 8,25% errate
  • Stop di 100 punti: l’8,9% contestato, l’1,66% errato
  • stop di 200 punti - 1,5% contestato, 0,18% sbagliato
  • stop di 500 punti - 0,1% contestato, 0,00% errato
  • Stop a 1000 punti - nessuna operazione contestata, nessuna errata

Per «contestato» si intende che la candela che ha chiuso l’operazione ha toccato entrambi i livelli, quindi l’ordine ha determinato l’esito. Per «errato» si intende la percentuale di tutte le operazioni risolte in cui l’ordine ipotizzato dal tester era opposto all’andamento dei tick: una vincita registrata come perdita, o viceversa.

Quindi la conclusione onesta non è «l’OHLC mente sempre» né «l’OHLC va bene». La “menzogna” ha una soglia, la soglia è specifica per ogni simbolo, ed è possibile misurarla in undici secondi invece di discuterne.

Input. InpSymbol (vuoto = il simbolo del grafico), InpDays, InpBrackets (le distanze di stop da scansionare, in punti), InpHorizonBars (per quanto tempo un’operazione può rimanere aperta prima di essere considerata irrisolta), InpStepBars (apre un’operazione ogni N barre; aumentare questo valore su macchine lente) e InpWriteCSV, che elenca ogni operazione risolta in modo errato con l’ora di ingresso, la barra di chiusura, ciò che indicava il modello e ciò che indicavano i tick, in modo da poter esaminare i singoli casi.

Legge solo la cronologia. Non immette mai un ordine e non interviene mai su una posizione aperta.

Richiede la cronologia dei tick reali per il simbolo: scaricarla prima nella finestra «Simboli», altrimenti le operazioni contestate non potranno essere risolte.

La percentuale di operazioni in cui un backtest OHLC restituisce risultati invertiti, in base alla distanza dello stop - XAUUSD, 30 giorni

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

CGoldSymbol - find the broker's gold and size the position correctly on it CGoldSymbol - find the broker's gold and size the position correctly on it

Rileva il simbolo “gold”, indipendentemente dal nome con cui lo chiama il broker, legge le specifiche del contratto dal terminale invece di ipotizzarle e converte il rischio nella valuta del conto in una dimensione del lotto corretta per quel broker.

Trade Excursion Report: MFE and MAE of every closed trade, to CSV Trade Excursion Report: MFE and MAE of every closed trade, to CSV

Esporta una riga CSV per ogni operazione chiusa con i dati che non compaiono nell’estratto conto: il massimo profitto non realizzato registrato dall’operazione (MFE), la massima perdita non realizzata subita (MAE), la quota effettiva di MFE mantenuta, il numero di barre coperte e la durata della posizione. Si tratta delle stesse metriche dell’indicatore Trade Excursion, ma salvate in un file anziché visualizzate su un grafico, poiché le domande che vale la pena porsi su questi dati sono quelle a cui un grafico non può rispondere: il rapporto di cattura dipende dall’ora di ingresso? Le operazioni che chiudo in anticipo sono quelle che mantengo più a lungo? Le operazioni in perdita del lunedì raggiungono un MAE diverso rispetto a quelle del venerdì? Basta una tabella pivot una volta che il file CSV è disponibile. L'output è separato da punti e virgola con una riga di intestazione, in formato MQL5\Files; si apre in qualsiasi foglio di calcolo. Limite di misurazione: le escursioni derivano dai massimi e dai minimi delle barre sul timeframe scelto; il percorso all'interno di una barra è sconosciuto. La colonna delle barre riporta la risoluzione ottenuta da ciascuna operazione, e il riepilogo conta separatamente le operazioni su singola barra invece di calcolarne la media.

Broker Clock Auditor Broker Clock Auditor

Reads the server clock from the symbol's own H1 history. The forex and CME week closes at 17:00 New York, so the server time of every weekly close gives the server's UTC offset for that week. Over 60 weeks it flags irregular closes, dates every clock change and tests it against the US and European daylight saving calendars, cross-checks TimeTradeServer minus TimeGMT, and lists the server time of the London, New York, Tokyo and Sydney opens for the coming weeks. Writes every close to CSV. Read only: no trade function, no DLL, no network.

DailyLossGuard — Hard Daily Loss Protection DailyLossGuard — Hard Daily Loss Protection

DailyLossGuard — Hard Daily Loss Protection (Prop-Firm Challenge Essential)