indicateur a plusieurs condition mais pas en meme temps
Forums › ProRealTime forum Français › Support ProOrder › indicateur a plusieurs condition mais pas en meme temps
- This topic has 11 replies, 2 voices, and was last updated 5 years ago by raphy.
-
-
08/29/2019 at 8:46 AM #105796
Bonjour,
J aurai bien besoin d’aide car cela fait pas mal de temps que je bloque est n’y arrive pas malgré mais recherche sur ce forum.
Je souhaiterai créer un indicateur qui serait composé de 3 autres indicateurs (maison) mais ou les conditions ne se déclenchent pas forcement en meme temps.
ex :
c1 = indic1
c2 = indic2
c3 = indic3
Je voudrais que les conditions se suivent pour valider un achat, cela donnerai :
c1 validé , en attente de c2, une fois c2 validé attendre que c3 soit validé. rentrer en position a l achat et la condition de sorti, serait sur le signal inverse.
J’espere avoir été assez claire, sinon n hésitez pas a me demander des précisions
Par avance merci
08/29/2019 at 9:04 AM #105798Dans ce cas, on peut utiliser un test sur le BARINDEX (la quantité de chandeliers lue depuis le début de l’historique). Ainsi, si le BARINDEX de c2 est supérieur à celui de c1 alors on sait que c2 a eu lieu après c1, soit :
12345678910111213141516if c1 thenc1bar = barindexendifif c2 and barindex>c1bar thenc2bar = barindexendifif c3 and barindex>c2bar thensignal = 1endifif signal = 1 thenbuy at marketsignal = 0endif08/29/2019 at 9:24 AM #10580108/29/2019 at 12:16 PM #105822Re bonjour Nicolas,
Comment faire pour qu il ne prenne qu une seule position a l achat et qu il en vende deux pour la vente et ainsi de suite?
car dans se code il me prend des poses à chaque barre aprés le signal validé.
L’idée est que j aimerai qu il rentre en position et qu une fois fait qu il n en prenne pas d autre sauf à l inverse.
ex =
signal achat à 100 = prise de position de 1 contrat call.
un signal de vente se déclenche à 120 = prise de 2 contrats short.
Par avance merci
08/29/2019 at 1:31 PM #105831Le code que j’ai proposé est à adapter à ta stratégie, c’est juste un exemple. Je ne connais pas tes conditions d’entrées au marché, si tu ne veux pas cumuler les positions acheteuse, tu peux ajouter cette instruction dans ta condition d’achat (toujours en reprenant l’exemple précédent) :
1234if signal = 1 and NOT LONGONMARKET thenbuy at marketsignal = 0endifPour la taille des contrats, tu changes la ligne par 2 avec:
1buy 1 contract at markettu changes la quantité selon tes propres conditions bien entendu.
08/29/2019 at 2:55 PM #105838Re ,
en rentrant ton code j obtiens ceci :
avec le graph ci joint se sera peut etre plus simple 🙂
Ps : j ai codé comme ceci :
code12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152// Définition des paramètres du codeDEFPARAM CumulateOrders = False // Cumul des positions désactivé// Conditions pour ouvrir une position acheteuseindicator1 = CALL "testsignal1"indicator2 = CALL "testsignal2"indicator3 = call "testsignal3"c1 = (indicator1 = 1)c2 = (indicator2 = 1)c3 = (indicator3 = 1)c4 = (indicator1 = -1)c5 = (indicator2 = -1)c6 = (indicator3 = -1)if c1 thenc1bar = barindexendifif c2 and barindex>c1bar thenc2bar = barindexendifif c3 and barindex>c2bar thensignal = 1endifif signal = 1 and NOT LONGONMARKET thenbuy 1 contract at marketsignal = 0endif// Conditions pour ouvrir une position en vente à découvertif c4 thenc4bar = barindexendifif c5 and barindex>c4bar thenc5bar = barindexendifif c6 and barindex>c5bar thensignal = -1endifif signal = -1 thensellshort 1 CONTRACT AT MARKETsignal = 0if signal = 1 and NOT LONGONMARKET thensell 1 contract at marketsignal = 0endifsell 1 contract at marketendif08/29/2019 at 3:34 PM #10584008/29/2019 at 4:54 PM #10585408/29/2019 at 5:04 PM #10585508/29/2019 at 6:08 PM #105864Le backtest donne ce qu il y a sur le graphique que j ai posté, l ordre d ‘achat qui est exécuté (ellipse jaune) a exactement bien appliqué la “methode” si je puis dire.
barre verte dans le 1er indic en bas, barre verte dans celui du milieu et barre verte sur celui du bas,(ellipse jaune),
ce qui a bien déclenché la position acheteuse.
La ou cela bloque est :
quand la 1 ere barre rouge arrive sur le 1er indic, suivi des autres rouges dans les 2 derniers (rectangle jaune),
il n y a pas eu de prise de position (rectangle jaune), dans notre exemple il aurait du déclencher “2” vente,
1 pour cloturer la position acheteuse et une autre pour prendre une position vendeuse.
j’espére que j ai été assez claire 🙂
le code pour un indicateur m irai trés bien en effet, pourrais tu me le donner , si c est pas trop abusé !!
merci
08/30/2019 at 7:51 AM #105882Bonjour Nicolas,
J’ai finalement enlevé une condition et fait un code pour un indicateur qui fonctionne bien, comme suit :
code12345678910111213c1 = (indicator1 > 0.5)c2 = (indicator2 > 0.5)if c1 thenbuyc=1endifif buyc and c2 thensignal = 1buyc=0endifreturn signalEn revanche, j ‘aurais bien besoin d’aide pour les ventes car je n’arrive pas à remplacer le “buyc” !!
J’ai esseyé avec “sellc” puis “sellshort” sans résultat.
Par avance merci
08/30/2019 at 8:10 AM #105886C’est bon 🙂
J’avais oublié de mettre le négatif dans les conditions !!
voici le code si cela intéresse quelqu’un :
code1234567891011121314c1 = (indicator1 < -0.5)c2 = (indicator2 < -0.5)if c1 thensellshortc=1endifif sellshortc and c2 thensignal = 1sellshortc=0endifreturn signalMerci pour tout, bonne journée.
-
AuthorPosts
Find exclusive trading pro-tools on