Screener pour fanion
Forums › ProRealTime forum Français › Support ProScreener › Screener pour fanion
- This topic has 2 replies, 2 voices, and was last updated 3 years ago by deletedaccount210122.
Viewing 3 posts - 1 through 3 (of 3 total)
-
-
02/18/2021 at 1:37 PM #161917
Je viens de faire un petit script pour détecter les fanions. Je trouve qu’il fonctionne plutôt bien, même s’il retourne pas énormément de valeur. D’ailleurs si vous avez un fanion sous le coude pour tester 🙂
Qu’en pensez-vous ?123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177TIMEFRAME(daily)// ParamètresparamJoursRetourFanion = 5 // Nombre de jours à revenir en arrière pour déterminer le plus haut et bas pour voir si on est toujours dans le fanionparamPcMargeFanion = 10 // Pourcentage de marge pour voir si une bougie rentre entre les précédentesparamNbJoursMiniFanion = 4 // Nombre de jours minimum pour constituer le fanionparamPcGaucheMin = 8 // %age minamale de la partie de gaucheparamVolumeMin = 200000 // Volume moyen minimumparamMinPcImpulsion = 8 // %age minimum de la bougie d'impulsion// InitalisationcondFanion = 1// On parcours les jours en reculantnJour = 1bContinue = 1xMoyenneVolumeFanion = 0WHILE bContinue// Détermine le plus haut et bas sur les x derniers joursxPlusHautPrec = 0xPlusBasPrec = 999999FOR i = 1 TO paramJoursRetourFanion DOxHautTmp = MAX(OPEN[nJour + i], CLOSE[nJour + i])xBasTmp = MIN(OPEN[nJour + i], CLOSE[nJour + i])IF (xHautTmp > xPlusHautPrec) THENxPlusHautPrec = xHautTmpENDIFIF (xBasTmp < xPlusBasPrec) THENxPlusBasPrec = xBasTmpENDIFNEXT// Si pas assez de données, on affiche pasIF (xPlusBasPrec = 999999 OR xPlusHautPrec = 0) THENcondFanion = 0BREAKENDIF// On applique des margesxPlusHautPrec = xPlusHautPrec * (1 + (paramPcMargeFanion / 100))xPlusBasPrec = xPlusBasPrec * (1 - (paramPcMargeFanion / 100))// On teste si notre bougie du jour entre donc dans ces plus et plus basxHaut = MAX(OPEN[nJour], CLOSE[nJour])xBas = MIN(OPEN[nJour], CLOSE[nJour])// Si la bougie rentre dans les précédentesIF (xHaut > xPlusHautPrec OR xBas < xPlusBasPrec) THENBREAKENDIFxMoyenneVolumeFanion = xMoyenneVolumeFanion + VOLUME[nJour]IF (nJour > 20) THENcondFanion = 0BREAKENDIFnJour = nJour + 1WENDxMoyenneVolumeFanion = xMoyenneVolumeFanion / nJour// nJour est le n° de jour (en arrière) qui finit le mât// Si trop peu de jours pour arriver au mât c'est un peu cours comme fanion, on ne prend pasIF (nJour <= paramNbJoursMiniFanion) THENcondFanion = 0ENDIF// Si toujours OKIF (condFanion) THEN// On regarde maintenant que la partie gauche du fanion est bien plus grande que celle de droitexPcGauche = 0xAmplGaucheMax = 0xAmplGaucheMin = 999999xAmplDroiteMax = 0xAmplDroiteMin = 999999nJourDecoupeFanion = ROUND(nJour / 3)FOR i = 0 TO nJourDecoupeFanion - 1// GauchexHaut = MAX(OPEN[nJour - i], CLOSE[nJour - i])xBas = MIN(OPEN[nJour - i], CLOSE[nJour - i])IF (xHaut > xAmplGaucheMax) THENxAmplGaucheMax = xHautENDIFIF (xBas < xAmplGaucheMin) THENxAmplGaucheMin = xBasENDIFxPcGauche = xPcGauche + (xHaut * 100 / xBas)// DroitexHaut = MAX(OPEN[1 + i], CLOSE[1 + i])xBas = MIN(OPEN[1 + i], CLOSE[1 + i])IF (xHaut > xAmplDroiteMax) THENxAmplDroiteMax = xHautENDIFIF (xBas < xAmplDroiteMin) THENxAmplDroiteMin = xBasENDIFNEXTxAmplitudeGauche = xAmplGaucheMax - xAmplGaucheMinxAmplitudeDroite = xAmplDroiteMax - xAmplDroiteMinxPcGauche = xPcGauche / nJourDecoupeFanionxPcGauche = ((xPcGauche / 100) - 1) * 100// Si pourcentage de gauche est de x% passeIF (xPcGauche < paramPcGaucheMin) THENcondFanion = 0ENDIF// L'amplitude de droite doit faire au moins 1/3 de celle de gaucheIF (xAmplitudeGauche / 3 < xAmplitudeDroite) THENcondFanion = 0ENDIFENDIF// Si toujours OKIF (condFanion) THEN// On va ensuite regarder le mât complet// On regarde le plus bas sur les x derniers jours (x = moitié du fanion)nJourMat = ROUND(nJour / 2)xValMin = 999999nJourMin = 0nNbTmp = 0xMoyenneVolumeMat = 0FOR i = 0 TO nJourMat - 1IF (OPEN[nJour + i] < xValMin) THENxValMin = OPEN[nJour + i]nJourMin = inNbTmp = nNbTmp + 1xMoyenneVolumeMat = xMoyenneVolumeMat + VOLUME[nJour + i]ENDIFNEXTxMoyenneVolumeMat = xMoyenneVolumeMat / nNbTmp// Le mat doit faire au moins 3 joursIF (nJourMin <= 2) THENcondFanion = 0ENDIF// Le mat doit faire au moins 1.5x plus que l'amplitude de gauchexHauteurMat = MAX(OPEN[nJour], CLOSE[nJour]) - xValMinIF ((xHauteurMat / xAmplitudeGauche) < 1.5) THENcondFanion = 0ENDIFENDIF// Si toujours OKIF (condFanion) THEN// Enfin on cherche un bougie verte d'impulsionIF Variation < paramMinPcImpulsion THENcondFanion = 0ENDIF// Volumes mât doit être > volume moyen fanionIF (xMoyenneVolumeMat < xMoyenneVolumeFanion) THENcondFanion = 0ENDIF// Volume impulsion doit ête supérieur à la moyenne des deux jours précédents ET supérieur au volume MINxVolTmp = (Volume[1] + Volume[2]) / 2IF (volume < xVolTmp OR volume < paramVolumeMin) THENcondFanion = 0ENDIFENDIFSCREENER[condFanion](xHauteurMat)Désolé pour l’indentation, mais le copier-coller ne fonctionne pas bien on dirait.
02/18/2021 at 2:23 PM #16191902/18/2021 at 2:29 PM #161920Il y a peu/pas de résultat actuellement car les marchés ne s’y prêtent pas trop. A voir donc quand ça ira mieux.
-
AuthorPosts
Viewing 3 posts - 1 through 3 (of 3 total)
Find exclusive trading pro-tools on
Similar topics: