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