ProOrder: inverser automatiquement la position après 15s

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #259436 quote
    RICOU
    Participant
    Junior

    Bonjour,

    je recherche un petit code à utiliser à l’ouverture des marchés qui ferait :

    dès l’ouverture on ouvre une position à l’achat et si au bout de 15 secondes par exemple on s’apercoit que la bougie est partie dans l’autre sens on cloture l’ordre mais automatiquement un nouvel ordre est ouvert dans notre cas à la vente. J’ai essayé mes mes compétences en prigramation ne sont pas à la hauteur.

    Par avance merci pour votre aide.

    #259480 quote
    Nicolas
    Keymaster
    Master

    Voici une stratégie qui répond au besoin décrit : ouvrir une position dès l’ouverture du marché, observer le comportement du prix pendant un délai défini, et si la bougie part dans le sens inverse, clôturer automatiquement et se retourner dans l’autre direction.

    Comment ça fonctionne

    La stratégie doit être utilisée sur un graphique en secondes, par exemple 15 secondes ou 30 secondes. C’est important car le paramètre “NbBarresAttente” raisonne en nombre de bougies, pas en minutes. Avec une bougie de 15 secondes et NbBarresAttente = 1, on attend donc exactement 15 secondes avant de réévaluer la situation.

    Au déclenchement de la première bougie de la séance (définie par HeureOuverture), la stratégie entre automatiquement à l’achat. Après le nombre de bougies défini, elle vérifie si le cours de clôture de cette bougie est inférieur au prix d’entrée. Si c’est le cas, cela signifie que le marché est parti à la baisse, la position longue est clôturée et un short est ouvert immédiatement dans la foulée, sans intervention manuelle.

    Si la bougie confirme la direction haussière (close supérieur au prix d’entrée), la position longue reste ouverte et le take profit défini en points s’applique.

    En fin de journée, à l’heure définie par HeureCloturePos, toutes les positions encore ouvertes sont fermées automatiquement, dans les deux sens.

    Les paramètres à adapter

    HeureOuverture permet de cibler l’heure d’ouverture selon le marché, 090000 pour Euronext, 080000 pour le DAX par exemple. NbBarresAttente définit le délai d’observation en nombre de bougies. TaillePosition correspond au nombre de contrats ou lots. Takeprofit s’exprime en points et peut être mis à 0 pour le désactiver.

    Quelques remarques

    La stratégie n’intègre pas de stop loss explicite en dehors du retournement lui-même, il peut donc être utile d’en ajouter un selon votre gestion du risque. Par ailleurs, le retournement ne se produit qu’une seule fois : si le short part lui aussi dans le mauvais sens, il n’y a pas de second retournement prévu. C’est un point à faire évoluer si vous souhaitez une version plus complète.

    N’hésitez pas à poser vos questions ou à partager vos retours si vous l’utilisez sur d’autres instruments ou timeframes.

    // ============================================================
    // STRATÉGIE : Ouverture + Retournement automatique
    // Paramétrable : heure, délai d'attente, taille position
    // Utiliser sur un graphique en SECONDES (ex: 15s, 30s...)
    // ============================================================
                                                                                                                                                                                                                                                                                     
    DEFPARAM CumulateOrders = False
                                                                                                                                                                                                                                                                                     
    // ---- Paramètres utilisateur (à adapter) ----
    HeureOuverture  = 090000   // Heure d'ouverture (format HHMMSS)
    // 090000 = 09:00:00 (Euronext)
    // 080000 = 08:00:00 (DAX/Xetra)
    HeureCloturePos = 173000   // Clôture forcée de toutes les positions
    NbBarresAttente = 1        // Nb de bougies à attendre avant réévaluation
    // 1 bougie x 15s = 15 secondes d'attente
    TaillePosition  = 1        // Nombre de contrats / lots
    Takeprofit = 20 //takeprofit en points 
                                                                                                                                                                                                                                                                                     
    // ---- Détection de la première bougie à l'ouverture ----
    // "isOpeningBar" est vrai UNE SEULE FOIS par jour à l'ouverture
    isOpeningBar = (time >= HeureOuverture) AND (time[1] < HeureOuverture)
                                                                                                                                                                                                                                                                                     
    // ===========================================================
    // ENTRÉE : Achat au marché dès l'ouverture
    // ===========================================================
    IF isOpeningBar AND NOT onmarket THEN
    BUY TaillePosition CONTRACTS AT MARKET
    ENDIF
                                                                                                                                                                                                                                                                                     
    // ===========================================================
    // GESTION POSITION LONG
    // Après NbBarresAttente bougies :
    //   → si close < prix d'entrée (bougie baissière) : RETOURNEMENT
    //   → on clôture le long ET on ouvre un short
    // ===========================================================
    IF longonmarket AND (barindex - tradeindex = NbBarresAttente) THEN
    IF close < tradeprice THEN
    // Clôture du long
    SELL TaillePosition CONTRACTS AT MARKET
    // Ouverture immédiate d'un short (retournement)
    SELLSHORT TaillePosition CONTRACTS AT MARKET
    ENDIF
    ENDIF
         
    if takeprofit>0 then 
    set target pprofit takeprofit 
    endif 
                                                                                                                                                                                                                                                                                
    // ===========================================================
    // CLÔTURE FORCÉE EN FIN DE JOURNÉE
    // ===========================================================
    IF time >= HeureCloturePos THEN
    IF longonmarket THEN
    SELL AT MARKET
    ENDIF
    IF shortonmarket THEN
    EXITSHORT AT MARKET
    ENDIF
    ENDIF
    
    #259489 quote
    RICOU
    Participant
    Junior

    Merci, effectivement vous pouvez rajouter un SL à 10 pts par exemple

    #259490 quote
    Nicolas
    Keymaster
    Master

    Alors modifions simplement cette partie:

    // ===========================================================
    // ENTRÉE : Achat au marché dès l'ouverture
    // ===========================================================
    IF isOpeningBar AND NOT onmarket THEN
     BUY TaillePosition CONTRACTS AT MARKET
     SET STOP PLOSS 50
    ENDIF
    

    La taille du stoploss est en points, à adapter selon tes tests (ici 50 points par défaut).

Viewing 4 posts - 1 through 4 (of 4 total)
  • You must be logged in to reply to this topic.

ProOrder: inverser automatiquement la position après 15s


ProOrder : Trading Automatique & Backtests

New Reply
Author
author-avatar
RICOU @ricou Participant
Summary

This topic contains 3 replies,
has 2 voices, and was last updated by Nicolas
3 weeks ago.

Topic Details
Forum: ProOrder : Trading Automatique & Backtests
Language: French
Started: 03/25/2026
Status: Active
Attachments: No files
Logo Logo
Loading...