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

CGoldSymbol - find the broker's gold and size the position correctly on it - libreria 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:
62
Valutazioni:
(3)
Pubblicato:
Freelance MQL5 Hai bisogno di un robot o indicatore basato su questo codice? Ordinalo su Freelance Vai a Freelance

L’oro è lo strumento su cui i broker non sono d’accordo praticamente su nulla. Il simbolo può essere XAUUSD, GOLD, XAUUSD.m, XAUUSDpro o GOLD#. Un contratto può avere un valore di 100 once, oppure 10, oppure una sola. Il prezzo può avere due o tre cifre. Un EA che calcola la dimensione del lotto basandosi su un valore predefinito "100 once, due cifre" non commette un errore di poco conto con il broker successivo: commette un errore di un fattore dieci, in una direzione che prosciuga il conto.

Questa classe interroga il terminale invece di dare per scontato.

Rilevamento. La funzione Detect() esamina tutti i simboli offerti dal conto e assegna un punteggio ai nomi; pertanto, XAUUSD prevale su XAUUSD.m, che a sua volta prevale su una corrispondenza approssimativa, mentre argento, platino e palladio vengono esclusi a priori: XAGUSD non deve mai prevalere in una ricerca sull’oro. Un simbolo già presente in Market Watch riceve un piccolo bonus. Se il tuo broker utilizza qualcosa di insolito, Attach("YOURNAME") salta la ricerca.

Specifiche. ContractSize(), Digits(), Point(), TickSize(), TickValueLoss(), MinLot(), MaxLot(), LotStep(), StopsLevel() e FreezeLevel() provengono direttamente dal terminale per quel simbolo.

Denaro. LossForDistance(lots, distance) indica quanto costa un movimento sfavorevole nella valuta del conto. LotForRisk(riskMoney, distance) è l’inverso ed è quello che conta: effettua la conversione tramite SYMBOL_TRADE_TICK_VALUE_LOSS, in modo da garantire la correttezza sia su un contratto da 10 once che su un conto denominato in euro, quindi arrotonda il risultato per difetto in base al passo di volume del broker e ai suoi valori minimo e massimo. Restituisce zero anziché un lotto minimo implicito quando anche il volume più piccolo comporterebbe un rischio superiore a quello consentito — un caso in cui la maggior parte dei codici di calcolo del volume sbaglia arrotondando per eccesso.

Diagnostica. La funzione `Attach()` raccoglie avvisi relativi a una dimensione del contratto diversa da 100, a un numero insolito di cifre, a un valore di tick segnalato dal terminale come zero e a un livello di stop diverso da zero. La funzione `PrintReport()` stampa l’intera specifica con un esempio pratico, che di solito è il modo più veloce per scoprire perché una strategia si comporta in modo diverso su due broker.

Su un conto live con un contratto da 100 once, un saldo in euro e uno stop di 1500 punti, l’1% di 10 000 EUR corrisponde a 0,07 lotti con un rischio di 90,42 EUR. La stessa operazione su un contratto da 10 once restituisce 0,70 lotti, mentre su un contratto da 1 oncia restituisce 7,00 lotti. Stesso rischio, stesso stop, una differenza di volume di cento volte: ed è proprio questo che una costante hardcoded non tiene in considerazione.

Il pacchetto include GoldSymbolDemo.mq5, uno script che rileva il simbolo dell’oro, stampa il report e converte una percentuale del saldo in una dimensione del lotto in base a diverse distanze di stop. Eseguilo su qualsiasi grafico per vedere qual è realmente l’oro del tuo broker.

La classe non apre operazioni né modifica posizioni. Si limita a fornire risposte.

Lo stesso rischio e lo stesso stop su tre diversi contratti sull’oro: uno spread di cento volte nella dimensione del lotto

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

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.

SessionReopenEA SessionReopenEA

L'oro presenta una pausa di mantenimento giornaliera sul CME. La prima ora dopo tale pausa registra un rialzo superiore a quanto spiegabile dal caso, in ogni anno solare di un campione di 11 anni, mentre tutte le altre ore della giornata mostrano un andamento piatto. Un'operazione per sessione, uno stop lato server proporzionale alla volatilità, nessun averaging né grid. Poi il mio modello di costo si è rivelato errato. Un backtest su tick reali ha mostrato che il costo effettivo di andata e ritorno alla riapertura è di circa 60 punti, non i 19 che la mia ricerca aveva calcolato: il campo dello spread delle barre M1 è un riepilogo per singola barra e lo sottostima di circa tre volte. Rieseguendo l’analisi su 11 anni con il costo corretto: +3,34 bps, t 7,40, 59,3% di operazioni vincenti -> +1,60 bps, t 3,42, 50,8% di operazioni vincenti Il vantaggio rimane, ma con meno della metà della sua forza originaria. Il secondo dato è quello reale. Cosa non è: circa il +3,3% all’anno con un drawdown del 4,6%, con un anno negativo ogni nove circa. A 0,01 lotti si tratta di circa 130 all’anno – una cifra che misura la dimensione della posizione, non la strategia.

OHLC Reality Check - at what stop distance does your backtest start lying? OHLC Reality Check - at what stop distance does your backtest start lying?

Apre un’operazione virtuale tra parentesi su ogni barra M1, la fa scorrere in avanti sulla cronologia reale dei tick e rileva, per una serie di distanze di stop, con quale frequenza la modellizzazione OHLC a 1 minuto attribuirebbe all’operazione un risultato opposto a quello previsto.

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.