BOnjour tous le monde.
je n’arrive pas à faire appel au MACD Zéro Retard.
il me dit Erreur de syntaxe : la fontion “MACD Zéro Retard” n’existe pas.
Pourtant cet indicateur est un indicateur de base de prorealtime.
j’arrive bien sur avec l’indicateur MACD normal.
merci
Bonjour, une erreur de syntaxe est une simple erreur de typographie, il y a donc une ligne qui comporte un caractère en trop ou en moins, une instruction mal “orthographié”, etc…
En postant le code ici on pourra le corriger sans soucis, merci.
Re,
voici le code
myMACDDefault = call "MACD Zéro Retard"[12,26,9]
if myMACDDefault>0 THEN
bullishSignal = 1
bearishSignal = 0
ELSIF myMACDDefault<0 THEN
bullishSignal = 0
bearishSignal = -1
ELSE
bullishSignal = 0
bearishSignal = 0
ENDIF
RETURN bullishSignal, bearishSignal
Bonjour fxforex93
moi j’ai ca et cela marche tres bien
// MACD ZERO LAG
// p= variable macd zerolag, entier, defaut 9
// q= variable signal, entier, defaut 19
// r= variable entier, defaut 6
//macd - signal mettre histogramme
z1=DEMA[12](close)
z2 =dema[26](close)
e= z1 - z2
z3=DEMA[9](e)
f=z3
g=e-f
return e AS "MACD ZEROLAG",f AS "signal",g as "macd-signal",0 as "zero"
Merci, sur ma plateforme le MACD zéro retard s’appelle “ZeroLag MACD”, j’ai donc remplacé son nom et ignoré la variable de la ligne de signal, comme ceci :
myMACDDefault,ignored = call "ZeroLag MACD"[12,26,9]
if myMACDDefault>0 THEN
bullishSignal = 1
bearishSignal = 0
ELSIF myMACDDefault<0 THEN
bullishSignal = 0
bearishSignal = -1
ELSE
bullishSignal = 0
bearishSignal = 0
ENDIF
RETURN bullishSignal, bearishSignal
Ton code fonctionne donc bien désormais.
super merci à tous je vais tester cela et vous tiens au courant .
super merci à vous ça marche
Bonjour,
Voici un code simple qui donne le même résultat que l’indicateur par défaut sur PRT /
// MACD ZERO LAG
// p= variable macd zerolag : 12 par défaut
// q= variable signal : 26 par défaut
// r= variable macd - signal : 9 par défaut // mettre histogramme
p = 12
q = 26
r = 9
z1=DEMA[p](close)
z2 =dema[q](close)
e= z1 - z2
z3=DEMA[r](e)
f=z3
g=e-f
return e AS "MACD ZEROLAG",f AS "signal",g as "macd-signal",0 as "zero"
Ca fonctionne nickel 😉
Bonsoir,
J’ai repris le code MACDZR indiqué plus haut et souhaite intégrer la couleur et forme des lignes de signal.
Pour la couleur OK, bien que j’aimerais que ma MACD ZR soit verte en hausse et rouge en baisse !
Mais surtout je n’arrive pas à mettre ma MACD-Signal en histogramme avec vert en hausse et rouge en baisse ! (car si je sélectionne histogramme après validation code, je ne peux choisir les couleurs)
Comment puis-je faire svp ?
Merci
Ci-joint mon code
//DEBUT//
// MACD ZERO LAG
// p= variable macd zerolag : 12 par défaut
// q= variable signal : 26 par défaut
// r= variable macd - signal : 9 par défaut // mettre histogramme
p = 12
q = 26
r = 9
z1=DEMA[p](close)
z2 =dema[q](close)
e= z1 - z2
z3=DEMA[r](e)
f=z3
g=e-f
return e COLOURED(255, 0, 0) AS "MACD ZEROLAG",f COLOURED(0, 0, 0) AS "signal",g COLOURED(0, 0, 255) as "macd-signal",0 COLOURED(0, 0, 0) as "zero"
//FIN//
Pour faire varier la couleur il faut tester si la variable est plus haute que sa valeur précédente (et donc verte) ou plus basse (rouge). Dans les deux cas on créera une variable qu’on appellera par exemple “couleur” pour faire original 🙂
Pour colorier la ligne de signal en fonction de sa valeur précédente:
if f>f[1] then
couleur = 1
else
couleur = -1
endif
Ensuite dans la fonction RETURN, on déterminera la couleur de f, non plus avec COLOURED(R,V,B) mais avec l’instruction COLOURED BY, comme ceci: (voir exemple 2 de la page documentation du site)
RETURN f coloured by couleur
Traduction faite, cela signifie que la variable ‘f’ sera colorié par la valeur de la variable ‘couleur’, il faudra cependant pour cela changer soit même les valeurs de couleurs “hausse” et “baisse” dans la fenêtre des paramètres de l’indicateur de la plateforme.
MERCI !!! Et quelle rapidité… Comment fais-tu ? LOL
Mais grâce à toi, je me suis aperçu qu’il y avait aussi des bouts de codes (indicateurs, SL, TP, TS,…) sur le site ProRealCode : GENIAL !!!
Documentation
Avec quelques modifications…(couleur, signal, MMS7)
EN PJ les 2 codes En haut celui de PRT, en bas le code manuel ci-dessous
Et tout ceci parce que PRT V10.2 ne prend pas le code originel comme condition dans PRoScreener
Voici le code final :
//DEBUT//
// MACD ZERO LAG
// p= variable macd zerolag : 12 par défaut
// q= variable signal : 26 par défaut
// r= variable macd - signal : 9 par défaut // mettre histogramme
p = 12
q = 26
r = 9
z1=DEMA[p](close)
z2 =dema[q](close)
e= z1 - z2
z3=DEMA[r](e)
f=z3
g=e-f
m=Average[7](e)
if e>e[1] then
couleur = 1
else
couleur = -1
endif
return e COLOURED by(couleur) AS "MACD ZEROLAG",f COLOURED(0, 0, 0) AS "signal",g as "macd-signal",0 COLOURED(0, 0, 0) as "zero",m COLOURED(0, 0, 0) as "MM7"
//FIN//
Bonjour,
Autre question 😉
Comment indiquer dans un screener quand la MACD-signal croise >0 ou <0 (= qui est aussi croisement MACDZR avec SignalZR)
De plus comment intégrer croisement MACDZR avec une Moyenne Mobile rajouté sur l’indicateur
Ensuite comment différencier dans les résultats du screener si Croisement hausse ou baisse avec une colonne ou serait indiqué le résultat soit chiffré, soit en lettre
Et la dernière question, si je souhaite le résultat sur plusieurs TF, comment faire pour obtenir des résultat différenciés…
exemple
si H1 Up + M30 Up
si H1 Down + M30 Down
si H1 Up + M30 Down
si H1 Down + M30 Up
J’aurais tout le temps un retournement sauf que la stratégie (Tp & SL) à appliquer est différente…
Merci beaucoup pour votre aide !
@+RV
Bonjour,
J’ai progresser, mais encore des résultat à 0, pourquoi ?
REM Le code qui suit fait référence à l'unité de temps:15 minutes
TIMEFRAME(1 hour)
indicator1, ignored, ignored, ignored, ignored = CALL "MACD ZERO LAG"
ignored, indicator2, ignored, ignored, ignored = CALL "MACD ZERO LAG"
REM Le code qui suit fait référence à l'unité de temps:5 minutes
TIMEFRAME(30 minutes)
indicator3, ignored, ignored, ignored, ignored = CALL "MACD ZERO LAG"
ignored, indicator4, ignored, ignored, ignored = CALL "MACD ZERO LAG"
REM Le code qui suit fait référence à l'unité de temps:2 minutes
TIMEFRAME(15 minutes)
indicator5, ignored, ignored, ignored, ignored = CALL "MACD ZERO LAG"
ignored, indicator6, ignored, ignored, ignored = CALL "MACD ZERO LAG"
REM Le code qui suit fait référence à l'unité de temps:DEFAULT
TIMEFRAME(DEFAULT)
//screener conditions
condition=0
c1 = indicator1 > indicator2
c2 = indicator1 < indicator2
c3 = indicator3 < indicator4
c4 = indicator3 < indicator4
c5 = indicator5 > indicator6
c6 = indicator5 < indicator6
if c1 and c3 and c5 then
condition=1
elsif c2 and c4 and c6 then
condition=2
elsif c1 and c3 and c6 then
condition=3
elsif c2 and c4 and c5 then
condition=4
elsif c2 and c3 and c5 then
condition=5
elsif c1 and c4 and c6 then
condition=6
elsif c1 and c3 and c5 then
condition=7
elsif c2 and c4 and c5 then
condition=8
ENDIF
SCREENER (condition AS "condition")
Merci de votre aide !
@+RV
Bonjour,
J’ai réussi à corriger et à encore simplifier mon code, malgré que je doive encore rajouter des conditions… avec d’autres indicateurs
Par contre, je suis sous PRT V10.2 et dès que je souhaite tester mes conditions avec une TF inférieure à 5 minutes, cela ne fonctionne plus (M3, M2, M1) !!!
D’ailleurs, il n’y a pas de possibilités en-dessous de M1 ?
Quelqu’un serait-il si il y a une limite en dessous de laquelle on ne peut utiliser les TF avec des conditions ?
REM Le code qui suit fait référence à l'unité de temps:1 heure
TIMEFRAME(1 hour)
ignored, ignored, indicator1, ignored, ignored = CALL "MACD ZERO LAG"
REM Le code qui suit fait référence à l'unité de temps:15 minutes
TIMEFRAME(15 minutes)
ignored, ignored, indicator2, ignored, ignored = CALL "MACD ZERO LAG"
REM Le code qui suit fait référence à l'unité de temps:2 minutes
TIMEFRAME(2 minutes)
ignored, ignored, indicator3, ignored, ignored = CALL "MACD ZERO LAG"
REM Le code qui suit fait référence à l'unité de temps:DEFAULT
TIMEFRAME(DEFAULT)
//screener conditions
condition=0
c1 = indicator1 > 0
c2 = indicator1 <= 0
c3 = indicator2 > 0
c4 = indicator2 <= 0
c5 = indicator3 > 0
c6 = indicator3 <= 0
if c1 and c3 and c5 then
condition=1
elsif c2 and c4 and c6 then
condition=2
elsif c1 and c4 and c5 then
condition=3
elsif c2 and c3 and c6 then
condition=4
elsif c2 and c3 and c5 then
condition=5
elsif c1 and c4 and c6 then
condition=6
elsif c2 and c4 and c5 then
condition=7
elsif c1 and c3 and c5 then
condition=8
ENDIF
SCREENER (condition AS "condition")
Merci pour vos réponses…
@+RV