Créer un screener basé sur CCI correction + PRC_Trendilio
Forums › ProRealTime forum Français › Support ProScreener › Créer un screener basé sur CCI correction + PRC_Trendilio
- This topic has 6 replies, 2 voices, and was last updated 9 months ago by francis59.
-
-
01/31/2024 at 4:04 PM #227184
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
02/01/2024 at 1:42 PM #227242Bonjour,
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 :
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162// Paramètres CCIL = 14 // Long terme CCIB = 9 // Court terme CCI// Calcul du CCI pour les deux périodesCCL = CCI[L]CCS = CCI[B]// Logique pour la CCI-correctionLASTUP = 0LASTDW = 0UP = 0DW = 0IF CCL > 100 THENLASTUP = 1LASTDW = 0ELSIF CCL < -100 THENLASTDW = -1LASTUP = 0ENDIFIF CCS > 100 THENUP = 1DW = 0ELSIF CCS < -100 THENDW = -1UP = 0ENDIF// Paramètres PRC-Trendiliosrc = close // Source is Closesmooth = 1 // Smoothinglength = 50 // ALMA Lookbackperiodoffset = 0.85 // ALMA Offsetsigma = 6 // ALMA Sigmabmult = 1.0 // Band Multiplierblen = 20 // Custom Band Length// Calcul de PRC-TrendilioWtdSum = 0CumWt = 0FOR k = 0 TO length - 1 DOWtd = 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 + WtdNEXTavpch = WtdSum / CumWtrms = bmult * sqrt(summation[blen](avpch * avpch) / blen)cdir = 0IF avpch > rms THENcdir = 1ELSIF avpch < -rms THENcdir = -1ENDIF// Condition finale pour le screenerCondition = (LASTUP = 1 OR UP = 1) AND cdir = 1SCREENER[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.
02/01/2024 at 5:13 PM #22725802/06/2024 at 4:42 PM #227477Bonjour 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/Sigmamais 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 🙂
02/09/2024 at 5:00 PM #227763Bonjour 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 = 0IF CCL > 100 THEN
LASTUP = 1ELSIF CCL < -100 THEN
LASTUP = 0
ENDIFIF CCS > 100 THEN
UP = 1ELSIF 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
NEXTavpch = 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 = 1SCREENER[Condition]
D’avance merci et bonne journée
02/20/2024 at 2:28 PM #22845502/23/2024 at 4:42 PM #228663 -
AuthorPosts
Find exclusive trading pro-tools on