Créer un screener « Actions sur 3 unités de temps / Point pivot MENSUEL »

Bonjour à tous,

 

Voici une demande de codage de screener qui me semble intéressant de vous exposer :

 

Cette demande est intéressante, car :

  • elle définit une tendance sur 3 unités de temps : mensuelle, hebdomadaire, journalière (ce qui est pertinent en swing trading sur actions)
  • elle se sert de la tendance sur les unités de temps supérieures, et d’un point d’entrée suite à une consolidation sur l’unité de temps inférieure
  • elle est… simple à coder ! EH NON, il va falloir se creuser la tête pour la première condition…

 

Il existe plusieurs façons de calculer le point pivot mensuel. Vous risquez de trouver sur internet de nombreux codages pour le calculer, avec des formules fastidieuses du genre :

  • on définit le mois en cours
  • on détermine le nombre N de jour du mois (attention aux mois de février des années bissextiles !)
  • on calcule le plus haut, le plus bas de ces N jours
  • on calcule la clôture du dernier jour
  • on définit ainsi le point pivot avec la moyenne de ces 3 valeurs…
  • OUF !

 

Mais non, la solution est bien plus simple ! En effet, ces fastidieux calculs risquent d’être effectivement nécessaires pour élaborer un backtest, une stratégie de trading… Mais ici, on élabore un SCREENER, et ProRealTime gère le MULTITIMEFRAME pour les screeners (pas encore pour les indicateurs et backtests, dommage).

Voici donc le codage, pas à pas, en toute simplicité :

 

ETAPE 1 : cours > PP mensuel

Nous allons tout simplement basculer sur le timeframe « monthly »

timeframe(monthly)

OH MINCE ! le timeframe « monthly » n’existe pas !!

En me creusant bien la tête, j’ai trouvé cette solution…

 

On définit le point pivot sur les 4 dernières semaines, lorsqu’on change de mois.

Timeframe(weekly)

IF openmonth <> openmonth[1] THEN // en cas de CHANGEMENT DE MOIS uniquement
HAUT = highest[4](high[1])
BAS = lowest[4](low[1])
CLOSEmois = close[1]
ENDIF

PIVOT = (HAUT + BAS + CLOSEmois) / 3

c1 = close > PIVOT

 

ETAPE 2 : cours > MM20 hebdomadaire (croissante)

C’est simple

Timeframe(weekly)
c2 = close > average[20](close) and average[20](close) > average[20](close[1])

 

ETAPE 3 : le cours « touche » la kijun en journalier

C’est un peu vague comme condition : il la touche par son plus haut ? son plus bas ? Il était au-dessus auparavant ?

Comme on parle de consolidation, je pars de l’hypothèse que le plus bas du cours dépasse la kijun, alors que l’ouverture était au-dessus.

D’où :

Timeframe(daily)
c3 = low < (highest[26](high)+lowest[26](low))/2

 

 

Voici donc le code du SCREENER :

Timeframe(weekly)

IF openmonth <> openmonth[1] THEN 
HAUT = highest[4](high[1]) 
BAS = lowest[4](low[1])
 CLOSEmois = close[1] 
ENDIF  
PIVOT = (HAUT + BAS + CLOSEmois) / 3  

1 = close > PIVOT
c2 = close > average[20](close)

Timeframe(daily)
c3 = low < (highest[26](high)+lowest[26](low))/2

screener[c1 and c2 and c3]

 

Et maintenant… à vous de me donner votre avis sur la pertinence de ce screener !

Je vous laisse préciser le point d’entrée, le stop loss, le take profit / stop suiveur… les possibilités sont multiples.

 

 

NOTE

pour une raison que j’ignore, la première condition ne retourne aucune valeur en screener… pourtant l’indicateur fonctionne très bien.
A vérifier plus tard…

 

Point pivot mensuel :

Share Button