Bonjour à tous,
C’est ici le premier message que je poste, je suis débutant en programmation PROREALTIME (et programmation tout court d’ailleurs). J’aime assez le code que je mets ci-dessous mais souhaiterais l’améliorer de la façon suivante (j’ai vu les topics sur le sujet timeframe inférieur mais je suis tout de même bloqué). Ci-après mon problème : je souhaiterais inclure une instruction dans le code ci-dessous de façon à ce que si la position ouverte perd X points (30 par exemple) le robot trader coupe la position ET je souhaiterais que cela se base sur la cloture prix en 5min (mon code fonctionnant sur le H1 NASDAQ). J’ai essayé avec ce bout de code mais j’ai un message d’erreur (“toutes les unités de temps appelées dans le code doivent être des multiples de l’unité de dans laquelle vous exécutez votre stratégie”, que je ne comprends pas car 5min reste un multiple de 60min…) :
// Vérification de la perte maximale
timeframe(5 MINUTE, updateonclose)
IF longonmarket THEN
IF (entryPrice – close) >= maxLoss THEN
SELL 1 CONTRACT AT MARKET
ENDIF
ENDIF
Ci-dessous le code sans ce morceau :
// Définition des paramètres Ichimoku
kijunPeriod = 26
tenkanPeriod = 9
senkouSpanPeriod = 52
protectionPips = 10 // Protection contre les faux signaux
minCloudThickness = 5 // Épaisseur minimale du nuage pour valider un trade
maxLoss = 30 // Seuil de perte maximale pour couper une position
cloudTop = max(senkouSpanA, senkouSpanB)
cloudBottom = min(senkouSpanA, senkouSpanB)
// Protection contre les faux signaux et marchés en range
cloudThickness = abs(senkouSpanA – senkouSpanB)
validCloud = cloudThickness > minCloudThickness
// Vérification qu’aucune position similaire n’est ouverte et que la traversée est validée
positionOpen = (longonmarket OR shortonmarket)
// Variable persistante pour suivre la dernière direction du trade
ONCE lastTradeDirection = 0
// Variable persistante pour stocker le prix d’entrée de la position actuelle
ONCE entryPrice = 0
// Conditions d’achat et de vente
buySignal = validCloud AND close > cloudTop + protectionPips AND NOT (positionOpen AND lastTradeDirection = 1)
sellSignal = validCloud AND close < cloudBottom – protectionPips AND NOT (positionOpen AND lastTradeDirection = -1)
// Ouverture de positions avec mise à jour de la direction du trade
IF buySignal THEN
BUY 1 CONTRACT AT MARKET
SET STOP LOSS KijunSen
lastTradeDirection = 1 // Enregistrer que le dernier trade était un achat
entryPrice = close // Mettre à jour le prix d’entrée
ENDIF
IF sellSignal THEN
SELLSHORT 1 CONTRACT AT MARKET
SET STOP LOSS KijunSen
lastTradeDirection = -1 // Enregistrer que le dernier trade était une vente
entryPrice = close // Mettre à jour le prix d’entrée
ENDIF
// Vérification de la perte maximale
IF longonmarket AND (entryPrice – close) >= maxLoss THEN
SELL 1 CONTRACT AT MARKET
ENDIF
IF shortonmarket AND (close – entryPrice) >= maxLoss THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Mise à jour du stop-loss basé sur le Kijun
IF longonmarket THEN
SET STOP LOSS KijunSen
ENDIF
IF shortonmarket THEN
SET STOP LOSS KijunSen
ENDIF
Je joins une capture du résultat de la stratégie.
Merci à tous par avance pour votre aide ! 🙂
Xav