Le post sur la nature floue de la SSA, c'est toujours en projet, mais pour plus tard.
J'ai eu un très bon début de mois... deux semaines gagnantes. Et ensuite j'ai cramé tous mes gains en une semaine de biais psycho (je suis revenu en gros au point de départ).
Sur la psycho, j'ai eu quelques réflexions ces derniers temps :
-J'ai tendance à aller chercher des plans compliqués plutôt que simples (dans le sens de la tendance, par exemple).
-J'ai tendance à faire des erreurs avec la fatigue. Ce n'est pas purement de la psychologie, mais aussi de la fatigue mentale.
-Ce qui va avec : j'ai tendance à chercher trop de plans. J'ai toujours plus ou moins des planifications sur 21 actifs du Forex. Ca fait beaucoup, et je finis (très souvent) par ne pas appliquer les plans, parce que... trop compliqué, c'est tout.
-Les ratios recommencent à être pas terribles.
Bon, je relativise quand même, j'ai eu quinze jours de gains, ce qui n'est pas mal.
Pour ce coup-ci, j'ai pris le problème par l'autre bout. J'ai écrit des screeners pour réduire ma charge de travail. Le principe, c'est plusieurs screeners "imbriqués" :
-Un pour détecter une tendance ou un range, mais dans des zones intéressants (proche Kijun ou Tenkan en tendance, exclusion de la ZE du range)
-Un pour détecter un signal dans certaines zones de la tendance ou le range (donc le même, mais plus spécifique)
-Un screener "d'exclusion", donc fait pour afficher les actifs qui ne sont pas intéressants.
Je mets ça là, pour ceux que ça intéresse. Je suis assez fier de mon "screener complet", que j'ai mis plusieurs jours à écrire.
J'ai aussi mis deux screeners pour les tendances : un pour les tendances en général, un qui sort les tendances avec des prix au contact de la Tenkan ou de la Kijun (à nous de voir ce qu'ils font ensuite).
Les screeners, je pense vraiment que c'est une aide à ne pas négliger pour se garder de la disponibilité mentale pour trader. Je mets ça ici, et dans le post dédié plus tard.
Screener complet :- Code: Tout sélectionner
// 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 de détection de tendance ou de range (sans signal mais en cherchant quand même des zones appropriées) :- Code: Tout sélectionner
// 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 d'exclusion (l'exact opposé du précédent : il sortira tout ce que le précédent n'a pas sorti, et vice-versa)- Code: Tout sélectionner
// 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]
Screener de détection de tendance (sans signal) :- Code: Tout sélectionner
// 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]
Screener de détection de tendance (sans signal mais avec des prix sur une zone pertinente, comme la Tenkan ou la Kijun) :- Code: Tout sélectionner
// 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]