Rejoignez notre page de fans
- Vues:
- 31
- Note:
- Publié:
-
Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance
La fonction CalculateLot est conçue pour calculer automatiquement la taille du lot de négociation sur la base des principes de gestion des risques. Elle permet au trader de spécifier le pourcentage du solde de son compte qu'il est prêt à risquer dans une transaction et de déterminer le volume optimal de la position en fonction de ce pourcentage.
Syntaxe de la fonction
double CalculateLot(double riskPercent, double stopLossPips);
Paramètres
Параметр Тип Описание riskPercent double Процент от текущего баланса счета, которым трейдер готов рискнуть. Указывается в абсолютном значении (например, 2.0 = 2% от баланса). stopLossPips double Расстояние до уровня Stop Loss в пунктах. Для 5-значных котировок указывается количество стандартных пунктов (например, 1000 = 1000 пунктов = 100 пипсов).
Valeur de retour
La fonction renvoie le volume de lot normalisé ( double ), qui :
-
Est conforme aux règles d'arrondi au pas de volume ( VOLUME_STEP ) ;
-
Ne dépasse pas le volume maximum autorisé ( VOLUME_MAX ) ;
-
N'est pas inférieur au volume minimum autorisé ( VOLUME_MIN ).
Si la valeur calculée dépasse les limites autorisées, la fonction renvoie une valeur limitée (minLot ou maxLot).
Algorithme de fonctionnement
-
Obtention des paramètres du compte et du symbole
-
Solde actuel ( ACCOUNT_BALANCE )
-
Valeur du tick ( SYMBOL_TRADE_TICK_VALUE )
-
Minimum, maximum et pas de changement de lot
-
-
Calcul du montant du risque dans la devise de dépôt
riskAmount = баланс × (риск% / 100) -
Calcul du volume du lot
lotSize = riskAmount / (stopLossPips × tickValue)
-
Normalisation et validation
-
Arrondi au pas le plus proche ( VOLUME_STEP )
-
Validation des valeurs minimales et maximales
-
Exemples d'utilisation
Exemple 1. Utilisation de base dans un conseiller expert
//+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnTick() { //--- Fixer le risque à 1,5% du solde et le stop loss à 500 pips double lot = CalculateLot(1.5, 500); //--- Vérifier que le lot est calculé correctement if(lot > 0.0) { //--- Obtenir les prix actuels double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); //--- Calculer les niveaux double sl = ask - 500 * _Point; double tp = ask + 1500 * _Point; //--- Ouvrir une position trade.Buy(lot, _Symbol, ask, sl, tp); } }
Exemple 2. Utilisation dans un script avec contrôle des erreurs
//+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnStart() { double riskPercent = 2.0; // Risque 2% du solde double stopLossPips = 1000; // Perte d'arrêt 1000 points double lot = CalculateLot(riskPercent, stopLossPips); //--- Édition d'informations sur le calcul Print("===== Résultats du calcul du lot ==="); Print("Solde du compte : ", AccountInfoDouble(ACCOUNT_BALANCE)); Print("Risque, % : ", riskPercent); Print("Montant du risque : ", AccountInfoDouble(ACCOUNT_BALANCE) * riskPercent / 100.0); Print("Stop loss, points : ", stopLossPips); Print("Coût du tic-tac : ", SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE)); Print("Lot calculé :", lot); Print("================================"); if(lot <= 0.0) { Alert("Erreur : Le calcul du lot a échoué. Vérifiez les paramètres de risque et de stop loss."); } }
Traduit du russe par MetaQuotes Ltd.
Code original : https://www.mql5.com/ru/code/71010
ZigZag Support and Resistance Detection
La détection SNR ZigZag identifie les niveaux de support et de résistance à l'aide des points pivots ZigZag.
To Close All Open Trades of Different Symbols
Détails techniques Utilise OrderSend de MQL5 avec TRADE_ACTION_DEAL pour une fermeture instantanée du marché aux prix actuels Bid/Ask. Inclut la tolérance de glissement (10 points), la correspondance des volumes et la préservation des nombres magiques. Boucle en arrière à travers les positions pour éviter le déplacement de l'index pendant l'exécution.
Frontend EA : UI cleanup + quick-trading layer for MT5
A chart-cleanup + quick-trading layer for MT5
Advanced Trade History Exporter: MAE, MFE and Time-Based Excursions (Points)
Utility script that exports your MetaTrader 5 trading history to a CSV file. It automatically calculates Maximum Favorable Excursion (MFE), Maximum Adverse Excursion (MAE), and Forward Returns (Time-Based Excursions) in whole points for deep quantitative analysis in Excel. It will allow you to understand whether you close your trades too early and can help optimize overall trading execution.
