Jusqu’à présent, j’ai toujours eu des difficultés à programmer correctement les divergences sur indicateur.

Il faut dire que tracer automatiquement les trendlines ou les supports et résistances est loin d’être facile.

C’est par le biais d’une vidéo sur youtube,  que j’ai pu reproduire cet indicateur et l’appliquer sur mon indicateur borné.

//indicateur de divergence

inputs: periodlen(8),colorH(white), colorL(yellow),length(20),leftstrength(3),RightStrength(1),Bartol(3);
vars: Pivotprice1(0), pivotbar1(0),Pivotprice2(0), pivotbar2(0),Pivotprice3(0), pivotbar3(0),Pivotprice4(0), pivotbar4(0),
Pivotprice5(0), pivotbar5(0),Pivotprice6(0), pivotbar6(0),Pivotprice7(0), pivotbar7(0),Pivotprice8(0), pivotbar8(0);

value1=indicdevotrechoix(periodlen);

//Application sur les cours

//on détermine si un pivot s’est produit sur les bas du cours
condition3 = pivot(low,length,leftstrength,RightStrength,1,-1,pivotprice3,pivotbar3)<>-1;
condition4 = pivot(low,length,leftstrength,RightStrength,2,-1,pivotprice4,pivotbar4)<>-1;

//on détermine si un pivot s’est produit sur les hauts du cours
condition5 = pivot(high,length,leftstrength,RightStrength,1,1,pivotprice5,pivotbar5)<>-1;
condition6 = pivot(high,length,leftstrength,RightStrength,2,1,pivotprice6,pivotbar6)<>-1;

//Application sur l’indicateur sélectionné

//on détermine si un bas s’est produit sur l’indicateur sélectionné
condition1 = pivot(value1,length,leftstrength,RightStrength,1,-1,pivotprice1,pivotbar1)<>-1;
condition2 = pivot(value1,length,leftstrength,RightStrength,2,-1,pivotprice2,pivotbar2)<>-1;

//on détermine si un haut s’est produit sur l’indicateur sélectionné
condition7 = pivot(value1,length,leftstrength,RightStrength,1,1,pivotprice7,pivotbar7)<>-1;
condition8 = pivot(value1,length,leftstrength,RightStrength,2,1,pivotprice8,pivotbar8)<>-1;

//Bas le plus récent

if condition3 and condition4 and condition2 and condition1
and (absvalue(pivotbar1-pivotbar3)
and (absvalue(pivotbar2-pivotbar4)
and(pivotbar3=RightStrength or pivotbar1 = RightStrength)
and (Pivotprice3<=Pivotprice4 and pivotprice1>Pivotprice2)
and barstatus(1)=2 then begin

value2 = tl_new_s(D[pivotbar4],time_s[pivotbar4],l[pivotbar4],D[pivotbar3],time_s[pivotbar3],l[pivotbar3]);
tl_setcolor(value2,colorL);
tl_setsize(value2,3);
end;

//Haut le plus récent

if condition5 and condition6 and condition7 and condition8
and (absvalue(pivotbar7-pivotbar5)
and (absvalue(pivotbar8-pivotbar6)=Pivotprice6 and pivotprice7

and barstatus(1)=2 then begin

value3 = tl_new_s(D[pivotbar6],time_s[pivotbar6],h[pivotbar6],D[pivotbar5],time_s[pivotbar5],h[pivotbar5]);
tl_setcolor(value3,colorh);
tl_setsize(value3,3);
end;

Pour appliquer l’indicateur de son choix, il suffit de remplacer value1 par ce que vous voulez. N’oubliez pas d’indiquer ses inputs référents.
J’ai mis en rouge ce qui est remplaçable pour plus de clarté.

Voilà ce que cela donne:

divergences en easylanguage

Rendons à César ce qui lui appartient, l’auteur de ce programme, Markplex, se trouve sur youtube à cette adresse précise. Je n’ai fait qu’extrapoler ce qu’il montre. Ben oui, on s’amuse comme on peut!

Comme je maîtrise mieux TWS, la plateforme d’Interactive Brokers, je reprends le trading réel à partir de mardi prochain. C’est pourquoi j’ai d’ailleurs peu posté à ce sujet car indiquer des trades fictifs ne présente d’intérêt que pour mon seul ego.

J’essaierais de me renseigner auprès d’utilisateurs de la plateforme afin de savoir comment lier des ordres stop et stop limit à un ordre market. C’est le seul point que je n’arrive pas à appliquer. Peut-être avec des ordres OCO? Je ne sais pas.