Voir comment télécharger gratuitement des robots de trading
Retrouvez-nous sur Facebook !
Rejoignez notre page de fans
Un script intéressant ?
Poster un lien vers celui-ci -
laisser les autres l'évaluer
Vous avez aimé le script ? Essayez-le dans le terminal MetaTrader 5
Scripts

OHLC Reality Check - at what stop distance does your backtest start lying? - script pour 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)
| French English Русский 中文 Español Deutsch 日本語 Português 한국어 Italiano Türkçe
Vues:
70
Note:
(2)
Publié:
MQL5 Freelance Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance

Chaque backtest réalisé sur des données OHLC à la minute repose sur une hypothèse tacite : celle selon laquelle, au sein d’une barre, le cours a suivi l’ordre « Ouverture – Plus bas – Plus haut – Clôture » pour une barre haussière, et « Ouverture – Plus haut – Plus bas – Clôture » pour une barre baissière. Il faut bien partir d’une hypothèse, car les données OHLC n’enregistrent pas le tracé du cours. Les ticks réels, eux, le font.

Cette hypothèse n’a d’importance que lorsque la barre qui clôt une transaction touche à la fois le stop et l’objectif. C’est alors l’ordre qui détermine si la transaction a été gagnante ou perdante, et le testeur ne fait que deviner. Ce script mesure la fréquence à laquelle cette supposition est erronée.

Fonctionnement. Sur chaque barre M1, il ouvre une transaction virtuelle encadrée – un niveau au-dessus de l’ouverture de la barre, un autre en dessous, tous deux à égale distance – et avance jusqu’à ce que le cours atteigne l’un d’entre eux. Si la barre de clôture n’a touché qu’un seul niveau, il n’y a rien à décider. Si elle a touché les deux, le script compare l’hypothèse du testeur avec l’évolution réelle des ticks de cette minute.

Le résultat dépend entièrement de la largeur de la fourchette ; le script explore donc plusieurs distances et affiche la courbe. Sur la paire XAUUSD, sur 30 jours et 27 844 transactions virtuelles :

  • stop de 20 points – 62,6 % des transactions contestées, 23,84 % résolues de manière erronée
  • Stop de 50 points: 30,1 % de transactions contestées, 8,25 % de résultats erronés
  • Stop de 100 points: 8,9 % de transactions contestées, 1,66 % de résultats erronés
  • Stop de 200 points – 1,5 % de transactions contestées, 0,18 % de transactions erronées
  • Stop de 500 points: 0,1 % contestées, 0,00 % erronées
  • Stop de 1 000 points: aucune transaction contestée, aucune erreur

« Contesté » signifie que la barre qui a clôturé la transaction a touché les deux niveaux, de sorte que l’ordre a déterminé le résultat. « Erroné » correspond à la part de toutes les transactions résolues pour lesquelles l’ordre supposé par le testeur était à l’opposé de l’évolution des ticks : un gain comptabilisé comme une perte, ou l’inverse.

La conclusion honnête n’est donc ni « l’OHLC ment toujours », ni « l’OHLC est fiable ». Le mensonge a un seuil, ce seuil est spécifique à chaque symbole, et vous pouvez le mesurer en onze secondes au lieu d’en débattre.

Entrées. InpSymbol (vide = le symbole du graphique), InpDays, InpBrackets (les distances de stop à balayer, en points), InpHorizonBars (durée pendant laquelle une transaction peut rester ouverte avant d’être considérée comme non résolue), InpStepBars (ouverture d’une position toutes les N barres ; augmentez cette valeur sur les machines peu performantes) et InpWriteCSV, qui répertorie chaque transaction mal résolue avec son heure d’entrée, sa barre de clôture, ce qu’indiquait le modèle et ce qu’indiquaient les ticks, afin que vous puissiez examiner chaque cas individuellement.

Il se contente de lire l’historique. Il ne passe jamais d’ordre et n’intervient jamais sur une position ouverte.

Nécessite l’historique réel des ticks pour le symbole – téléchargez-le d’abord dans la fenêtre « Symboles », sinon les transactions contestées ne pourront pas être tranchées.

Proportion de transactions pour lesquelles un backtest OHLC donne des résultats inversés, en fonction de la distance du stop - XAUUSD, 30 jours

Traduit de l’anglais par MetaQuotes Ltd.
Code original : 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

Il détecte le symbole « or », quel que soit le nom que lui donne le courtier, lit les spécifications du contrat à partir du terminal au lieu de les supposer, et convertit un risque exprimé dans la devise du compte en une taille de lot adaptée à ce courtier.

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

Exporte une ligne CSV par transaction clôturée, contenant les données qui ne figurent pas sur le relevé : le meilleur bénéfice non réalisé enregistré par la transaction (MFE), la pire perte non réalisée qu’elle a subie (MAE), la part du MFE effectivement réalisée, le nombre de barres couvertes par la transaction et la durée de détention. Il s’agit des mêmes mesures que celles de l’indicateur « Trade Excursion », mais elles sont enregistrées dans un fichier plutôt que représentées graphiquement, car les questions pertinentes à se poser à propos de ces données sont celles auxquelles un graphique ne peut pas répondre : le taux de capture dépend-il de l’heure d’entrée ? Les transactions que je clôture prématurément sont-elles celles que je conserve le plus longtemps ? Les transactions perdantes du lundi atteignent-elles un MAE différent de celles du vendredi ? Il suffit d’un tableau croisé dynamique pour obtenir ces réponses une fois le fichier CSV créé. La sortie est séparée par des points-virgules avec une ligne d’en-tête, au format MQL5\Files ; elle s’ouvre dans n’importe quel tableur. Limite de mesure : les excursions proviennent des plus hauts et des plus bas des barres sur la période choisie ; le tracé à l’intérieur d’une barre est inconnu. La colonne « barres » indique la résolution attribuée à chaque transaction, et le récapitulatif comptabilise séparément les transactions sur une seule barre au lieu de les intégrer dans une moyenne.

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)