Voir comment télécharger gratuitement des robots de trading
Retrouvez-nous sur Telegram !
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
Experts

Stratégie de trading Pile ou Face (Heads or Tails) - expert pour MetaTrader 4

Vues:
25
Note:
(1)
Publié:
MQL5 Freelance Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance

La stratégie de trading « Pile ou Face » appartient à la catégorie des approches de trading à court terme à haut risque, utilisées principalement sur le marché boursier et le marché Forex. Son nom provient du caractère aléatoire de la prise de décision, semblable au lancer d’une pièce (« pile » — acheter l’actif, « face » — vendre). Cette stratégie repose exclusivement sur des décisions intuitives ou des signaux aléatoires et ignore les facteurs fondamentaux de l’analyse de marché.

Comment fonctionne la stratégie ?

La stratégie est structurée comme suit :

  1. Choix de l’instrument : le trader choisit un instrument financier (action, devise, matière première).
  2. Prise de décision : la décision d’acheter ou de vendre est prise aléatoirement, par exemple en lançant une pièce ou par une autre méthode de choix entre deux actions possibles.
  3. Clôture de la transaction : la transaction est clôturée automatiquement après un temps prédéfini ou lors de l’atteinte d’un niveau de profit ou de perte spécifique.

Cette stratégie ne nécessite pas une compréhension approfondie des mécanismes et analyses de marché, mais elle n’implique pas non plus une approche sérieuse de gestion des risques.

Inconvénients de la stratégie :

  1. Niveau de risque élevé :
    • En ne comptant que sur la chance, la probabilité de pertes augmente considérablement. La stratégie ignore tout indicateur objectif et recommandation, augmentant les chances de perte de capital.
  2. Absence de contrôle du risque :
    • Puisque l’achat ou la vente se produit de manière totalement aléatoire, il n’y a pas de possibilité de gestion raisonnable du capital, d’évaluation des risques et de répartition des actifs.
  3. Impossibilité de succès à long terme :
    • Même si certaines transactions individuelles sont rentables grâce à la chance, à long terme, une telle stratégie conduira plutôt à des pertes significatives.
  4. Caractère éphémère des résultats :
    • Des résultats positifs ne sont possibles que dans des conditions de marché favorables et avec un grand nombre de petites transactions réussies, ce qui est extrêmement rare en pratique.

Application de la stratégie :

La stratégie convient davantage aux traders débutants qui souhaitent se familiariser avec les principes de fonctionnement des plateformes boursières et essayer le trading sans connaissances approfondies en analyse technique. Cependant, les professionnels utilisent cette stratégie très rarement, préférant des approches scientifiquement fondées qui prennent en compte le comportement des prix, le volume des transactions et les indicateurs fondamentaux des entreprises.

Pour les investisseurs expérimentés, cette stratégie représente davantage une méthode expérimentale de test d’hypothèses qu’un moyen stable de générer des revenus.

Ainsi, bien que la stratégie soit simple et accessible à tout débutant, elle comporte des risques significatifs et n’a pratiquement aucune chance de générer un revenu durable à long terme.


Examinons le bloc principal du signal d’ouverture aléatoire de positions :

if((b + s) == 0) // S'il n'y a pas de positions actives

Ici, la condition d’absence de positions ouvertes est vérifiée. La variable b désigne le nombre de positions longues (« buy »), la variable s — les positions courtes (« sell »). Si la somme des deux est nulle (b + s = 0), cela signifie qu’il n’y a aucune position ouverte.

if(::MathRand() % 2 == 0) // Sélection aléatoire de la direction d’ouverture de position

À l’intérieur du bloc de condition déclenché précédemment, un nombre aléatoire est vérifié. La fonction ::MathRand() génère un nombre pseudo-aléatoire de 0 à 32767 inclus. Ensuite, ce nombre est divisé modulo par 2 (% 2) — si le reste est 0, le bloc suivant est exécuté.

 // Envoyer un ordre d'achat avec les paramètres spécifiés
         ticket = OrderSend(Symbol(),OP_BUY,iStartLots,Ask,iSlippage,
                  Ask - iStopLoss * _Point,       // Prix du stop-loss (valeur actuelle de Ask moins la distance SL)
                  Ask + iTakeProfit * _Point,     // Prix du take-profit (valeur actuelle de Ask plus la distance jusqu'à TP)
                  "VR Heads or Tails",            // Commentaire de l'ordre
                  iMagicNumber,0,clrBlue);        // MagicNumber, expiration, couleur bleue de la flèche
                  
         // Vérifier si l'ordre a été passé avec succès
         if(ticket<0)
            Print("OrderSend failed with an error #",GetLastError());  // Message d'erreur
         else
            Print("The OrderSend function has been completed successfully");  // Message de succès
return;

Si le nombre aléatoire est pair (le reste de la division par 2 est égal à 0), le robot de trading ouvre une position longue (achat) d’un volume de iLots. Après l’ouverture réussie de la position, l’exécution de la fonction est interrompue par l’opérateur return.

 // Envoyer un ordre de vente avec les paramètres spécifiés
         ticket = OrderSend(Symbol(),OP_SELL,iStartLots,Bid,iSlippage,
                  Bid + iStopLoss * _Point,       // Prix du stop-loss (valeur actuelle de Bid plus la distance SL)
                  Bid - iTakeProfit * _Point,     // Prix du take-profit (valeur actuelle de Bid moins la distance jusqu'à TP)
                  "VR Heads or Tails",            // Commentaire de l'ordre
                  iMagicNumber,0,clrRed);         // MagicNumber, expiration, couleur rouge de la flèche
                  
         // Vérifier si l'ordre a été passé avec succès
         if(ticket<0)
            Print("OrderSend failed with an error #",GetLastError());  // Message d'erreur
         else
            Print("The OrderSend function has been completed successfully");  // Message de succès
return;

Si le nombre aléatoire était impair (le reste de la division par 2 était différent de zéro), une position courte (vente) d’un volume de iLots est ouverte, et l’exécution ultérieure de la fonction est également arrêtée.

Logique finale du fragment :

  • La présence de positions ouvertes du trader est vérifiée.
  • S’il n’y a pas de positions ouvertes, une direction de transaction aléatoire est choisie : achat (long) ou vente (short).
  • La transaction ouverte arrête automatiquement le fonctionnement ultérieur de la fonction.

Ainsi, ce code est un exemple simple d’un algorithme qui prend la décision d’ouvrir une position sur le marché de manière aléatoire.

Traduit du russe par MetaQuotes Ltd.
Code original : https://www.mql5.com/ru/code/68251

RatioZigZag RatioZigZag

A modification of the ZigZag indicator, where the reversal moment is determined by a specified coefficient.

MT4 Telegram Trade Notifier (Bot API) — Deal Alerts MT4 Telegram Trade Notifier (Bot API) — Deal Alerts

Utility MT4 EA that sends BUY/SELL deal notifications to Telegram via Bot API (WebRequest)

VR Locker Lite - Stratégie de trading basée sur un verrou positif VR Locker Lite - Stratégie de trading basée sur un verrou positif

Fonctionne à l'aide d'un verrou positif ; le robot de trading crée un verrou positif, et le trader décide lui-même quoi en faire.

Period Converter Optimized Period Converter Optimized

Improved period converter support real-time refreshing, low CPU cost and other features.