Bonsoir
je vous contacte car malgré les ressources très riches de ce site, je n’arrive pas à mes fins !!!
Voici le screener que j’essaie d’obtenir, en me basan sur une représentation Heikin-Ashi
Condition1
———-
En timeframe Weekly
Stochastique : %k > %D
et il n’y a pas 2 bougies baissières consécutives en “Jour J” et “J-1”
Condition2
———-
En timeframe Daily
nous avons
– soit 2 bougies haussières “Jour J” et “J-1” ET une bougie baissière en J-2 ET %k > %D et %K>40
– soit un croisement à la hausse du Stochastique (de %K sur %D) ET 2 bougies haussières “Jour J” et “J-1”
ET
des bandes de bollinger qui augmentent sur 3 séances
j’arrive à ça, mais je n’arrive pas à coder le reste…. vous auriez des idées de corrections et de simplification ?
xClose = (Open+High+Low+Close)/4
if(barindex>2) then
xOpen = (xOpen[1] + xClose[1])/2
endif
K = ExponentialAverage[7](Stochastic[14,1](close))
D = ExponentialAverage[3](K)
TIMEFRAME(WEEKLY)
K = ExponentialAverage[7](Stochastic[14,1](close))
D = ExponentialAverage[3](K)
c1 = K>D
c2 = /// je ne sais pas comment coder le fait de ne pas avoir 2 bougies baissières consécutives en "Jour J" et "J-1"
TIMEFRAME (DAILY)
c3 = xClose[1]>xOpen[1] AND xClose>xOpen AND xClose[2]<xOpen[2] AND (K > D) AND (K >= 40) AND (K [1] <D [1])
c4 = K CROSSES OVER AND xClose[1]>xOpen[1] AND xClose>xOpen
c5 = c4 OR c3
p = 10
dev = 1.5
BollInf = Average[p](close)-dev*std[p](close)
BollSup = Average[p](close)+dev*std[p](close)
pB = (close - BollInf) / (BollSup - BollInf) //// est-ce bien close qu'il faut utiliser ou xClose ?
c6 = pB > pB[1] > pB[2]
SCREENER (c1 AND c2 AND c5 AND c6)
La première chose qui me saute aux yeux (et c’est une erreur récurrente), c’est que les conditions d’un screener doivent être entre crochets et non entre parenthèses, ces dernières étant utilisées uniquement pour le critère de tri. Donc pour ton code, la dernière ligne devrait être:
SCREENER [c1 AND c2 AND c5 AND c6]
Avec cette correction, tu devrais au moins avoir quelques résultats et tu devrais pouvoir débugger un peu mieux tes conditions sur les 2 unités de temps de ton screener.
Bonjour Nicolas,
merci pour ta réponse, en effet, c’est une grossière erreur de ma part.
il y avait 2-3 erreurs de “syntaxe”, je corrige ci-dessous.
Parmi les questions en suspens :
- je ne sais pas comment coder le fait de ne pas avoir 2 bougies baissières consécutives en “Jour J” et “J-1”
- pour le % bollinger : est-ce bien close qu’il faut utiliser ou xClose ?
- si je comprends bien ta réponse, pour le screener, je peux rajouter (Volume), et les actions seront triées en fonction de leur volume journalier ?
Merci d’avance et bonne journée
xClose = (Open+High+Low+Close)/4
if(barindex>2) then
xOpen = (xOpen[1] + xClose[1])/2
endif
K = ExponentialAverage[7](Stochastic[14,1](close))
D = ExponentialAverage[3](K)
TIMEFRAME(WEEKLY)
c1 = K>D
c2 = /// je ne sais pas comment coder le fait de ne pas avoir 2 bougies baissières consécutives en "Jour J" et "J-1"
TIMEFRAME (DAILY)
c3 = xClose[1]>xOpen[1] AND xClose>xOpen AND xClose[2]<xOpen[2] AND (K > D) AND (K >= 40) AND (K [1] <D [1])
c4 = K CROSSES OVER AND xClose[1]>xOpen[1] AND xClose>xOpen
c5 = c4 OR c3
p = 10
dev = 1.5
BollInf = Average[p](close)-dev*std[p](close)
BollSup = Average[p](close)+dev*std[p](close)
pB = (close - BollInf) / (BollSup - BollInf) //// est-ce bien close qu'il faut utiliser ou xClose ?
c6 = pB > pB[1] AND pB[1] > pB[2]
SCREENER [c1 AND c2 AND c5 AND c6]
Pour répondre à tes questions :
1/ Tu peux utiliser SUMMATION pour faire la somme de tests booléens et vérifier que cette somme est bien égale à 0 : (sujet de la formation à la programmation avancée, gratuite sous certaines conditions rappelons-le ! 🙂 )
c2 = summation[2](close<close[1])=0
2/ Tout dépend de comment tu veux calculer la largeur de tes bandes de Bollinger, avec le vrai prix (Close) ou celui plus lissé des bougies Heikin Ashi (xClose).
3/ Tu as bien compris en effet 🙂 instruction SCREENER