03 Déc 2021, 22:43
20 Déc 2021, 19:32
// Screener pour détecter des contextes pertinents : range ou tendance, ainsi que les signaux associés.
//---------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------
//PARAMETRES ICHIMOKU DE BASE
//Définition des variables
Tenkan=(lowest[9](low)[Cotation]+highest[9](high)[Cotation])/2
Kijun=(lowest[26](low)[Cotation]+highest[26](high)[Cotation])/2
SSAfuture=(Tenkan+Kijun)/2
SSBfuture=(lowest[52](low)[Cotation]+highest[52](high)[Cotation])/2
SSAactuelle=((lowest[9](low)[Cotation+26]+highest[9](high)[Cotation+26])/2+(lowest[26](low)[Cotation+26]+highest[26](high)[Cotation+26])/2)/2
SSBactuelle=(lowest[52](low)[Cotation+26]+highest[52](high)[Cotation+26])/2
//---------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------
//PARAMETRES PERSONNALISABLES
//Période de la bougie considérée (0 = bougie en cours, 1 = bougie clôturée)
Cotation=1
//Période 1 pour le calcul des stochastiques (par défaut, 14. Comme Ichimoku, je n'aime pas changer ce genre de réglages).
p1Stoch=14
//Période pour le calcul des stochastiques (même remarque). 3 par défaut.
p2Stoch=3
//Paramètres liés au range
//Temps sur lequel on cherche les twists du Kumo pour considérer la présence d'un range (par défaut, arbitrairement fixé à 52)
PeriodeRechercheTwistRange=50
//Nombre de twists nécessaires pour considérer le range comme présent (1=potentiel, 2=certain)
NbTwistsKumoDefinitionRange=2
//Temps sur lequel on cherche une absence de twist du Kumo pour considérer la tendance comme solide (par défaut, arbitrairement fixé à 20)
PeriodeRechercheTwistTendance=20
//Temps de recherche des derniers plus hauts ou plus bas à casser pour valider la poursuite de la tendance (basiquement, c'est la période du canal de Donchian)
PeriodeExtremumTendance=16
//Temps sur lequel on étudie le mouvement de la SSB dans l'analyse des tendances
TempsEtudeSSBTendance=20
//Nombre de mouvements de SSB dans le sens de la tendance pour la valider (définition 1)
NbMouvementSSBTendance=2
//Définition des zones du range, en % de la hauteur
ZoneTBasseRange=10
ZoneBasseRange=33
ZoneHauteRange=67
ZoneTHauteRange=90
//Nombre de périodes utilisées pour calculer les bornes du range
PeriodeCalculBornesRange=25
//Paramètres liés aux bougies
//Définition d'une bougie impulsive (en coefficient multiplicateur de la force moyenne des 20 dernières bougies, plus le chiffre est élevé plus on cherche des bougies longues)
ForceBougieImpulsive=1.6
//Définition d'une bougie impulsive par rapport à la longueur des mèches. Plus le chiffre est proche de 0, plus on accepte des mèches longues. Plus il est proche de 1, plus les mèches sont courtes.
ConvictionBougieImpulsive=0.7
//Définition d'une bougie indécise (en coefficient multiplicateur de la force moyenne des 20 dernières bougies, plus le chiffre est faible plus on cherche des bougies courtes)
ForceBougieIndecise=0.6
//Définition d'une bougie indécise par rapport à la longueur des mèches. Plus le chiffre est proche de 0, plus on cherche des mèches longues. Plus il est proche de 1, plus les mèches sont courtes.
ConvictionBougieIndecise=0.3
//FIN DES PARAMETRES PERSONNALISABLES
//----------------------------------------------------------------
//-------------------------------------------------------------------
//Définition d'un range
//Recherche des twists du Kumo futur
DetectionTwist=SSAfuture CROSSES OVER SSBfuture OR SSAfuture CROSSES UNDER SSBfuture
NbTwistsKumoR=SUMMATION[PeriodeRechercheTwistRange](DetectionTwist)
RangePotentiel=NbTwistsKumoR>=NbTwistsKumoDefinitionRange
//Définition d'une tendance
//Définition d'une tendance 1
//Recherche et élimination des twists du Kumo futur
NbTwistsKumoT=SUMMATION[PeriodeRechercheTwistTendance](DetectionTwist)
Tendance1Critere1=NbTwistsKumoT=0
//Autres critères : tendance haussière
//Placement des prix par rapport à la Chikou
TendanceHaussiere1Critere2=close[Cotation]>close[Cotation+26]
//Au moins un certain nombre d'ascensions de la SSBfuture
HausseSSBfuture=SSBfuture>SSBfuture[1]
BaisseSSBfuture=SSBfuture<SSBfuture[1]
TendanceHaussiere1Critere3=SUMMATION[TempsEtudeSSBTendance](HausseSSBfuture)>=NbMouvementSSBTendance
//Absence d'alerte baissière
TendanceHaussiere1Critere4=SUMMATION[TempsEtudeSSBTendance](BaisseSSBfuture)=0
//Réunion des conditions pour la tendance haussière, définition 1
TendanceHaussiere1=Tendance1Critere1 AND TendanceHaussiere1Critere2 AND TendanceHaussiere1Critere3 AND TendanceHaussiere1Critere4
//Autres critères : tendance baissière
//Placement des prix par rapport à la Chikou
TendanceBaissiere1Critere2=close[Cotation]<close[Cotation+26]
//Au moins un certain nombre de baisses de la SSBfuture
TendanceBaissiere1Critere3=SUMMATION[TempsEtudeSSBTendance](BaisseSSBfuture)>=NbMouvementSSBTendance
//Absence d'alerte haussière
TendanceBaissiere1Critere4=SUMMATION[TempsEtudeSSBTendance](HausseSSBfuture)=0
//Réunion des conditions pour la tendance baissière, définition 1
TendanceBaissiere1=Tendance1Critere1 AND TendanceBaissiere1Critere2 AND TendanceBaissiere1Critere3 AND TendanceBaissiere1Critere4
//Définition d'une tendance 2
//Là, on cherche l'alignement parfait : à la hausse, par exemple, SSBactuelle>SSAactuelle>Kijun>Tenkan et Chikou au-dessus des prix
TendanceHaussiere2=SSBactuelle<SSAactuelle AND SSAactuelle<Kijun AND Kijun<Tenkan AND close[Cotation]>close[Cotation+26]
TendanceBaissiere2=SSBactuelle>SSAactuelle AND SSAactuelle>Kijun AND Kijun>Tenkan AND close[Cotation]<close[Cotation+26]
TendanceHaussiere=TendanceHaussiere1 OR TendanceHaussiere2
TendanceBaissiere=TendanceBaissiere1 OR TendanceBaissiere2
//-------------------------------------------------------------------
//---------------------------------------------------------------------
//Ajout de condition en lien avec la zone où se trouvent les prix
//Pour les ranges
//Calcul de la borne basse et haute du range
BHRclose=highest[PeriodeCalculBornesRange](close)[Cotation]
BHRopen=highest[PeriodeCalculBornesRange](open)[Cotation]
BBRclose=lowest[PeriodeCalculBornesRange](close)[Cotation]
BBRopen=lowest[PeriodeCalculBornesRange](open)[Cotation]
BHR=MAX(BHRclose,BHRopen)
BBR=MIN(BBRclose,BBRopen)
HauteurRange=BHR-BBR
//Vérification que les prix sont dans la bonne zone
PrixZoneTBasseRange=close[Cotation]<=BBR+HauteurRange*ZoneTBasseRange/100
PrixZoneBasseRange=close[Cotation]>=BBR+HauteurRange*ZoneTBasseRange/100 AND close[Cotation]<=BBR+HauteurRange*ZoneBasseRange/100
PrixZoneHauteRange=close[Cotation]<=BBR+HauteurRange*ZoneTHauteRange/100 AND close[Cotation]>=BBR+HauteurRange*ZoneHauteRange/100
PrixZoneTHauteRange=close[Cotation]>BBR+HauteurRange*ZoneTHauteRange/100
//-------------------------------------------------------------------
//----------------------------------------------------------------------
//Ajout de signaux en chandeliers
ForceBougieRelative=ABS(close[Cotation]-open[Cotation])/Average[20](ABS(close[Cotation]-open[Cotation]))
ConvictionBougie=ABS(close[Cotation]-open[Cotation])/(high[Cotation]-low[Cotation])
//Types de bougies répertoriés
BougieImpulsiveHaussiere=ForceBougieRelative>=ForceBougieImpulsive AND ConvictionBougie>=ConvictionBougieImpulsive AND close[Cotation]>open[Cotation]
BougieImpulsiveBaissiere=ForceBougieRelative>=ForceBougieImpulsive AND ConvictionBougie>=ConvictionBougieImpulsive AND close[Cotation]<open[Cotation]
BougieIndecise=ForceBougieRelative<=ForceBougieIndecise AND ConvictionBougie<=ConvictionBougieIndecise
AvalementHaussier=close[Cotation]>open[Cotation] AND close[Cotation]>=open[Cotation+1] AND open[Cotation]<=close[Cotation+1] AND close[Cotation+1]<=close[Cotation+2] AND close[Cotation+2]<=close[Cotation+3] AND ForceBougieRelative>=ForceBougieImpulsive
AvalementBaissier=close[Cotation]<open[Cotation] AND close[Cotation]<=open[Cotation+1] AND open[Cotation]>=close[Cotation+1] AND close[Cotation+1]>=close[Cotation+2] AND close[Cotation+2]>=close[Cotation+3] AND ForceBougieRelative>=ForceBougieImpulsive
Penetrante=close[Cotation]>MedianPrice[Cotation+1] AND open[Cotation]<=close[Cotation+1] AND close[Cotation+1]<open[Cotation+1] AND close[Cotation+1]<=close[Cotation+2] AND close[Cotation+2]<=close[Cotation+3] AND ForceBougieRelative>=ForceBougieImpulsive
NuageNoir=close[Cotation]<MedianPrice[Cotation+1] AND open[Cotation]>=close[Cotation+1] AND close[Cotation+1]>open[Cotation+1] AND close[Cotation+1]>=close[Cotation+2] AND close[Cotation+2]>=close[Cotation+3] AND ForceBougieRelative>=ForceBougieImpulsive
//Ajout du filtre de stochastiques, tant qu'on y est.
Surachat=Stochastic[p1Stoch,p2Stoch](close)[Cotation]>=80
NonSurachat=Stochastic[p1Stoch,p2Stoch](close)[Cotation]<=80
Survente=Stochastic[p1Stoch,p2Stoch](close)[Cotation]<=20
NonSurvente=Stochastic[p1Stoch,p2Stoch](close)[Cotation]>=20
NonSurachat1=Stochastic[p1Stoch,p2Stoch](close)[Cotation+1]<=80
NonSurvente1=Stochastic[p1Stoch,p2Stoch](close)[Cotation+1]>=20
//Maintenant, une longue liste chiante des situations pouvant donner lieu à opportunité de trading
//Tendance haussière
RessautTenkanTH=TendanceHaussiere AND open[Cotation]>Tenkan AND close[Cotation]>Tenkan AND low[Cotation]<Tenkan AND BougieIndecise AND NonSurachat
RebondDirectTenkanTH=TendanceHaussiere AND low[Cotation+1]<Tenkan[1] AND (AvalementHaussier OR Penetrante) AND NonSurachat
FranchissementTenkanTH=TendanceHaussiere AND open[Cotation]<Tenkan AND close[Cotation]>Tenkan AND BougieImpulsiveHaussiere AND NonSurachat
RessautKijunTH=TendanceHaussiere AND open[Cotation]>Kijun AND close[Cotation]>Kijun AND low[Cotation]<Kijun AND BougieIndecise AND NonSurachat
RebondDirectKijunTH=TendanceHaussiere AND low[Cotation+1]<Kijun[1] AND (AvalementHaussier OR Penetrante) AND NonSurachat
FranchissementKijunTH=TendanceHaussiere AND open[Cotation]<Kijun AND close[Cotation]>Kijun AND BougieImpulsiveHaussiere AND NonSurachat
FranchissementPlusHautTH=TendanceHaussiere AND close[Cotation]>DonchianChannelUp[PeriodeExtremumTendance][Cotation+1] AND BougieImpulsiveHaussiere AND NonSurachat1
//Tendance baissière
SoulevementTenkanTB=TendanceBaissiere AND open[Cotation]<Tenkan AND close[Cotation]<Tenkan AND high[Cotation]>Tenkan AND BougieIndecise
RebondDirectTenkanTB=TendanceBaissiere AND high[Cotation+1]<Tenkan[1] AND (AvalementBaissier OR NuageNoir) AND NonSurvente
FranchissementTenkanTB=TendanceBaissiere AND open[Cotation]>Tenkan AND close[Cotation]<Tenkan AND BougieImpulsiveBaissiere
SoulevementKijunTB=TendanceBaissiere AND open[Cotation]<Kijun AND close[Cotation]<Kijun AND high[Cotation]>Kijun AND BougieIndecise
RebondDirectKijunTB=TendanceBaissiere AND high[Cotation+1]<Kijun[1] AND (AvalementBaissier OR NuageNoir) AND NonSurvente
FranchissementKijunTB=TendanceBaissiere AND open[Cotation]>Kijun AND close[Cotation]<Kijun AND BougieImpulsiveBaissiere
FranchissementPlusBasTB=TendanceBaissiere AND close[Cotation]<DonchianChannelDown[PeriodeExtremumTendance][Cotation+1] AND BougieImpulsiveBaissiere AND NonSurvente1
//Range
CassureBBR=RangePotentiel AND PrixZoneTBasseRange AND NonSurvente1 AND BougieImpulsiveBaissiere AND close[Cotation]<BBR[1]
RebondBBR=RangePotentiel AND PrixZoneTBasseRange AND Survente AND (BougieIndecise OR Penetrante OR AvalementHaussier)
TraverseeBaissiereRange=RangePotentiel AND PrixZoneBasseRange AND NonSurvente
TraverseeHaussiereRange=RangePotentiel AND PrixZoneHauteRange AND NonSurachat
CassureBHR=RangePotentiel AND PrixZoneTHauteRange AND NonSurachat1 AND BougieImpulsiveHaussiere AND close[Cotation]>BHR[1]
RebondBHR=RangePotentiel AND PrixZoneTHauteRange AND Surachat AND (BougieIndecise OR NuageNoir OR AvalementBaissier)
//Résumons. On a commencé par établir les contextes. Là c'est simple : il y en a 3 (tendance haussière, baissière, range). Après quoi on s'est intéressé à des zones particulières (notamment pour les ranges, où la ZE est notoirement merdique). Ensuite, on a établi une liste exhaustive des situations où il y a quelque chose à faire (enfin, pas exhaustive, il y a tous les bidouillages à contre-tendance, mais c'est l'idée). On a ajouté un filtre selon que l'on souhaitait un surachat ou une survente. En principe... C'est OK.
//Réunion de toutes les situations.
OpportuniteAchat=RessautTenkanTH OR RebondDirectTenkanTH OR FranchissementTenkanTH OR RessautKijunTH OR RebondDirectKijunTH OR FranchissementKijunTH OR FranchissementPlusHautTH OR RebondBBR OR TraverseeHaussiereRange OR CassureBHR
OpportuniteVente=SoulevementTenkanTB OR RebondDirectTenkanTB OR FranchissementTenkanTB OR SoulevementKijunTB OR RebondDirectKijunTB OR FranchissementKijunTB OR FranchissementPlusBasTB OR CassureBBR OR TraverseeBaissiereRange OR RebondBHR
OpportuniteScreener=OpportuniteAchat OR OpportuniteVente
SCREENER[OpportuniteScreener]
// Screener pour détecter des contextes pertinents : range ou tendance
//---------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------
//PARAMETRES ICHIMOKU DE BASE
//Définition des variables
Tenkan=(lowest[9](low)[Cotation]+highest[9](high)[Cotation])/2
Kijun=(lowest[26](low)[Cotation]+highest[26](high)[Cotation])/2
SSAfuture=(Tenkan+Kijun)/2
SSBfuture=(lowest[52](low)[Cotation]+highest[52](high)[Cotation])/2
SSAactuelle=((lowest[9](low)[Cotation+26]+highest[9](high)[Cotation+26])/2+(lowest[26](low)[Cotation+26]+highest[26](high)[Cotation+26])/2)/2
SSBactuelle=(lowest[52](low)[Cotation+26]+highest[52](high)[Cotation+26])/2
//---------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------
//PARAMETRES PERSONNALISABLES
//Période de la bougie considérée (0 = bougie en cours, 1 = bougie clôturée)
Cotation=1
//Paramètres liés au range
//Temps sur lequel on cherche les twists du Kumo pour considérer la présence d'un range (par défaut, arbitrairement fixé à 52)
PeriodeRechercheTwistRange=50
//Nombre de twists nécessaires pour considérer le range comme présent (1=potentiel, 2=certain)
NbTwistsKumoDefinitionRange=2
//Temps sur lequel on cherche une absence de twist du Kumo pour considérer la tendance comme solide (par défaut, arbitrairement fixé à 20)
PeriodeRechercheTwistTendance=20
//Temps sur lequel on étudie le mouvement de la SSB dans l'analyse des tendances
TempsEtudeSSBTendance=20
//Nombre de mouvements de SSB dans le sens de la tendance pour la valider (définition 1)
NbMouvementSSBTendance=2
//Définition des zones du range, en % de la hauteur
ZoneTBasseRange=10
ZoneBasseRange=33
ZoneHauteRange=67
ZoneTHauteRange=90
//Nombre de périodes utilisées pour calculer les bornes du range
PeriodeCalculBornesRange=25
//Définition d'un range
//Recherche des twists du Kumo futur
DetectionTwist=SSAfuture CROSSES OVER SSBfuture OR SSAfuture CROSSES UNDER SSBfuture
NbTwistsKumoR=SUMMATION[PeriodeRechercheTwistRange](DetectionTwist)
RangeCritere=NbTwistsKumoR>=NbTwistsKumoDefinitionRange
//Définition d'une tendance
//Définition d'une tendance 1
//Recherche et élimination des twists du Kumo futur
NbTwistsKumoT=SUMMATION[PeriodeRechercheTwistTendance](DetectionTwist)
Tendance1Critere1=NbTwistsKumoT=0
//Autres critères : tendance haussière
//Placement des prix par rapport à la Chikou
TendanceHaussiere1Critere2=close[Cotation]>close[Cotation+26]
//Au moins un certain nombre d'ascensions de la SSBfuture
HausseSSBfuture=SSBfuture>SSBfuture[1]
BaisseSSBfuture=SSBfuture<SSBfuture[1]
TendanceHaussiere1Critere3=SUMMATION[TempsEtudeSSBTendance](HausseSSBfuture)>=NbMouvementSSBTendance
//Absence d'alerte baissière
TendanceHaussiere1Critere4=SUMMATION[TempsEtudeSSBTendance](BaisseSSBfuture)=0
//Réunion des conditions pour la tendance haussière, définition 1
TendanceHaussiere1=Tendance1Critere1 AND TendanceHaussiere1Critere2 AND TendanceHaussiere1Critere3 AND TendanceHaussiere1Critere4
//Autres critères : tendance baissière
//Placement des prix par rapport à la Chikou
TendanceBaissiere1Critere2=close[Cotation]<close[Cotation+26]
//Au moins un certain nombre de baisses de la SSBfuture
TendanceBaissiere1Critere3=SUMMATION[TempsEtudeSSBTendance](BaisseSSBfuture)>=NbMouvementSSBTendance
//Absence d'alerte haussière
TendanceBaissiere1Critere4=SUMMATION[TempsEtudeSSBTendance](HausseSSBfuture)=0
//Réunion des conditions pour la tendance baissière, définition 1
TendanceBaissiere1=Tendance1Critere1 AND TendanceBaissiere1Critere2 AND TendanceBaissiere1Critere3 AND TendanceBaissiere1Critere4
//Définition d'une tendance 2
//Là, on cherche l'alignement parfait : à la hausse, par exemple, SSBactuelle>SSAactuelle>Kijun>Tenkan et Chikou au-dessus des prix
TendanceHaussiere2=SSBactuelle<SSAactuelle AND SSAactuelle<Kijun AND Kijun<Tenkan AND close[Cotation]>close[Cotation+26]
TendanceBaissiere2=SSBactuelle>SSAactuelle AND SSAactuelle>Kijun AND Kijun>Tenkan AND close[Cotation]<close[Cotation+26]
TendanceHaussiere=TendanceHaussiere1 OR TendanceHaussiere2
TendanceBaissiere=TendanceBaissiere1 OR TendanceBaissiere2
Tendance=TendanceHaussiere OR TendanceBaissiere
//Ajout de condition en lien avec la zone où se trouvent les prix
//Pour les ranges
//Calcul de la borne basse et haute du range
BHRclose=highest[PeriodeCalculBornesRange](close)[Cotation]
BHRopen=highest[PeriodeCalculBornesRange](open)[Cotation]
BBRclose=lowest[PeriodeCalculBornesRange](close)[Cotation]
BBRopen=lowest[PeriodeCalculBornesRange](open)[Cotation]
BHR=MAX(BHRclose,BHRopen)
BBR=MIN(BBRclose,BBRopen)
HauteurRange=BHR-BBR
//Vérification que les prix sont dans la bonne zone
PrixZoneTBasseRange=close[Cotation]<=BBR+HauteurRange*ZoneTBasseRange/100
PrixZoneBasseRange=close[Cotation]>=BBR+HauteurRange*ZoneTBasseRange/100 AND close[Cotation]<=BBR+HauteurRange*ZoneBasseRange/100
PrixZoneHauteRange=close[Cotation]<=BBR+HauteurRange*ZoneTHauteRange/100 AND close[Cotation]>=BBR+HauteurRange*ZoneHauteRange/100
PrixZoneTHauteRange=close[Cotation]>BBR+HauteurRange*ZoneTHauteRange/100
ZoneInteretRange=PrixZoneTBasseRange OR PrixZoneBasseRange OR PrixZoneHauteRange OR PrixZoneTHauteRange
//Pour les tendances
ZoneInteretTendance=low[Cotation] CROSSES UNDER Tenkan OR low[Cotation] CROSSES OVER Tenkan OR high[Cotation] CROSSES UNDER Tenkan OR high[Cotation] CROSSES OVER Tenkan OR low[Cotation] CROSSES UNDER Kijun OR low[Cotation] CROSSES OVER Kijun OR high[Cotation] CROSSES UNDER Kijun OR high[Cotation] CROSSES OVER Kijun
OpportuniteTendance=Tendance AND ZoneInteretTendance
OpportuniteRange=RangeCritere AND ZoneInteretRange
OpportuniteScreener=OpportuniteTendance OR OpportuniteRange
SCREENER[OpportuniteScreener]
// Screener pour détecter des contextes pertinents : range ou tendance
//---------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------
//PARAMETRES ICHIMOKU DE BASE
//Définition des variables
Tenkan=(lowest[9](low)[Cotation]+highest[9](high)[Cotation])/2
Kijun=(lowest[26](low)[Cotation]+highest[26](high)[Cotation])/2
SSAfuture=(Tenkan+Kijun)/2
SSBfuture=(lowest[52](low)[Cotation]+highest[52](high)[Cotation])/2
SSAactuelle=((lowest[9](low)[Cotation+26]+highest[9](high)[Cotation+26])/2+(lowest[26](low)[Cotation+26]+highest[26](high)[Cotation+26])/2)/2
SSBactuelle=(lowest[52](low)[Cotation+26]+highest[52](high)[Cotation+26])/2
//---------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------
//PARAMETRES PERSONNALISABLES
//Période de la bougie considérée (0 = bougie en cours, 1 = bougie clôturée)
Cotation=1
//Paramètres liés au range
//Temps sur lequel on cherche les twists du Kumo pour considérer la présence d'un range (par défaut, arbitrairement fixé à 52)
PeriodeRechercheTwistRange=50
//Nombre de twists nécessaires pour considérer le range comme présent (1=potentiel, 2=certain)
NbTwistsKumoDefinitionRange=2
//Temps sur lequel on cherche une absence de twist du Kumo pour considérer la tendance comme solide (par défaut, arbitrairement fixé à 20)
PeriodeRechercheTwistTendance=20
//Temps sur lequel on étudie le mouvement de la SSB dans l'analyse des tendances
TempsEtudeSSBTendance=20
//Nombre de mouvements de SSB dans le sens de la tendance pour la valider (définition 1)
NbMouvementSSBTendance=2
//Définition des zones du range, en % de la hauteur
ZoneTBasseRange=10
ZoneBasseRange=33
ZoneHauteRange=67
ZoneTHauteRange=90
//Nombre de périodes utilisées pour calculer les bornes du range
PeriodeCalculBornesRange=25
//Définition d'un range
//Recherche des twists du Kumo futur
DetectionTwist=SSAfuture CROSSES OVER SSBfuture OR SSAfuture CROSSES UNDER SSBfuture
NbTwistsKumoR=SUMMATION[PeriodeRechercheTwistRange](DetectionTwist)
RangeCritere=NbTwistsKumoR>=NbTwistsKumoDefinitionRange
//Définition d'une tendance
//Définition d'une tendance 1
//Recherche et élimination des twists du Kumo futur
NbTwistsKumoT=SUMMATION[PeriodeRechercheTwistTendance](DetectionTwist)
Tendance1Critere1=NbTwistsKumoT=0
//Autres critères : tendance haussière
//Placement des prix par rapport à la Chikou
TendanceHaussiere1Critere2=close[Cotation]>close[Cotation+26]
//Au moins un certain nombre d'ascensions de la SSBfuture
HausseSSBfuture=SSBfuture>SSBfuture[1]
BaisseSSBfuture=SSBfuture<SSBfuture[1]
TendanceHaussiere1Critere3=SUMMATION[TempsEtudeSSBTendance](HausseSSBfuture)>=NbMouvementSSBTendance
//Absence d'alerte baissière
TendanceHaussiere1Critere4=SUMMATION[TempsEtudeSSBTendance](BaisseSSBfuture)=0
//Réunion des conditions pour la tendance haussière, définition 1
TendanceHaussiere1=Tendance1Critere1 AND TendanceHaussiere1Critere2 AND TendanceHaussiere1Critere3 AND TendanceHaussiere1Critere4
//Autres critères : tendance baissière
//Placement des prix par rapport à la Chikou
TendanceBaissiere1Critere2=close[Cotation]<close[Cotation+26]
//Au moins un certain nombre de baisses de la SSBfuture
TendanceBaissiere1Critere3=SUMMATION[TempsEtudeSSBTendance](BaisseSSBfuture)>=NbMouvementSSBTendance
//Absence d'alerte haussière
TendanceBaissiere1Critere4=SUMMATION[TempsEtudeSSBTendance](HausseSSBfuture)=0
//Réunion des conditions pour la tendance baissière, définition 1
TendanceBaissiere1=Tendance1Critere1 AND TendanceBaissiere1Critere2 AND TendanceBaissiere1Critere3 AND TendanceBaissiere1Critere4
//Définition d'une tendance 2
//Là, on cherche l'alignement parfait : à la hausse, par exemple, SSBactuelle>SSAactuelle>Kijun>Tenkan et Chikou au-dessus des prix
TendanceHaussiere2=SSBactuelle<SSAactuelle AND SSAactuelle<Kijun AND Kijun<Tenkan AND close[Cotation]>close[Cotation+26]
TendanceBaissiere2=SSBactuelle>SSAactuelle AND SSAactuelle>Kijun AND Kijun>Tenkan AND close[Cotation]<close[Cotation+26]
TendanceHaussiere=TendanceHaussiere1 OR TendanceHaussiere2
TendanceBaissiere=TendanceBaissiere1 OR TendanceBaissiere2
Tendance=TendanceHaussiere OR TendanceBaissiere
//Ajout de condition en lien avec la zone où se trouvent les prix
//Pour les ranges
//Calcul de la borne basse et haute du range
BHRclose=highest[PeriodeCalculBornesRange](close)[Cotation]
BHRopen=highest[PeriodeCalculBornesRange](open)[Cotation]
BBRclose=lowest[PeriodeCalculBornesRange](close)[Cotation]
BBRopen=lowest[PeriodeCalculBornesRange](open)[Cotation]
BHR=MAX(BHRclose,BHRopen)
BBR=MIN(BBRclose,BBRopen)
HauteurRange=BHR-BBR
//Vérification que les prix sont dans la bonne zone
PrixZoneTBasseRange=close[Cotation]<=BBR+HauteurRange*ZoneTBasseRange/100
PrixZoneBasseRange=close[Cotation]>=BBR+HauteurRange*ZoneTBasseRange/100 AND close[Cotation]<=BBR+HauteurRange*ZoneBasseRange/100
PrixZoneHauteRange=close[Cotation]<=BBR+HauteurRange*ZoneTHauteRange/100 AND close[Cotation]>=BBR+HauteurRange*ZoneHauteRange/100
PrixZoneTHauteRange=close[Cotation]>BBR+HauteurRange*ZoneTHauteRange/100
ZoneInteretRange=PrixZoneTBasseRange OR PrixZoneBasseRange OR PrixZoneHauteRange OR PrixZoneTHauteRange
//Pour les tendances
ZoneInteretTendance=low[Cotation] CROSSES UNDER Tenkan OR low[Cotation] CROSSES OVER Tenkan OR high[Cotation] CROSSES UNDER Tenkan OR high[Cotation] CROSSES OVER Tenkan OR low[Cotation] CROSSES UNDER Kijun OR low[Cotation] CROSSES OVER Kijun OR high[Cotation] CROSSES UNDER Kijun OR high[Cotation] CROSSES OVER Kijun
OpportuniteTendance=Tendance AND ZoneInteretTendance
OpportuniteRange=RangeCritere AND ZoneInteretRange
OpportuniteScreener=OpportuniteTendance OR OpportuniteRange
IF NOT OpportuniteScreener THEN
FlyYouFools=1
ELSE
FlyYouFools=0
ENDIF
ActifPourri=FlyYouFools=1
SCREENER[ActifPourri]
// On va revenir sur des réflexions de base. Pour un trade réussi il faut les ingrédients suivants.
//a) Contexte (tendance haussière, baissière, ou range)
//b) Zone (proche de Tenkan ou de Kijun, plutôt haut et bas de range)
//c) Un signal sur les chandeliers (impulsion ou hésitation, ainsi que les classiques dojis, avalements et pénétrantes)
//d) Un filtre (en l'occurrence par les stochastiques, selon qu'on veut ou non un surachat ou une survente)
//e) Un money management
//f) La psycho
//On va tenter de définir tout ça posément et un coup à la fois avec ce screener.
//Deux définitions de tendance : par l'absence de twist (cf Patrick Riguet), ce qui est plus facile à screener que la loi de Dow. J'ajoute quelques conditions.
//En tendance haussière : absence de twist du Kumo, SSB qui bouge au moins un peu à la hausse, et en tout cas ne descend pas. Chikou au-dessus des prix.
//Je rajoute une définition 2 : l'alignement parfait de la SSB, SSA, Kijun, Tenkan, et Chikou.
//---------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------
//PARAMETRES ICHIMOKU DE BASE
//Définition des variables
Tenkan=(lowest[9](low)[Cotation]+highest[9](high)[Cotation])/2
Kijun=(lowest[26](low)[Cotation]+highest[26](high)[Cotation])/2
SSAfuture=(Tenkan+Kijun)/2
SSBfuture=(lowest[52](low)[Cotation]+highest[52](high)[Cotation])/2
SSAactuelle=((lowest[9](low)[Cotation+26]+highest[9](high)[Cotation+26])/2+(lowest[26](low)[Cotation+26]+highest[26](high)[Cotation+26])/2)/2
SSBactuelle=(lowest[52](low)[Cotation+26]+highest[52](high)[Cotation+26])/2
//---------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------
//PARAMETRES PERSONNALISABLES
//Période de la bougie considérée (0 = bougie en cours, 1 = bougie clôturée)
Cotation=1
//Définition d'une tendance
//Temps sur lequel on cherche une absence de twist du Kumo pour considérer la tendance comme solide (par défaut, arbitrairement fixé à 20)
PeriodeRechercheTwistTendance=20
//Temps sur lequel on étudie le mouvement de la SSB dans l'analyse des tendances
TempsEtudeSSBTendance=20
//Nombre de mouvements de SSB dans le sens de la tendance pour la valider (définition 1)
NbMouvementSSBTendance=2
//Définition d'une tendance 1
//Recherche et élimination des twists du Kumo futur
DetectionTwist=SSAfuture CROSSES OVER SSBfuture OR SSAfuture CROSSES UNDER SSBfuture
NbTwistsKumoT=SUMMATION[PeriodeRechercheTwistTendance](DetectionTwist)
Tendance1Critere1=NbTwistsKumoT=0
//Autres critères : tendance haussière
//Placement des prix par rapport à la Chikou
TendanceHaussiere1Critere2=close[Cotation]>close[Cotation+26]
//Au moins un certain nombre d'ascensions de la SSBfuture
HausseSSBfuture=SSBfuture>SSBfuture[1]
BaisseSSBfuture=SSBfuture<SSBfuture[1]
TendanceHaussiere1Critere3=SUMMATION[TempsEtudeSSBTendance](HausseSSBfuture)>=NbMouvementSSBTendance
//Absence d'alerte baissière
TendanceHaussiere1Critere4=SUMMATION[TempsEtudeSSBTendance](BaisseSSBfuture)=0
//Réunion des conditions pour la tendance haussière, définition 1
TendanceHaussiere1=Tendance1Critere1 AND TendanceHaussiere1Critere2 AND TendanceHaussiere1Critere3 AND TendanceHaussiere1Critere4
//Autres critères : tendance baissière
//Placement des prix par rapport à la Chikou
TendanceBaissiere1Critere2=close[Cotation]<close[Cotation+26]
//Au moins un certain nombre de baisses de la SSBfuture
TendanceBaissiere1Critere3=SUMMATION[TempsEtudeSSBTendance](BaisseSSBfuture)>=NbMouvementSSBTendance
//Absence d'alerte haussière
TendanceBaissiere1Critere4=SUMMATION[TempsEtudeSSBTendance](HausseSSBfuture)=0
//Réunion des conditions pour la tendance baissière, définition 1
TendanceBaissiere1=Tendance1Critere1 AND TendanceBaissiere1Critere2 AND TendanceBaissiere1Critere3 AND TendanceBaissiere1Critere4
//Définition d'une tendance 2
//Là, on cherche l'alignement parfait : à la hausse, par exemple, SSBactuelle>SSAactuelle>Kijun>Tenkan et Chikou au-dessus des prix
TendanceHaussiere2=SSBactuelle<SSAactuelle AND SSAactuelle<Kijun AND Kijun<Tenkan AND close[Cotation]>close[Cotation+26]
TendanceBaissiere2=SSBactuelle>SSAactuelle AND SSAactuelle>Kijun AND Kijun>Tenkan AND close[Cotation]<close[Cotation+26]
TendanceHaussiere=TendanceHaussiere1 OR TendanceHaussiere2
TendanceBaissiere=TendanceBaissiere1 OR TendanceBaissiere2
Tendance=TendanceHaussiere OR TendanceBaissiere
SCREENER[Tendance]
// On va revenir sur des réflexions de base. Pour un trade réussi il faut les ingrédients suivants.
//a) Contexte (tendance haussière, baissière, ou range)
//b) Zone (proche de Tenkan ou de Kijun, plutôt haut et bas de range)
//c) Un signal sur les chandeliers (impulsion ou hésitation, ainsi que les classiques dojis, avalements et pénétrantes)
//d) Un filtre (en l'occurrence par les stochastiques, selon qu'on veut ou non un surachat ou une survente)
//e) Un money management
//f) La psycho
//On va tenter de définir tout ça posément et un coup à la fois avec ce screener.
//Deux définitions de tendance : par l'absence de twist (cf Patrick Riguet), ce qui est plus facile à screener que la loi de Dow. J'ajoute quelques conditions.
//En tendance haussière : absence de twist du Kumo, SSB qui bouge au moins un peu à la hausse, et en tout cas ne descend pas. Chikou au-dessus des prix.
//Je rajoute une définition 2 : l'alignement parfait de la SSB, SSA, Kijun, Tenkan, et Chikou.
//---------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------
//PARAMETRES ICHIMOKU DE BASE
//Définition des variables
Tenkan=(lowest[9](low)[Cotation]+highest[9](high)[Cotation])/2
Kijun=(lowest[26](low)[Cotation]+highest[26](high)[Cotation])/2
SSAfuture=(Tenkan+Kijun)/2
SSBfuture=(lowest[52](low)[Cotation]+highest[52](high)[Cotation])/2
SSAactuelle=((lowest[9](low)[Cotation+26]+highest[9](high)[Cotation+26])/2+(lowest[26](low)[Cotation+26]+highest[26](high)[Cotation+26])/2)/2
SSBactuelle=(lowest[52](low)[Cotation+26]+highest[52](high)[Cotation+26])/2
//---------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------
//PARAMETRES PERSONNALISABLES
//Période de la bougie considérée (0 = bougie en cours, 1 = bougie clôturée)
Cotation=1
//Définition d'une tendance
//Temps sur lequel on cherche une absence de twist du Kumo pour considérer la tendance comme solide (par défaut, arbitrairement fixé à 20)
PeriodeRechercheTwistTendance=20
//Temps sur lequel on étudie le mouvement de la SSB dans l'analyse des tendances
TempsEtudeSSBTendance=20
//Nombre de mouvements de SSB dans le sens de la tendance pour la valider (définition 1)
NbMouvementSSBTendance=2
//Définition d'une tendance 1
//Recherche et élimination des twists du Kumo futur
DetectionTwist=SSAfuture CROSSES OVER SSBfuture OR SSAfuture CROSSES UNDER SSBfuture
NbTwistsKumoT=SUMMATION[PeriodeRechercheTwistTendance](DetectionTwist)
Tendance1Critere1=NbTwistsKumoT=0
//Autres critères : tendance haussière
//Placement des prix par rapport à la Chikou
TendanceHaussiere1Critere2=close[Cotation]>close[Cotation+26]
//Au moins un certain nombre d'ascensions de la SSBfuture
HausseSSBfuture=SSBfuture>SSBfuture[1]
BaisseSSBfuture=SSBfuture<SSBfuture[1]
TendanceHaussiere1Critere3=SUMMATION[TempsEtudeSSBTendance](HausseSSBfuture)>=NbMouvementSSBTendance
//Absence d'alerte baissière
TendanceHaussiere1Critere4=SUMMATION[TempsEtudeSSBTendance](BaisseSSBfuture)=0
//Réunion des conditions pour la tendance haussière, définition 1
TendanceHaussiere1=Tendance1Critere1 AND TendanceHaussiere1Critere2 AND TendanceHaussiere1Critere3 AND TendanceHaussiere1Critere4
//Autres critères : tendance baissière
//Placement des prix par rapport à la Chikou
TendanceBaissiere1Critere2=close[Cotation]<close[Cotation+26]
//Au moins un certain nombre de baisses de la SSBfuture
TendanceBaissiere1Critere3=SUMMATION[TempsEtudeSSBTendance](BaisseSSBfuture)>=NbMouvementSSBTendance
//Absence d'alerte haussière
TendanceBaissiere1Critere4=SUMMATION[TempsEtudeSSBTendance](HausseSSBfuture)=0
//Réunion des conditions pour la tendance baissière, définition 1
TendanceBaissiere1=Tendance1Critere1 AND TendanceBaissiere1Critere2 AND TendanceBaissiere1Critere3 AND TendanceBaissiere1Critere4
//Définition d'une tendance 2
//Là, on cherche l'alignement parfait : à la hausse, par exemple, SSBactuelle>SSAactuelle>Kijun>Tenkan et Chikou au-dessus des prix
TendanceHaussiere2=SSBactuelle<SSAactuelle AND SSAactuelle<Kijun AND Kijun<Tenkan AND close[Cotation]>close[Cotation+26]
TendanceBaissiere2=SSBactuelle>SSAactuelle AND SSAactuelle>Kijun AND Kijun>Tenkan AND close[Cotation]<close[Cotation+26]
TendanceHaussiere=TendanceHaussiere1 OR TendanceHaussiere2
TendanceBaissiere=TendanceBaissiere1 OR TendanceBaissiere2
Tendance=TendanceHaussiere OR TendanceBaissiere
//On va maintenant rajouter un critère : les prix doivent interagir avec la Tenkan ou la Kijun. A l'opérateur ensuite de décider quoi faire.
InteractionTenkan=low[Cotation] CROSSES OVER Tenkan OR low[Cotation] CROSSES UNDER Tenkan OR high[Cotation] CROSSES OVER Tenkan OR high[Cotation] CROSSES UNDER Tenkan
InteractionKijun=low[Cotation] CROSSES OVER Kijun OR low[Cotation] CROSSES UNDER Kijun OR high[Cotation] CROSSES OVER Kijun OR high[Cotation] CROSSES UNDER Kijun
InteractionLignesIchimoku=InteractionTenkan OR InteractionKijun
TendancePlusZone=Tendance AND InteractionLignesIchimoku
SCREENER[TendancePlusZone]
26 Déc 2021, 21:08
26 Déc 2021, 23:56
27 Déc 2021, 01:27
27 Déc 2021, 12:04
Excellente initiative Myrrdin !
Merci pour les screeners je vais essayer de les étudier et te faire un retour mais je ne sais pas trop quand !
Ne t'étonne pas si l'ouverture du compte prend plus d'un mois.
Je ne sais pas si tu as déjà entrepris les démarches... ?
04 Jan 2022, 00:21
04 Jan 2022, 09:40
04 Jan 2022, 15:38
04 Jan 2022, 16:14
Au sujet du style de trading, je te l’avais dit:
topic7419-270.html#p69119