Bonjour,
N’ayant aucune connaissance en code, serait-il possible et intéressant? de créer un screener en croisant ces 2 critères (cf pièces jointes) :
- CCI-correction : prendre comme paramètre lorsque l’histogramme est vert (tendance haussière)
- PRC-Trendilio : prendre comme paramètre lorsque la courbe sort de la zone de survente et croise l’autre à la hausse (pièce jointe image_trendilio)
Si par hasard ce n’est pas pertinent, ne perdez pas de temps avec ma demande sinon, merci d’avance pour votre aide et n’hésitez pas à compléter avec des idées supplémentaires.
Bonne journée
Bonjour,
Pour créer un screener qui croise les critères de la “CCI-correction” et du “PRC-Trendilio” en ProBuilder, nous devons intégrer les deux logiques dans un seul script ProScreener. Voici un exemple de code qui pourrait correspondre à votre demande :
// Paramètres CCI
L = 14 // Long terme CCI
B = 9 // Court terme CCI
// Calcul du CCI pour les deux périodes
CCL = CCI[L]
CCS = CCI[B]
// Logique pour la CCI-correction
LASTUP = 0
LASTDW = 0
UP = 0
DW = 0
IF CCL > 100 THEN
LASTUP = 1
LASTDW = 0
ELSIF CCL < -100 THEN
LASTDW = -1
LASTUP = 0
ENDIF
IF CCS > 100 THEN
UP = 1
DW = 0
ELSIF CCS < -100 THEN
DW = -1
UP = 0
ENDIF
// Paramètres PRC-Trendilio
src = close // Source is Close
smooth = 1 // Smoothing
length = 50 // ALMA Lookbackperiod
offset = 0.85 // ALMA Offset
sigma = 6 // ALMA Sigma
bmult = 1.0 // Band Multiplier
blen = 20 // Custom Band Length
// Calcul de PRC-Trendilio
WtdSum = 0
CumWt = 0
FOR k = 0 TO length - 1 DO
Wtd = exp(-((k-m)*(k-m))/(2*s*s))
WtdSum = WtdSum + Wtd * (src[length - 1 - k] - src[length - k]) / (src[length - 1 - k] * 100)
CumWt = CumWt + Wtd
NEXT
avpch = WtdSum / CumWt
rms = bmult * sqrt(summation[blen](avpch * avpch) / blen)
cdir = 0
IF avpch > rms THEN
cdir = 1
ELSIF avpch < -rms THEN
cdir = -1
ENDIF
// Condition finale pour le screener
Condition = (LASTUP = 1 OR UP = 1) AND cdir = 1
SCREENER[Condition]
Ce code combine les logiques de la “CCI-correction” et du “PRC-Trendilio”. Il vérifie si les conditions de la CCI-correction (tendance haussière) et du PRC-Trendilio (la courbe sortant de la zone de survente et croisant à la hausse) sont remplies simultanément.
Bonjour Nicolas,
Merci pour votre réponse rapide. Lorsque j’essaie le code, il y a un message d’alerte : “veuillez définir les variables : m, s”
Auriez vous une idée de solution? 🙂
D’avance merci et bonne soirée
Bonjour Nicolas,
Désolé de vous déranger à nouveau sur ce même sujet mais je viens d’essayer de modifier et de paramétrer “m” et “s” avec (demande #227258):
m = (Offset * (length – 1))
s = length/Sigma
mais j’ai ensuite un nouveau message d’alerte :
“erreur de syntaxe :
la variable suivante n’est pas utilisée dans le programme : lastdw
la variable suivante n’est pas utilisée dans le programme : dw
la variable suivante n’est pas utilisée dans le programme : smooth”
Auriez-vous une idée de solution?
D’avance merci pour votre aide.
Bonne journée 🙂
Bonjour Nicolas,
Désolé de vous déranger à nouveau sur ce sujet mais j’ai essayé de modifier le code avec mes “moyens” de compréhension mais j’ai l’impression que ce n’est pas encore tout à fait le bon code. Pourriez vous vérifier si le code suivant est OK ?
// Paramètres CCI
L = 14 // Long terme CCI
B = 9 // Court terme CCI
// Calcul du CCI pour les deux périodes
CCL = CCI[L]
CCS = CCI[B]
// Logique pour la CCI-correction
LASTUP = 0
UP = 0
IF CCL > 100 THEN
LASTUP = 1
ELSIF CCL < -100 THEN
LASTUP = 0
ENDIF
IF CCS > 100 THEN
UP = 1
ELSIF CCS < -100 THEN
UP = 0
ENDIF
// Paramètres PRC-Trendilio
src = close // Source is Close
length = 50 // ALMA Lookbackperiod
offset = 0.85 // ALMA Offset
sigma = 6 // ALMA Sigma
bmult = 1.0 // Band Multiplier
blen = 20 // Custom Band Length
m = (Offset * (length – 1))
s = length/Sigma
// Calcul de PRC-Trendilio
WtdSum = 0
CumWt = 0
FOR k = 0 TO length – 1 DO
Wtd = exp(-((k-m)*(k-m))/(2*s*s))
WtdSum = WtdSum + Wtd * (src[length – 1 – k] – src[length – k]) / (src[length – 1 – k] * 100)
CumWt = CumWt + Wtd
NEXT
avpch = WtdSum / CumWt
//avpch = ta.alma(pch, length, offset, sigma)
rms = bmult * sqrt(summation[blen](avpch * avpch) / blen)
cdir = 0
IF avpch > rms THEN
cdir = 1
ELSIF avpch < -rms THEN
cdir = -1
ENDIF
// Condition finale pour le screener
Condition = (LASTUP = 1 OR UP = 1) AND cdir = 1
SCREENER[Condition]
D’avance merci et bonne journée
Bonjour Nicolas,
Veuillez m’excuser de vous relancer concernant ce sujet mais auriez-vous la possibilité de vérifier le code proposé dans ma dernière demande? 🙂
D’avance merci pour votre aide.
Bonne journée
Bonjour,
Le sujet peut être fermé.
Merci 🙂
Bonne journée