Rejoignez notre page de fans
Moving Average - expert pour MetaTrader 4
- Vues:
- 411
- Note:
- Publié:
- 2022.01.31 10:13
- Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance
L'Expert Advisor Moving Average utilise une moyenne mobile pour former des signaux de trading. L'ouverture et la fermeture des positions sont effectuées lorsque la moyenne mobile rencontre le prix à la barre récemment formée (indice de barre égal à 1). La taille du lot sera optimisée selon un algorithme spécial.
L'Expert Advisor analyse la concordance de la moyenne mobile et du graphique des prix du marché. La vérification est effectuée par la fonction CheckForOpen(). Si la moyenne mobile atteint la barre de telle manière que la première est supérieure au prix d'ouverture mais inférieure au prix de clôture, la position ACHETER sera ouverte. Si la moyenne mobile rencontre la barre de telle manière que la première est inférieure au prix d'ouverture mais supérieure au prix de clôture, la position de VENTE sera ouverte.
Le Money Management utilisé dans l'expert est très simple, mais efficace : le contrôle du volume de chaque position est effectué en fonction des résultats des transactions précédentes. Cet algorithme est implémenté par la fonction LotsOptimized(). La taille de base du lot est calculée sur la base du risque maximal admissible :
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
Le paramètre MaximumRisk affiche le pourcentage de risque de base pour chaque transaction. Il possède généralement une valeur comprise entre 0,01 (1%) et 1 (100%). Par exemple, si la marge libre (AccountFreeMargin) est égale à 20 500 $ et que les règles de gestion du capital prescrivent d'utiliser un risque de 2 %, la taille de base du lot fera 20 500 * 0,02 / 1000 = 0,41. Il est très important de contrôler la précision de la taille du lot et de normaliser le résultat avec les valeurs autorisées. Normalement, les lots fractionnés avec un pas de 0,1 sont autorisés. Une transaction ayant un volume de 0,41 ne sera pas effectuée. Pour normaliser, la fonction NormalizeDouble() est utilisée avec une précision jusqu'à 1 caractère après le point. Il en résulte un lot de base de 0,4. Le calcul du lot de base sur la base de la marge libre permet d'augmenter les volumes d'opérations en fonction du succès de trading, c'est-à-dire de trader avec réinvestissant. C'est le mécanisme de base avec une gestion du capital obligatoire pour augmenter l'efficacité du trading. DecreaseFactor est la mesure dans laquelle la taille du lot sera réduite après une transaction non rentable. Les valeurs normales sont 2,3,4,5. Si les transactions précédentes n'étaient pas rentables, les volumes suivants diminueront d'un facteur de DecreaseFactor afin d'attendre la période non rentable. C'est le facteur principal de l'algorithme de gestion du capital. L'idée est très simple : si le trading augmente avec succès, l'expert travaille avec le lot de base en réalisant un profit maximum. Après la toute première transaction non rentable, l'expert "réduira la vitesse" jusqu'à ce qu'une nouvelle transaction positive soit effectuée. L'algorithme permet de désactiver la "réduction de vitesse", pour cela, il faut spécifier DecreaseFactor = 0. Le montant des dernières transactions non rentables successives est calculé dans l'historique des transactions. Le lot de base sera recalculé sur cette base :
if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
Ainsi, l'algorithme permet de réduire efficacement le risque survenant à la suite d'une série de transactions non rentables. La taille du lot est obligatoirement vérifiée pour la taille de lot minimale autorisée à la fin de la fonction car les calculs effectués précédemment peuvent aboutir à lot = 0 :if(lot<0.1) lot=0.1;
L'expert est principalement destiné à travailler avec une période quotidienne et en mode test - à faire à des prix proches. Il ne s'échangera qu'à l'ouverture d'une nouvelle barre, c'est pourquoi les modes de modélisation à chaque tick ne sont pas nécessaires.Les résultats des tests sont représentés dans le rapport.
Rapport du Testeur de Stratégie
Moyenne Mobile
Symbole EURUSD (Euro vs US Dollar) Période 1 heure (H1) 2003.01.08 00:00 - 2003.11.25 00:00 Modèle Chaque tick (basé sur tous les moindres délais disponibles avec interpolation fractale de chaque tick) Paramètres Lots=0.1; MaximumRisk=0.01; DecreaseFactor=1; MovingPeriod=16; MovingShift=11; Barres en test 19371 Ticks modélisés 656918 Qualité de modélisation 25,00 % Dépôt initial 10000.00 Bénéfice net total 1695.20 Bénéfice brut 4293.20 Perte brute -2598.00 Facteur de profit 1.65 Gain attendu 10.80 Drawdown absolu 40.35 Réduction maximale (%) 318,50 (3,0%) Nombre total de trades 157 Positions courtes (gagnées %) 73 (26.03%) Positions longues (gagnées %) 84 (32.14%) Trades gagnants (% du total) 46 (29.30%) Trades perdants (% du total) 111 (70.70%) Le plus grand trade gagnant 262.55 trade perdant -91.00 Moyenne trade gagnant 93.33 trade perdant -23.41 Maximum gains consécutifs (profit en argent) 2 (387.15) pertes consécutives (perte en argent) 7 (-287.25) Maximal profit consécutif (nombre de trades gagnants) 387.15 (2) perte consécutive (nombre de pertes) -287.25 (7) Moyenne gains consécutifs 1 pertes consécutives 3
Traduit du russe par MetaQuotes Ltd.
Code original : https://www.mql5.com/ru/code/7927
Le script envoie SELL STOP à l'ordre en attente avec les données d'expiration et le numéro d'impression du ticket.
Modify Pending OrderModify pending order - script choisissant le premier dans la liste des ordres en attente, imprimant les données de l'ordre en attente sélectionné, modifiant l'ordre en attente et imprimant les données de l'ordre en attente après modification.
Il est conçu pour créer une période de symbole non standard basée sur l'utilisation de la période standard.
Convertisseur de périodeUtilisez ce script pour créer vos propres périodes non standard.