Je pense que toutes les réponses sont dans ton code:
- pas de prises de positions : vérifier les contraintes horaires
- pas de prises de positions : si le cumul d’ordre n’est pas autorisé, et que tu es déjà au marché, au Close de la bougie on ne placera pas un nouvel ordre conditionnel. Dans ton exemple, l’ordre en cours est fermé sur la bougie qui suit celle où on aurait dut placer un nouveau BUY STOP, hors tu ne l’autorises pas !
- stoppé trop tôt : non, puisque le stoploss est placé à 60 points du prix d’ouverture de l’ordre et non sur ta ligne
Bonjour Nicolas,
Merci pour ta réponse. Après 1 semaine a essayer de coder j’ai enfin réussi !
Un seul petit bémol subsiste : Aucune prise de position lors que la volatilité est trop élevée et que les niveaux font du yoyo (Cf capture d’écran ci-jointe). Pour palier à ce phénomène, il suffit simplement de diminuer le TF (le passer en seconde par exemple).
Je post le code si jamais quelqu’un en a besoin un jour.
Bon trade à tous
// Définition des paramètres du code
DEFPARAM CumulateOrders = TRUE // Cumul des positions désactivé
// Annule tous les ordres en attente et ferme toutes les positions à 0:00, puis empêche toute création d'ordre avant l'heure "FLATBEFORE".
DEFPARAM FLATBEFORE = 090000
// Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"
DEFPARAM FLATAFTER = 200000
// Empêche le système de placer des ordres pour entrer sur le marché ou augmenter la taille d'une position après l'heure spécifiée
noEntryAfterTime = 173000
timeEnterAfter = time < noEntryAfterTime
// Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiés
daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
// NIVEAU DE BASE : NB
// ECARTEMENT : EC
EC=60
IF TIME=090000 THEN
NB= CLOSE
SUP1=(NB-EC)
RES1=(NB+EC)
ENDIF
IF HIGH >=RES1 THEN
NB= NB+EC
SUP1=SUP1+EC
RES1=RES1+EC
ELSIF LOW <=SUP1 THEN
NB= NB-EC
SUP1=SUP1-EC
RES1=RES1-EC
ENDIF
// Conditions pour ouvrir une position acheteuse
IF NB[1]=NB AND timeEnterAfter AND not daysForbiddenEntry THEN
BUY 1 CONTRACT AT RES1[1] stop
ENDIF
// Conditions pour ouvrir une position en vente à découvert
IF NB[1]=NB AND timeEnterAfter AND not daysForbiddenEntry THEN
SELLSHORT 1 CONTRACT AT SUP1[1] STOP
ENDIF
IF LONGONMARKET THEN
TAKEPROFITHA = RES1
STOPHA = SUP1
ENDIF
IF SHORTONMARKET THEN
TAKEPROFITVE = SUP1
STOPVE = RES1
ENDIF
IF ONMARKET THEN
SELL AT TAKEPROFITHA LIMIT
EXITSHORT AT TAKEPROFITVE LIMIT
SELL AT STOPHA STOP
EXITSHORT AT STOPVE STOP
ENDIF
GRAPHONPRICE NB
graphonprice sup1
graphonprice res1