Bonjour,
j'ai remarqué qu'il y a plein de codes PRT (indic, backtests, etc...) qui se promènent dans différentes files.
Je vous propose de les mettre en commun dans cette file qu'Alain pourrait peut-être épingler si elle rencontre du succès.
Pour commencer, comme c'est très demandé en ce moment, le code de la Volat avec +haut et +bas "historique", les canaux de Keltner et mon code de squeeze Carter (à mettre en histogramme).
Ajout: Volat OBV
Nom: Volat AD
Variables: period (150 par défaut=définit la profondeur historique)
//Calcul de la volatilité
//et des valeurs minimale et maximale de celle-ci sur (period) périodes
IF BarIndex<20 then
VNK = Undefined
else
VNK=BollingerBandWidth[20](close)*4
LimitMini=Lowest[period](VNK)
LimitMaxi=Highest[period](VNK)
Endif
Return VNK COLOURED(255,50,10) as "VNK",LimitMaxi COLOURED(0,200,20) as "Limite Maxi",LimitMini COLOURED(0,20,200) as "Limite Mini"
Nom: Canaux de Keltner
Var: N (periode = 20)
coeff (1.5)
//Canaux de Keltner
REM Moving Average
MA = Average[N](TypicalPrice)
REM Upper Keltner Band
UpperBand = MA + coeff*Average[N](Range)
REM Lower Keltner Band
LowerBand = MA - coeff*Average[N](Range)
RETURN MA AS "Keltner Moving Average" , UpperBand AS "Upper Keltner Band" , LowerBand as "Lower Keltner Band"
Nom: Squeeze Carter
Var: aucune
Rem le Squeeze à la Carter
// a mettre en histo et en tout petit (produit des petites barres en cas de squeeze)
myKeltnerMovingAverage, myUpperKeltnerBand, myLowerKeltnerBand = CALL "Canaux de Keltner"[20 ,1.5]
c1 = (myUpperKeltnerBand >= BollingerUp[20](close))
c2 = (myLowerKeltnerBand <= BollingerDown[20](close))
myKeltnerMovingAverage = myKeltnerMovingAverage +1
if c1 and c2 then
indic = 1
else
indic = 0
endif
return indic
Nom: Volat OBV
Var: period (=40)
//Calcul de la volatilité OBVD
//et des valeurs minimale et maximale de celle-ci sur (period) périodes (def = 40, je le trouve plus réaliste avec 40...)
IF BarIndex<20 then
VNK = Undefined
else
VNK=STD[20](OBV(typicalprice))
LimitMini=Lowest[period](VNK)
LimitMaxi=Highest[period](VNK)
Endif
Return VNK as "VNK",LimitMaxi COLOURED(0,200,20) as "Limite Maxi",LimitMini COLOURED(0,20,200) as "Limite Mini"
j'ai remarqué qu'il y a plein de codes PRT (indic, backtests, etc...) qui se promènent dans différentes files.
Je vous propose de les mettre en commun dans cette file qu'Alain pourrait peut-être épingler si elle rencontre du succès.
Pour commencer, comme c'est très demandé en ce moment, le code de la Volat avec +haut et +bas "historique", les canaux de Keltner et mon code de squeeze Carter (à mettre en histogramme).
Ajout: Volat OBV
Nom: Volat AD
Variables: period (150 par défaut=définit la profondeur historique)
//Calcul de la volatilité
//et des valeurs minimale et maximale de celle-ci sur (period) périodes
IF BarIndex<20 then
VNK = Undefined
else
VNK=BollingerBandWidth[20](close)*4
LimitMini=Lowest[period](VNK)
LimitMaxi=Highest[period](VNK)
Endif
Return VNK COLOURED(255,50,10) as "VNK",LimitMaxi COLOURED(0,200,20) as "Limite Maxi",LimitMini COLOURED(0,20,200) as "Limite Mini"
Nom: Canaux de Keltner
Var: N (periode = 20)
coeff (1.5)
//Canaux de Keltner
REM Moving Average
MA = Average[N](TypicalPrice)
REM Upper Keltner Band
UpperBand = MA + coeff*Average[N](Range)
REM Lower Keltner Band
LowerBand = MA - coeff*Average[N](Range)
RETURN MA AS "Keltner Moving Average" , UpperBand AS "Upper Keltner Band" , LowerBand as "Lower Keltner Band"
Nom: Squeeze Carter
Var: aucune
Rem le Squeeze à la Carter
// a mettre en histo et en tout petit (produit des petites barres en cas de squeeze)
myKeltnerMovingAverage, myUpperKeltnerBand, myLowerKeltnerBand = CALL "Canaux de Keltner"[20 ,1.5]
c1 = (myUpperKeltnerBand >= BollingerUp[20](close))
c2 = (myLowerKeltnerBand <= BollingerDown[20](close))
myKeltnerMovingAverage = myKeltnerMovingAverage +1
if c1 and c2 then
indic = 1
else
indic = 0
endif
return indic
Nom: Volat OBV
Var: period (=40)
//Calcul de la volatilité OBVD
//et des valeurs minimale et maximale de celle-ci sur (period) périodes (def = 40, je le trouve plus réaliste avec 40...)
IF BarIndex<20 then
VNK = Undefined
else
VNK=STD[20](OBV(typicalprice))
LimitMini=Lowest[period](VNK)
LimitMaxi=Highest[period](VNK)
Endif
Return VNK as "VNK",LimitMaxi COLOURED(0,200,20) as "Limite Maxi",LimitMini COLOURED(0,20,200) as "Limite Mini"
Commentaire