Hello ,
j’utilise un code d’indicateur de NICOLAS , au bout duquel j’ai ajouté une condition pour pouvoir
comparer les résultats de l’indicateur et ceux d’un Screener dans lequel je le fais tourner .
En l’occurence , l’indicateur trace un canal autour d’une linear regression , et je souhaite effectuer des calculs
basés sur la valeur des lignes Hautes et Basses dudit canal .
L’indicateur fonctionne très bien , et l’étiquette indique la valeur exacte qui est tracée pour chacune des lignes .
MAIS le même indic placé dans un SCREENER indique une valeur fausse , et qui plus est aléatoire .
Et en découle un calcul FAUX pour C1 .
Comment faire exécuter le bon calcul par le SCREENER ?
(Par ailleurs , je rencontre le même problème en plus marqué avec d’autres indicateurs , toujours une
fois intégrés dans un SCREENER)
Ci-dessous ledit SCREENER avec le code de l’indicateur de NICOLAS et ma question au bout :
Ici , le CRITERIA du SCREENER n’affiche pas la valeur juste de la Ligne Basse du canal , telle que
le même indicateur la donne dans la fenêtre graphique
/////////////////////////////////////////////////
TIMEFRAME(Daily)
REM Condition VOLUME minimum souhaité
REM Capital échangé par UT Jour
CapEchUT = Volume*Close // en €
MM22BarCour15mnCapEchUT = ( (Average[22](CapEchUT)[0] * 0.61) / 34 ) // pour avoir la moyenne "barres courantes" en 15 minutes
REM : Mini accepté : 10 000 € / 15 minutes )
CondTRI = MM22BarCour15mnCapEchUT > 15000 // mini 10 000 € échangés par 15 mn
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
//PRC_Std and Ste LinRegChannel | indicator
//Standard Deviation and Standard Error
//Linear Regression Channel
//12.03.2019
//Nicolas @ www.prorealcode.com
//Sharing ProRealTime knowledge
///////defparam drawonlastbaronly=true
///////defparam calculateonlastbars=1000
// --- settings
lookback= 50 //channel period // 200 // 265 // 57 // 53 // 22 // 50
ChannelType = 2 //1= Standard Deviation ; 2= Standard Erro // 1
NbDeviation = 1.5 //Deviation multiplier // 1 // 1.5
///////colorRed = 255 // 255
///////colorGreen = 0 // 255
///////colorBlue = 0 // 0
// --- end of settings
sumx = 0
sumy = 0
sumxy = 0
sumx2 = 0
for cmpt = lookback downto 0 do
tmpx = cmpt
tmpy = close[cmpt]
sumy = sumy+tmpy
sumx = sumx+tmpx
sumx2 = sumx2 + (tmpx*tmpx)
sumxy = sumxy + (tmpy*tmpx)
next
n = lookback+1
if (sumx2 = sumx * sumx) then // protection to avoid infinite values
b = sumxy - sumx * sumy
else
b = (n * sumxy - sumx * sumy) / (n * sumx2 - sumx * sumx)
endif
a = (sumy - b * sumx) / n
///////drawsegment(barindex[lookback],a+b*lookback,barindex,a+b*0) coloured(colorRed,colorGreen,colorBlue)STYLE(DottedLine,4)
//channel
if ChannelType = 1 then //Standard Deviation
dat = std[lookback]*NbDeviation
else
dat = ste[lookback]*NbDeviation
endif
///////drawsegment(barindex[lookback],(a+b*lookback)+dat,barindex,a+b*0+dat) coloured(colorRed,colorGreen,colorBlue)STYLE(DottedLine,4)
///////drawsegment(barindex[lookback],(a+b*lookback)-dat,barindex,a+b*0-dat) coloured(colorRed,colorGreen,colorBlue)STYLE(DottedLine,4)
///////return
REM : Affichage des points d'arrivée des Lignes Hautes et Basses du Canal
//return (a+b*0+dat) AS "Arrivée Ligne Haute Canal" , (a+b*0-dat) AS "Arrivée Ligne Haute Canal"
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// Ajouts perso
REM : Calcul du Point d'Arrivée de la Ligne Haute du Canal
ArrivLignHteCan = a+b*0+dat
REM : Calcul du Point d'Arrivée de la Ligne Basse du Canal
ArrivLignBasCan = a+b*0-dat
REM : Calcul de la Hauteur du Canal en Euro
HtCanEuro = ArrivLignHteCan - ArrivLignBasCan
REM : Cours compris entre Ligne Basse du Canal et les 20 % de la Hauteur du Canal au-dessus
C1 = (Close > ArrivLignBasCan) AND ( Close < (ArrivLignBasCan + (HtCanEuro * 0.2) ) )
IF C1=1 THEN
CRITERIA = ArrivLignBasCan // permet de comparer avec les résultats et tracés de l'indicateur
ENDIF
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
SCREENER[C1 AND CondTri](CRITERIA AS "LignBsCan")