Bonjour,
Voilà je cherche à isoler le signal de retournement du Bressert Scalper improved, afin que n’apparaisse que le signal lors du changement de couleur de la courbe. J’ai pris le code de Nicolas mais il doit me manquer quelque chose puisque j’ai plusieurs barres de signal alors que je ne devrai en avoir qu’un par changement
myDSSBressertScalper, ignored, ignored = CALL "PRC_Bressert Scalper Improved"
if summation[1](myDSSBressertScalper<20 and myDSSBressertScalper>myDSSBressertScalper[1])=1 THEN
bullishSignal = 1
bearishSignal = 0
ELSIF summation[1](myDSSBressertScalper>80 and myDSSBressertScalper[1]<myDSSBressertScalper)=1 THEN
bullishSignal = 0
bearishSignal = -1
ELSE
bullishSignal = 0
bearishSignal = 0
ENDIF
RETURN bullishSignal, bearishSignal
Je n’ai pas lu le code appelé via “call”, mais si ce que tu cherches c’est un retournement de ce qui est appelé myDSSBressertScalper, alors les conditions regardées dans ces if sont incomplètes car elles donnent de façon générale tous les cas où ça baisse en étant sup à 80 et où ça monte en étant inf à 20… pour avoir un retournement il faut aussi regarder la relation inverse entre la bougie [1] et la bougie [2] à celle entre dernière bougie et bougie [1]:
myDSSBressertScalper>myDSSBressertScalper[1] and myDSSBressertScalper[1]<myDSSBressertScalper[2]
pour le retournement haussier par exemple
Merci c’est tout à fait çà
Bien ! je ré ouvre le topic car je tente d’obtenir le signal 1 période plus tôt, étant un peu limité je cherche la meilleure solution pour que le signal me soit donné en temps réel. Voici le code actuel:
EMAperiod=8
STOperiod=13
once DssBuffer = 50
once MitBuffer = 30
smoothcoefficient = 2.6 / (1 + EMAperiod)
if barindex>STOperiod then
//price range definitions
HighRange = Highest[STOperiod](high)
LowRange = Lowest[STOperiod](low)
delta = Close - LowRange
rrange = HighRange-LowRange
if rrange = 0 then
rrange = 1*ticksize
endif
MIT = delta/rrange*100.0
MitBuffer = ROUND(smoothcoefficient * (MIT - MitBuffer[1]) + MitBuffer[1])
//DSS calculation
HighRange=0
LowRange=stoperiod*1000
for i = 0 to Stoperiod do
HighRange=Max(MitBuffer[i],HighRange)
LowRange=Min(MitBuffer[i],LowRange)
next
delta = MitBuffer - LowRange
DSS = delta/(HighRange - LowRange)*100.0
DssBuffer = smoothcoefficient * (DSS - DssBuffer[1]) + DssBuffer[1]
my20level=20
my80level=80
endif
IF dssbuffer>dssbuffer[1] and dssbuffer[1]<dssbuffer[2]AND dssbuffer<=my20level THEN
bullishSignal = 1
bearishSignal = 0
ELSIF dssbuffer<dssbuffer[1] and dssbuffer[1]>dssbuffer[2]AND dssbuffer>=my80level THEN
bullishSignal = 0
bearishSignal = -1
ELSE
bullishSignal = 0
bearishSignal = 0
ENDIF
RETURN bullishSignal, bearishSignal