16 Déc 2020, 00:55
//Screener destiné à repérer des configurations favorables au trading de contre-tendance, à l'achat (A), en cotation continue (CC).
//La cotation continue sous-entend que je m'intéresse à la bougie clôturée, donc précédant celle où je me trouve. Sur le Forex, le jeudi à 16h12, la bougie H1 qui m'intéresse est celle de 15H.
//Attention : screener mal adapté au trading sur actions. Sur PRT, les bougies ne sont pas considérées comme clôturées avant l'ouverture de la suivante. Donc, si je me connecte le jeudi à 19h, les marchés sont fermés, mais pour le logiciel, je suis toujours jeudi et il va repérer des opportunités concernant la journée de mercredi si je suis en journalier.
//Un screener "CD" (Cotation Discontinue) sera créé pour pallier à ce problème.
//Ce screener cherche des opportunités à l'achat pour du contre-tendance, en d'autres termes, des titres survendus sur le point de se retourner.
//Le principe est d'utiliser uniquement Ichimoku, donc pas de recours direct aux stochastiques ou au RSI même pour définir la survente. Cependant, le procédé est très similaire.
//Définition de la survente : 1) distance prix-Tenkan, 2) distance prix-Kijun, 3) distance Tenkan-Kijun.
//Distance prix-Tenkan : on définit la survente comme un titre dans les 20% inférieurs du range de prix des neuf dernières périodes. C'est un calcul similaire au stochastique, mais qui colle avec les paramètres Ichimoku.
//Calcul du seuil de survente, arbitrairement défini à 20% sur un raisonnement similaire aux stochastiques.
c1=(close[1]-lowest[9](low)[1])/(highest[9](high)[1]-lowest[9](low)[1])<0.2
//Distance prix-Kijun : on suit la même logique, mais pour les 26 dernières périodes.
c2=(close[1]-lowest[26](low)[1])/(highest[26](high)[1]-lowest[26](low)[1])<0.2
//Distance Tenkan-Kijun : on considère arbitrairement que la survente apparaît lorsque la Tenkan est dans les 30% inférieurs du range de prix des 26 dernières périodes.
c3=((highest[9](high)[1]+lowest[9](low)[1])/2-lowest[26](low)[1])/(highest[26](high)[1]-lowest[26](low)[1])<0.3
//Rappel : 3 critères de survente. 1/ Distance prix/Tenkan (20%) 2/ Distance prix/Kijun (20%). 3/ Distance Tenkan-Kijun (30%). On prend tout titre remplissant au moins deux des trois critères.
c4=c1 AND c2
c5=c2 AND c3
c6=c3 AND c1
//Après quoi, on va chercher des signes de faiblesse de la tendance en cours. On retiendra : avalement haussier, structure en pénétrante, doji. Les haramis seront ignorés car je n'en tiens que peu compte. Les étoiles du matin seront ignorées également car elles incluent un doji dans leur formation, et seront donc détectées par le screener.
//Avalement haussier :
//Tendance antérieure baissière, matérialisée par au moins la bougie avalée clôturant plus bas que la bougie précédente.
c7=close[2]<close[3]
//Bougie avalée baissière.
c8=close[2]<open[2]
//Bougie précédente baissière
c9=close[3]<open[3]
//Ouverture inférieure à la clôture précédente.
c10=open[1]<close[2]
//Clôture termine néanmoins au-dessus de l'ouverture précédente.
c11=close[1]>open[2]
//Réunion des conditions
c12=c7 AND c8 AND c9 AND c10 AND c11
//Structure en pénétrante :
//Tendance baissière déjà présente, donc une clôture inférieure à la clôture précédente.
c13=close[2]<close[3]
//Ouverture inférieure à la clôture précédente. Note : on autorise un "inférieur ou égal" pour rendre ce screener également utilisable sur marché Forex et cryptos, où la cotation est continue et où un gap d'ouverture est rare, alors même que le signal peut être valable.
c14=open[1]<=close[2]
//Clôture dépassant le point médian de la bougie précédente.
c15=close[1]>MedianPrice[2]
//Note : ce code peut être redondant avec un avalement, puisque si les prix remontent au-delà de l'ouverture précédente, ils rentreront dans la catégorie "pénétrante" comme dans la catégorie "avalement". Pas bien grave.
c16=c13 AND c14 AND c15
//Doji
//Note : on acceptera comme "doji" tout bougie dont le corps fera moins de 10% de la hauteur du range de prix. C'est un choix arbitraire, facile à modifier.
//Différence entre ouverture et clôture, divisée par le range de prix :
c17=abs(close[1]-open[1])/abs(High[1]-Low[1])<0.1
SCREENER[(c4 OR c5 OR c6) AND (c12 OR c16 or c17)]
21 Déc 2020, 02:47