Bonjour Nicolas,
Je me permets de revenir vers toi concernant ce code que tu m’as déjà aidé à construire (une nouvelle fois, merci).
Toujours dans la volonté de visualiser les niveaux de prix les plus “croisés” j’ai un peu continué à creuser mais, je tombe de nouveau sur un os!
Le code comptabilise correctement le nombre de fois que le “cours” croise un niveau de prix, mais je souhaite (dans un premier temps) récupérer le niveau ou le nombre de croisements est le plus grand.
J’ai donc essayé d’utiliser “ArrayMax”.
Mais je doute que cela soit la bonne technique (ou bien je ne le fais pas correctement) car lorsque que je lui demande de tirer une demie droite, je ne parvient pas à l’avoir au bon niveau.
Aurais tu un conseil pour m’orienter dans la bonne direction?
Également, une idée de comment gérer les “doublons”, lorsque plusieurs niveaux de prix ont été croisés le même nombre de fois?
Par la suite, idéalement, j’aimerais avoir une demie droite dessinée sur les 2, 3, 4… X plus grands nombres de croisements.
Même si je sais déjà que je vais devoir démêler le problème que pour une certaine zone de prix, “20” croisements c’est beaucoup et un niveau sur lequel il faut une demie droite, mais dans une autre zone de prix, “20” ne sera pas du tout pertinent…
Un immense merci à toi,
N’hésite pas à me dire si je n’ai pas été clair et que mon message manque de sens.
(PS : Je suis sur le S&P en 1min)
/////
Le code :
defparam drawonlastbaronly = true
//_________________________________________________________ TIMING
Heures = Hour
Miinutes = Minute
Secondes = Second
HeureDebutChandelle = HeureFinChandelle[1]
HeureFinChandelle = Hour * 10000 + Miinutes * 100 + Secondes
if HeureFinChandelle < HeureFinChandelle[1] then
HeureDebutChandelle = 0
endif
//______________________________________________ NOMBRE CHANDELLES
NombreChandelles = 1
if HeureDebutChandelle > HeureDebutChandelle[1] then
NombreChandelles = NombreChandelles[1] + 1
endif
//__________________________________________________ INFOS JOURNEE
if NombreChandelles < NombreChandelles[1] then
DebutJournee = barindex
OuvertureJournee = open
PlusBasJournee = Low
PlusHautJournee = High
endif
if Low <= PlusBasJournee then
PlusBasJournee = Low
endif
if Low > PlusBasJournee then
PlusBasJournee = PlusBasJournee[1]
endif
if High >= PlusHautJournee then
PlusHautJournee = High
endif
if High < PlusHautJournee then
PlusHautJournee = PlusHautJournee[1]
endif
//__________________________________________________
PrixTest = PlusBasJournee
if islastbarupdate then
while PrixTest <= PlusHautJournee do
Touch = 0
for i = 0 to NombreChandelles do
if High[i] >= PrixTest and Low[i] <= PrixTest then
Touch=Touch + 1
$Touch[i] = Touch
r = min($Touch[i]*10,255)
$Price[Touch]=PrixTest
endif
next
drawtext("#Touch#",barindex+10,PrixTest,SansSerif,Standard,10) coloured (255,255,255)
drawtext("#PrixTest#",barindex+20,PrixTest,SansSerif,Standard,10) coloured (255,255,255)
drawtext("█",barindex+5,PrixTest) coloured(r,0,0)
PrixTest = PrixTest + 0.25
MaxTouch = arraymax($Touch)
PrixMaxTouch = $Price[MaxTouch]
wend
drawray (barindex[NombreChandelles], PrixMaxTouch, barindex, PrixMaxTouch)
endif
//__________________________________________________
return