Bonjour à tous
Alors, voila je vous expose mon problème.
J’ai codé une stratégie basé sur les 3 corbeaux assez simple. Quand il y a l’apparition d’un histogramme, le boot place un ordre à l’achat. Jusque l’a rien de complexe.
Mais j’ai voulu peaufiné le résultat en lui stipulant de ne prendre un ordre que uniquement a la bougie suivante de la fin d’apparition des histogrammes des 3 corbeaux.
Je m’explique, si il y a 3 histogrammes qui sont apparu, alors le boot prend position des l’ouverture de la 4eme bougie. C’est ça l’idée en somme.
Mais je ne suis pas arriver. J’ai simplement réussi à codé pour qu’il ouvre 5 bougies quand 4 histogrammes sont apparue dans les 3 corbeaux. Et encore la, en backtest, c’est parfait, cela fait ce que je lui demande mais en réalité, cela m’ouvre bien une position la 5eme bougie mais si il y a l’apparition d’un 5eme histogramme, cela ne le prend pas en compte.
Donc je sais pas quoi faire, si c’est me tourner vers la communauté.
Je vous met le code que j’ai élaboré:
// Définition des paramètres du code
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
// Conditions pour ouvrir une position acheteuse
indicator1 = CALL "3 corbeaux"
c1 = (indicator1 = 1)
IF c1 AND c1 = c1[1] AND c1[1] = c1[2] AND c1[2] = c1[3] THEN
BUY 1 CONTRACT AT MARKET
ENDIF //
// Stops et objectifs
SET TARGET pPROFIT 10
Apres je sais pas si je me suis bien fait comprendre? Si c’est le cas dit moi le j’essayerais d’être plus claire.
Bonjour dashil,
Avec le code de l’indicateur “3 corbeaux”, on comprendrait en effet mieux ta demande 🙂 Il est possible qu’il soit dans la Library, mais ce serait plus rapide si tu le postais ici.
Donc si je comprends bien, tu souhaiterais lancer des trades uniquement après que la figure soit bien validé ? (ici 3 histogrammes). Merci d’avance pour le code de l’indicateur.
Bonsoir et désolé du retard.
Le code que j’utilise pour le 3 corbeaux est le suivant:
// Structure du 3 Corbeaux et 3 Soldat. Cette indicateur permet de confirmer une tendance ou bien de verifier un retournement.
//Coder by Dashil
// 3 Corbeaux
Corbeau = open > close AND open < open[1] AND open < ((open[1] + close[1])/2) AND open[1] > close[1] AND open[1] < open[2] AND open[1] < ((open[2] + close[2])/2) AND open[2] > close[2] AND open[2] < open[3] AND open[2] < ((open[3] + close[3])/2)
IF Corbeau THEN
a = -1
ELSE
a = 0
ENDIF
// 3 Soldats
Soldat = open < close AND open > open[1] AND open > ((open[1] + close[1])/2) AND open[1] < close[1] AND open[1] > open[2] AND open[1] > ((open[2] + close[2])/2) AND open[2] < close[2] AND open[2] > open[3] AND open[2] > ((open[3] + close[3])/2)
IF Soldat THEN
b = 1
ELSE
b = 0
ENDIF
RETURN a COLOURED (255,0,0) AS " 3 corbeaux ", b COLOURED (102,204,0) AS " 3 Soldat "
Je l’ai fait moi même en prenant quelque bout par ci par la. C’était l’occasion pour moi de ” codé”.
Mais voila, je me heurte sur le fait de l’ouverture de la position. Je n’arrive pas a lui faire ouvrir une position au moment adéquat.
J’aimerais que a la bougie 0, si il y a plus d’histo (peux importe le nombre qu’il y en ai eu. De 1 a 10 000), cad que la valeur sois revenu à 0 dans le corbeau, il prend une position. Si il y a 3 histo à la 4em bougie, il prend une position. Si il y a 4 histo, a le 5eme bougie il prend une position. Et ceci ainsi de suite.
Merci par avance de votre aide en tout cas.
Et bien, il suffit de tester si les valeurs de tes variables a et b étaient différentes de 0 à la bougie n-1 et égal à 0 sur celle courante. Si oui alors, on peut lancer un ordre au marché.