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
Bibliothèque

Position sizing from risk, using the broker's own tick value and volume step - bibliothèque pour MetaTrader 5

Ralph Ivan Simeon
Ralph Ivan Simeon
I build and audit automated trading systems for MetaTrader 5, with most of my work on XAUUSD.
| French English Русский 中文 Español Deutsch 日本語 Português 한국어 Italiano Türkçe
Vues:
18
Note:
(2)
Publié:
MQL5 Freelance Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance

Tous les calculateurs de taille de lot qui partent du principe qu’un pip vaut dix dollars se trompent sur l’or, sur les indices, sur les paires impliquant le yen japonais et sur tout compte non libellé en dollars américains — et c’est précisément là que le surdimensionnement devient préjudiciable. Cet en-tête effectue plutôt le calcul à partir des données réelles publiées par le serveur pour le symbole concerné.

Fonctionnement Ce que renvoie la fonction CalcLots(), y compris le cas où la plupart des routines de calcul de taille se trompent

La fonction CalcLots() prend en paramètre un montant de risque dans la devise du compte, un cours d’entrée et un cours de stop, et renvoie le volume à négocier ainsi que le risque réel associé à ce volume une fois les contraintes du courtier appliquées.

  • Elle arrondit toujours le volume À LA BAISSE à l’échelon de volume du courtier. Un arrondi à la hausse entraînerait silencieusement un risque supérieur à celui demandé, ce qu’une routine de calcul de taille de position ne doit jamais faire.
  • Lorsque le risque demandé est inférieur au lot minimum, la fonction ne le simule pas. Elle renvoie le minimum, définit clamped_min et indique le risque réel de la position – qui sera supérieur à la demande.
  • Elle est indépendante du côté. Le stop peut se situer au-dessus ou en dessous du point d’entrée.

Elle renvoie également la distance du stop en points et la valeur d’un point par lot de 1,00, afin que l’appelant puisse illustrer son fonctionnement plutôt que de se contenter d’un simple chiffre.

Pourquoi les calculs sont-ils dans un fichier séparé ?

Calc.mqh ne contient aucun état terminal. Il prend en paramètre une structure SymbolSpec — point, taille du tick, valeur du tick, volume min/max/pas, nombre de chiffres — afin que l’ensemble de la logique de dimensionnement puisse être testée hors ligne sur des instruments synthétiques.

SpecFromSymbol() est le seul lien avec les données en temps réel. Elle lit d’abord SYMBOL_TRADE_TICK_VALUE_LOSS, car c’est le chiffre utilisé par le serveur lorsqu’une transaction évolue en votre défaveur, ce qui correspond exactement au côté sur lequel se situe un stop loss ; elle se rabat sur SYMBOL_TRADE_TICK_VALUE pour les courtiers qui laissent la variante de perte à zéro.

C’est cette séparation qui rend possible l’exécution du script de test fourni.

Le script de test

RiskLotCalculatorTests.mq5 s’exécute sur n’importe quel graphique, sans connexion à un courtier et sans historique. Il vérifie 41 cas : l’arrondi des paliers de volume, les deux limites et leurs indicateurs, la mise à l’échelle de la valeur des points lorsque la taille du tick diffère de celle du point, une devise majeure à 5 chiffres, l’or, un indice avec un pas de 0,1 lot, les deux sens de transaction, ainsi que tous les cas de rejet : risque nul, risque négatif, un stop placé au niveau de l’entrée et des données de tick manquantes.

Faites-le glisser sur un graphique et consultez l’onglet « Experts ». Le résultat final est « ALL PASS », avec 41 tests réussis et 0 échec.

Les deux fichiers sont autonomes : placez-les dans le même dossier et le script de test se compile tel quel.

Traduit de l’anglais par MetaQuotes Ltd.
Code original : https://www.mql5.com/en/code/77488

Session Range Breakout: Asia, London and New York high/low levels Session Range Breakout: Asia, London and New York high/low levels

Session Range Breakout draws the high and low of up to three intraday sessions (Asia, London and New York by default) and extends each level to the right with optional H/L labels and a range rectangle. Session hours, names and colours are configurable in server time. Optional popup, sound and push alerts fire when a bar closes outside a session range. The levels are fixed once the session closes, so the drawing does not repaint. The indicator draws chart objects only and never opens trades.

TesterStats: Strategy Tester report statistics in MQL5 code TesterStats: Strategy Tester report statistics in MQL5 code

Calculates the Strategy Tester report statistics from the deal history, including Z-Score, AHPR, GHPR, LR Correlation and LR Standard Error, which TesterStatistics() does not return. Checked value by value against the tester.

Contract Sizer: ladder, floor and a breaker that survives a deposit Contract Sizer: ladder, floor and a breaker that survives a deposit

Trois mécanismes de protection liés au dimensionnement des positions qui fonctionnent différemment ; c’est en les confondant que tant de comptes se retrouvent à zéro : - « ladder » : un contrat par X du solde, toujours appliqué comme un plafond (CAP), même en cas de dimensionnement manuel des lots ; - « floor » : en dessous du capital minimum, le système ne négocie plus ; un nouveau dépôt est nécessaire ; - « breaker » : s'arrête à X % en dessous du pic, quelle que soit la taille du compte, et ne se réactive pas automatiquement. Ce que cette bibliothèque résout, et que presque aucune autre ne fait : un dépôt n’est pas un bénéfice, et un retrait n’est pas une perte. Le « breaker » mesure la baisse par rapport au pic du solde. Sans traitement particulier, un dépôt effectué PENDANT un drawdown fait augmenter à la fois le solde et le pic, et la protection cesse de détecter la baisse exactement au moment où elle serait utile. Ici, les dépôts et les retraits font varier le pic du même montant. Le pic est enregistré dans un fichier : un « breaker » qui oublie le pic lors du redémarrage du terminal n’est pas un « breaker ». La démo simule un dépôt au plus bas d’un drawdown. Lancez-la avec et sans dépôt, puis comparez la colonne « baisse ».

Non-Repainting Fair Value Gap Detector Non-Repainting Fair Value Gap Detector

Non-repainting three-bar Fair Value Gap detector for MetaTrader 5. Closed-bar detection, the 50% Consequent Encroachment level, mitigation as an explicit state machine, incremental scanning, and a built-in self-audit that re-checks the stored gap levels against the closed-bar series on attach. Pure native MQL5, no DLLs, no external dependencies.