Bonjour,
Je souhaite que mon ordre d’achat se déclenche quand le marché touche un indicateur.
Et non pas à la fin de la bougie. Est-ce que cela est posstible ?
Merci
Oui en plaçant un ordre en attente de type STOP ou LIMIT selon ce que tu veux faire.
Pour acheter plus bas :
buy 1 contract at monindic LIMIT
Pour acheter plus haut :
buy 1 contract at monindic STOP
Merci pour ces précisions,
Je comprend le principe mais je n’arrive pas à ce que je souhaite.
J’utilise l’indicateur Fractal William (ci-joint)
J’aimerais acheter quand le marché touche la ligne haute (HighLevel) en UTM15 et vendre quand le marché touche la ligne (LowLevel) UTM1.
Comment fait-on pour appeler un paramètre d’un indicateur (dans le cas présent HighLevel et LowLevel)
Merci
Cette stratégie fait exactement ce que tu demandes : https://www.prorealcode.com/topic/fractal-systeme/page/2/#post-88652 , breakout des derniers fractals.
Il y a aussi cette ancienne stratégie de @ALE sans les ordres conditionnels, mais très populaire et qui a connu de nombreux forks: https://www.prorealcode.com/prorealtime-trading-strategies/fractal-breakout-intraday-strategy-eurusd-1h/
Merci,
J’ai de la peine à prendre une stratégie sans bien comprendre comment elle travaille au niveau du code dans ça totalité.
Et je ne comprend pas tout.
Du coup pour en revenir à ma question “comment fait-on appel à un paramètre d’un indicateur”, si je comprend bien on doit réécrir le code de l’indicateur dans ProOrder ?
On ne peut pas simplement rappeler l’indicateur ?
On l’appeler avec l’instruction CALL, voir dans la documentation : CALL
J’ai bien compris le principe mais je n’y arrive pas…
L’ordre d’achat se fait même quand le prix ne touche pas la HighLevel de l’indicateur Wiliam.
Pouvez-vous m’aider parce que la je stagne completement sur un truc bête. J’ai louper quelque chose de fondamental je pense.
CI-joint le code et l’indicateur.
Petit rappel ci-joint sur la dénomination des ordres conditionnels et leurs positionnements en fonction du cours du marché.
Ok,
J’ai changé le code de la manière suivante, mais ça ne fonctionne toujours pas
BUY 1 CONTRACT AT HighFractal STOP
Les ordres conditionnels ne durent qu’une seule barre, il faut les ajouter à chaque barre si nécessaire. Je ne comprends pas pourquoi tu ne t’inspires pas des codes que j’ai fourni, tu cherches à faire exactement pareil ! 🙂
Je ne m’inspire pas de ces codes parce que je ne les comprends pas car je débute, je n’ai malheureusement pas votre experience.
Comme en backtest il ne font pas se que j’attends et que je ne comprend pas suffisament le code pour aller le modifier, je préfère en créer un.
Maintenant si vous arrivez à m’expliquer comment arriver au résultat que je souhaite en modifiant le code existant je suis partant !
Par exemple votre réponse “Les ordres conditionnels ne durent qu’une seule barre, il faut les ajouter à chaque barre si nécessaire” => pouvez-vous m’expliquer comment les ajouters à chaque barre ? (Ca vous donne une idée de mes connaissances en programmation) 😉
Donc, est-ce que vous pouvez m’aider à concevoir un code (ou à modifier un code existant) qui à chaque cassure de l’indicateur fractal Wiliam (joint précédamment) en M15 passe un ordre à l’achat et vend à la cassure d’une EMA55 en M1 ?
Pour l’instant j’ai juste essayer de voir si les ordres fonctionnaient (ce qui n’est pas le cas) avant d’intégrer les UT
Merci pour votre patience
Merci de partager le code dans le prochain message, ce sera plus simple et rapide pour intervenir.
DEFPARAM Cumulateorders=false
// Visualisation des fractales avec flèches
Arrow = 0
// Nombres de bougies constituant la fractale (impair)
// libre à vous de changer ce nombre, qui doit être impair
Ncandles = 4
// Nombres de bougies de chaque côté de la bougie extrême
Nside = (Ncandles) / 2
// Définition de la fractale supérieure
IF high[Nside] >= highest[Ncandles](high) THEN
//Fup = high[Nside]
Arrow = 1
buylevel = high[Nside]
ENDIF
// Définition de la fractale inférieure
IF low[Nside] <= lowest[Ncandles](low) THEN
//Fdown = low[Nside]
Arrow = -1
selllevel = low[Nside]
ENDIF
// Définition des indicateurs
EMA55 = ExponentialAverage[55](close)[4]
EMA25 = ExponentialAverage[25](close)[4]
MACDLIGNE = MACDline[12,26,9](close)
MACDSIGNAL = ExponentialAverage[9](MACDline[12,26,9](close))
RS = RSI[21](close)
SL1 = MACDLIGNE crosses under MACDSIGNAL
SL2 = EMA55
SL3 = RS
SL4 = MACDLIGNE crosses over MACDSIGNAL
// Conditions d'achat
timeframe(1 hour,updateonclose)
CL1 = EMA25 > EMA55
CL2 = MACDLIGNE > MACDSIGNAL
timeframe(15 minutes,updateonclose)
CL3 = EMA25 > EMA55
CL4 = MACDLIGNE > MACDSIGNAL
CL5 = MACDLIGNE > 0
CL6 = Arrow = 1 and not longonmarket
IF CL1 AND CL2 AND CL3 AND CL4 AND CL5 AND CL6 THEN
BUY 1 CONTRACT AT buylevel stop
SET STOP PLOSS 10
ENDIF
// Conditions stop d'une position acheteuse
timeframe(1 minute,updateonclose)
IF longonmarket = 1 then
SELL (COUNTOFPOSITION/3) AT SL1 STOP
SELL (COUNTOFPOSITION/2) AT SL2 STOP
SELL AT SL3 STOP
ENDIF
// Conditions de vente
timeframe(1 hour,updateonclose)
CS1 = EMA25 < EMA55
CS2 = MACDLIGNE < MACDSIGNAL
timeframe(15 minutes,updateonclose)
CS3 = EMA25 < EMA55
CS4 = MACDLIGNE < MACDSIGNAL
CS5 = MACDLIGNE < 0
CS6 = Arrow = -1 and not shortonmarket
IF CS1 AND CS2 AND CS3 AND CS4 AND CS5 AND CS6 THEN
BUY 1 CONTRACT AT buylevel stop
SET STOP PLOSS 10
ENDIF
// Conditions stop d'une position vendeuse
timeframe(1 minute,updateonclose)
IF shortonmarket = 1 then
SELL (COUNTOFPOSITION/3) AT SL4 STOP
SELL (COUNTOFPOSITION/2) AT SL2 STOP
SELL AT SL3 STOP
ENDIF
Tous les timeframes sont mélangés, difficile à lire, sur quel timeframe désires-tu récupérer la valeur des fractals ?
Pour info, il vaut mieux placer l’ensemble des informations d’un timeframe sous une seule et unique définition de l’instruction TIMEFRAME, cela évite les problèmes de mauvaises interprétations du code, celui-ci étant lu de haut en bas.
DEFPARAM Cumulateorders=false
// Définition des indicateurs
EMA55 = ExponentialAverage[55](close)[4]
EMA25 = ExponentialAverage[25](close)[4]
MACDLIGNE = MACDline[12,26,9](close)
MACDSIGNAL = ExponentialAverage[9](MACDline[12,26,9](close))
RS = RSI[21](close)
timeframe(1 hour,updateonclose)
// Conditions d'achat (H1)
CL1 = EMA25 > EMA55
CL2 = MACDLIGNE > MACDSIGNAL
CL3 = MACDSIGNAL > 0
// Conditions de vente (H1)
CS1 = EMA25 < EMA55
CS2 = MACDLIGNE < MACDSIGNAL
CS3 = MACDSIGNAL < 0
timeframe(15 minutes,updateonclose)
// Visualisation des fractales avec flèches
Arrow = 0
// Nombres de bougies constituant la fractale (impair)
// libre à vous de changer ce nombre, qui doit être impair
Ncandles = 4
// Nombres de bougies de chaque côté de la bougie extrême
Nside = (Ncandles) / 2
// Définition de la fractale supérieure
IF high[Nside] >= highest[Ncandles](high) THEN
//Fup = high[Nside]
Arrow = 1
buylevel = high[Nside]
ENDIF
// Définition de la fractale inférieure
IF low[Nside] <= lowest[Ncandles](low) THEN
//Fdown = low[Nside]
Arrow = -1
selllevel = low[Nside]
ENDIF
// Conditions d'achat (M15)
CL4 = EMA25 > EMA55
CL5 = MACDLIGNE > MACDSIGNAL
CL6 = MACDLIGNE > 0
CL7 = Arrow = 1 and not longonmarket
IF CL1 AND CL2 AND CL3 AND CL4 AND CL5 AND CL6 AND CL7 THEN
BUY 1 CONTRACT AT buylevel stop
SET STOP PLOSS 10
ENDIF
// Conditions de vente (M15)
CS4 = EMA25 < EMA55
CS5 = MACDLIGNE < MACDSIGNAL
CS6 = MACDLIGNE < 0
CS7 = Arrow = -1 and not shortonmarket
IF CS1 AND CS2 AND CS3 AND CS4 AND CS5 AND CS6 AND CS7 THEN
BUY 1 CONTRACT AT buylevel stop
SET STOP PLOSS 10
ENDIF
timeframe(1 minute,updateonclose)
SL1 = MACDLIGNE crosses under MACDSIGNAL
SL2 = EMA55
SL3 = RS
SL4 = MACDLIGNE crosses over MACDSIGNAL
// Conditions stop d'une position acheteuse
IF longonmarket = 1 then
SELL (COUNTOFPOSITION/3) AT SL1 STOP
SELL (COUNTOFPOSITION/2) AT SL2 STOP
SELL AT SL3 STOP
ENDIF
// Conditions stop d'une position vendeuse
IF shortonmarket = 1 then
SELL (COUNTOFPOSITION/3) AT SL4 STOP
SELL (COUNTOFPOSITION/2) AT SL2 STOP
SELL AT SL3 STOP
ENDIF