Bonjour Nicolas,
Je reprend ton code du halftrend que je voudrais mettre en autotrading. J’ai essayé pas mal de combinaison mais cela ne fonctionne pas.
je remets le code ci-dessous.
le principe est simple lors d’un changement de couleur(vert ou rouge),on passe un ordre (achat ou vente).
//PRC_HalfTrend | indicator
//10.03.2017
//Nicolas @ www.prorealcode.com
//Sharing ProRealTime knowledge
Amplitude = 2
lowpricei = Lowest[Amplitude](low)
highpricei = Highest[Amplitude](high)
lowma = average[Amplitude](low)
highma = average[Amplitude](high)
if barindex>Amplitude then
if(nexttrend=1) then
maxlowprice=Max(lowpricei,maxlowprice)
if(highma<maxlowprice and Close<Low[1]) then
trend=1.0
nexttrend=0
minhighprice=highpricei
endif
endif
if(nexttrend=0) then
minhighprice=Min(highpricei,minhighprice)
if(lowma>minhighprice and Close>High[1]) then
trend=0.0
nexttrend=1
maxlowprice=lowpricei
endif
endif
if(trend=0.0) then
if(trend[1]<>0.0) then
up=down[1]
else
up=Max(maxlowprice,up[1])
endif
down=0.0
else
if(trend[1]<>1.0) then
down=up[1]
else
down=Min(minhighprice,down[1])
endif
up=0.0
endif
endif
if up>0 then
halftrend = up
color = 1
else
halftrend = down
color = -1
endif
return halftrend coloured by color as "Half Trend"
Merci à toi
Je viens de répondre à cette demande de trading automatique avec l’indicateur halftrend dans le forum Italien: https://www.prorealcode.com/topic/aiuto-linguaggio-proorder/
Bonjour Nicolas, merci beaucoup pour l’indicateur, il peut être d’une grande aide, savez-vous comment faire un screener pour détecter les changements de couleur ?
Si tu parles de color, alors selon les lignes 60 à 66, le changement se fait au changement de signe de up, tu peux tester le remplacement de la dernière ligne return (indicateur) par:
c1= up[1]<0 and up>0
c2= up[1]>0 and up<0
screener[c1 or c2]
ou bien si tu préfères:
csigne= sgn(up)<>sgn(up[1])
screener[csigne]
Bonjour, merci beaucoup pour votre réponse.
J’ai essayé d’ajouter le remplacement de la dernière ligne de retour par
c1= up[1]<0 and up>0
c2= up[1]>0 and up<0
screener[c1 or c2]
Lorsque je l’exécute, il me dit que je n’ai pas défini la variable amplitude, savez-vous comment résoudre ce problème ?
Merci de votre compréhension.
ligne 6 dans le code plus haut
Amplitude = 2
Oui, j’avais vu cette ligne, mais lorsque je lance le screener, j’obtiens le message d’erreur suivant
Définir la variable suivante : Amplitude
Je ne sais pas comment le faire fonctionner.
Dois-je ajouter une nouvelle ligne indiquant que Amplitude = 2 ?
Merci de votre compréhension.
J’ai ajouté à la ligne 7 : Amplitude = 2
Il n’y a plus d’erreur de définition de Amplitude, mais il y a deux nouvelles erreurs d’indication :
la variable suivante n’est jamais utilisée dans le code : halftrend
la variable suivante n’est jamais utilisée dans le code : colour
Je ne sais pas comment résoudre ce problème, si quelqu’un sait comment faire, cela m’aiderait beaucoup.
Merci beaucoup pour votre aide.
Ok, reprenons depuis le début, j’utiliser le code posté dans le premier post et j’ai ajouté les conditions de test de changement de couleur pour obtenir le screener :
//PRC_HalfTrend | screener
//Nicolas @ www.prorealcode.com
//Sharing ProRealTime knowledge
Amplitude = 2
lowpricei = Lowest[Amplitude](low)
highpricei = Highest[Amplitude](high)
lowma = average[Amplitude](low)
highma = average[Amplitude](high)
if barindex>Amplitude then
if(nexttrend=1) then
maxlowprice=Max(lowpricei,maxlowprice)
if(highma<maxlowprice and Close<Low[1]) then
trend=1.0
nexttrend=0
minhighprice=highpricei
endif
endif
if(nexttrend=0) then
minhighprice=Min(highpricei,minhighprice)
if(lowma>minhighprice and Close>High[1]) then
trend=0.0
nexttrend=1
maxlowprice=lowpricei
endif
endif
if(trend=0.0) then
if(trend[1]<>0.0) then
up=down[1]
else
up=Max(maxlowprice,up[1])
endif
down=0.0
else
if(trend[1]<>1.0) then
down=up[1]
else
down=Min(minhighprice,down[1])
endif
up=0.0
endif
endif
if up>0 then
color = 1
else
color = -1
endif
screener[color<>color[1]]
Cette version semble très bien fonctionner.
Je vais l’essayer, je pense que c’est un excellent indicateur et le screener le rend très facile à utiliser.
Je vous remercie beaucoup.