ProRealCode - Trading & Coding with ProRealTime™
Il est aussi possible d’utiliser le même principe en screener.
Sans surprise, les meilleurs résultats sont sur des valeurs haussières.
Egalement, on peut tester la même chose sur de l’hebdo. (voir captures ci-jointes)
[attachment file=”173755″]
[attachment file=”173756″]
Mais pour profiter pleinement de l’indicateur, il faut l’utiliser au sein d’une vraie stratégie, avec:
Si on donne une même moyenne mobile 20 à 10 personnes, nous aurons 10 résultats différents.
Les points d’entrée, de sortie, les tailles de positions, la gestion du stop loss, etc seront différents.
Pour revenir à l’indicateur Extratrend, énormément de stratégies sont possibles.
Par exemple, sélectionner des valeurs en zone bleue, puis prendre une entrée à la sortie d’une contraction de volatilité, entrer uniquement si l’hebdo est bleu, tenter uniquement les retours en zone bleu après consolidation, attendre des validations zone bleue + résistance dynamique, ou encore aller chercher un point d’entrée plus précis avec un risque plus court sur une UT plus basse, genre 1h ou 5min.
Bref un éventail incroyable de possibilités.
Amusez-vous bien, bons trades à tous 😉
Je ne vois pas quelle est mon erreur de syntaxe sur cette ligne après y avoir rajouté “,”
Merci de m’indiquer.
return newDnTrend coloured(255,0,0), newUpTrend coloured(0,255,0),
Bein c’est la virgule justement, il attend autre chose derrière
Il est aussi possible d’utiliser le même principe en screener.
Sans surprise, les meilleurs résultats sont sur des valeurs haussières.
Egalement, on peut tester la même chose sur de l’hebdo. (voir captures ci-jointes)
Mais pour profiter pleinement de l’indicateur, il faut l’utiliser au sein d’une vraie stratégie, avec:
- Gestion du stop loss
- Position sizing en fonction du risque
- Gestion des prises de profits partiels pour cristalliser une partie des gains en cas de retournement trop profond
- Utilisation de “starters” en début de trend (position initiale plus petite, puis ajout d’autres positions au fur et à mesure de la confirmation du mouvement)
Si on donne une même moyenne mobile 20 à 10 personnes, nous aurons 10 résultats différents.
Les points d’entrée, de sortie, les tailles de positions, la gestion du stop loss, etc seront différents.
Pour revenir à l’indicateur Extratrend, énormément de stratégies sont possibles.
Par exemple, sélectionner des valeurs en zone bleue, puis prendre une entrée à la sortie d’une contraction de volatilité, entrer uniquement si l’hebdo est bleu, tenter uniquement les retours en zone bleu après consolidation, attendre des validations zone bleue + résistance dynamique, ou encore aller chercher un point d’entrée plus précis avec un risque plus court sur une UT plus basse, genre 1h ou 5min.
Bref un éventail incroyable de possibilités.
Amusez-vous bien, bons trades à tous 😉
Merci Christophe pour toutes ces précisions, mon but n’était bien évidemment pas de proposer une stratégie bien définie (à chacun de la construire), mais de donner un exemple simple et palier au fait que se servir du screener, comme tu dis, ne permet de scruter le comportement de la valeur que sur les 255 dernières cotations (ce qui est très handicapant).
Par contre impossible de mettre plusieurs timeframe dans le calcul d’un indicateur , pour cela il faut passer par le Backtest 😉
Bonjour,
Avez-vous du nouveau sur ce code ?
//****************************************************************
//Screener pour afficher les débuts de tendance de l'indicateur ExtraTrend conforme Ichimoku
//****************************************************************
//Conditions ExtraTrend hausse
myTrend, ignored, myExpansion = CALL "ExtraTrend"[0, 0, 0, 0, 0](close)
uptrend = myTrend <> myExpansion //ExtraTrend bande bleue
newUpTrend = uptrend and not uptrend[1] //nouvelle tendance haussière (bande bleue)
if newUpTrend then
signal = 1
else
signal = 0
endif
//Conditions de volume
conditionVolume = Average[20](volume) > 10000
//Conditions Ichimoku
TENKAN = (highest[9](high) + lowest[9](low))/2
KIJUN = (highest[26](high) + lowest[26](low))/2
LS = close
SSA = (tenkan[26]+kijun[26])/2
SSB = (highest[52](high[26])+lowest[52](low[26]))/2
conditionSSASSB = close > SSA AND close > SSB
conditionKIJUN = close > KIJUN
conditionsTENKAN = close > TENKAN
conditionsLS = LS > KIJUN[26] AND LS > high[26] //LS au-dessus des prix et de la Kijun
//Pour être encore plus restrictif avec LS au-dessus du nuage : LS > SSA[26] AND LS > SSB[26]
//Lancement screener
screener[newUpTrend AND conditionVolume AND conditionSSASSB AND conditionKIJUN AND conditionsTENKAN AND conditionsLS] (signal as "Trend")
Ça donne quoi en termes de résultat ?
Merci par avance pour vos retours.
Bonjour,
12345678910111213141516171819202122232425262728293031323334 //****************************************************************//Screener pour afficher les débuts de tendance de l’indicateur ExtraTrend conforme Ichimoku//****************************************************************//Conditions ExtraTrend haussemyTrend, ignored, myExpansion = CALL “ExtraTrend”[0, 0, 0, 0, 0](close)uptrend = myTrend <> myExpansion //ExtraTrend bande bleuenewUpTrend = uptrend and not uptrend[1] //nouvelle tendance haussière (bande bleue)if newUpTrend thensignal = 1elsesignal = 0endif//Conditions de volumeconditionVolume = Average[20](volume) > 10000//Conditions IchimokuTENKAN = (highest[9](high) + lowest[9](low))/2KIJUN = (highest[26](high) + lowest[26](low))/2LS = closeSSA = (tenkan[26]+kijun[26])/2SSB = (highest[52](high[26])+lowest[52](low[26]))/2conditionSSASSB = close > SSA AND close > SSBconditionKIJUN = close > KIJUNconditionsTENKAN = close > TENKANconditionsLS = LS > KIJUN[26] AND LS > high[26] //LS au-dessus des prix et de la Kijun//Pour être encore plus restrictif avec LS au-dessus du nuage : LS > SSA[26] AND LS > SSB[26]//Lancement screenerscreener[newUpTrend AND conditionVolume AND conditionSSASSB AND conditionKIJUN AND conditionsTENKAN AND conditionsLS] (signal as “Trend”)Imossible pour moi, d’exporter le code ! Je souhaite savoir si cela est normal ? Version 11, gratuite. Je dispose de la licence de l’indicateur ExtraTrend !
Merci par avance pour vos retours.
On ne peut pas exporter un itf qui comporte un CALL vers un produit du Marketplace, puisque la plateforme tente d’exporter les indicateurs en CALL qui sont évidemment protégés par la licence.
La façon la plus simple de procéder : copier/coller du texte
Ok, merci pour la réponse. Bonne journée.
@Gabi (excusez mon français, j’utilise google translate) pourriez-vous s’il vous plaît expliquer comment vous appliquez l’indicateur de tendance supplémentaire sur une configuration à plusieurs périodes ?
Pour avoir plusieurs unités de temps sur un seul graphique, j’utilise une unité de temps basse de 5 minutes sur lequel j’applique 2 indicateurs. Un pour affiché le trend de l’ExtraTrend et un autre pour afficher les chandeliers journalier :
Defparam DRAWONLASTBARONLY = true
// ******************** WARNING ********************
//
// This code ONLY work in UT 5min (or raise exception)
// and is more accurate with more than 5K bars loaded
// due to uppper timeframe calculations.
//
// ******************** WARNING ********************
timeframe(540mn) // 1 day
dd, ignored, ignored = CALL "ExtraTrend"[0, 0, 0, 0, 0](close)
timeframe(60mn) // 1 hour
hh, ignored, ignored = CALL "ExtraTrend"[0, 0, 0, 0, 0](close)
timeframe(5mn) // 5 min
Trend5, ignored, ignored = CALL "ExtraTrend"[0, 0, 0, 0, 0](close)
timeframe(default)
// --- Display
if day <> day[1] then
Trend540 = dd
endif
if hour <> hour[1] then
Trend60 = hh
endif
return Trend540 coloured(0,204,204,255) style(Line, 2) as "Day", Trend60 coloured(0,0,0,255) style(Line, 2) as "Hour", Trend5 coloured(220,100,100,255) style(Line, 2) as "5mn"
// DayBox Overlay
//
// TODO:
// * Fix last bar redraw
// * Add timeframe detection
// * Add colors customization
if day <> day[1] then
pClose = close[1]
middle = start+ROUND((barindex[1]-start)/2)
if pOpen < pClose then
DRAWRECTANGLE(start, pOpen, barindex[1], pClose) coloured(0,204,204,50) bordercolor(0,204,204,50)
DRAWRECTANGLE(middle, pOpen, (middle+1), pLow)coloured(150,150,150,255) bordercolor(150,150,150,255)
DRAWRECTANGLE(middle, pClose, (middle+1), pHigh)coloured(150,150,150,255) bordercolor(150,150,150,255)
else
DRAWRECTANGLE(start, pOpen, barindex[1], pClose) coloured(220,100,100,50) bordercolor(220,100,100,50)
DRAWRECTANGLE(middle, pOpen, (middle+1), pHigh)coloured(150,150,150,255) bordercolor(150,150,150,255)
DRAWRECTANGLE(middle, pClose, (middle+1), pLow)coloured(150,150,150,255) bordercolor(150,150,150,255)
endif
start = barindex
pOpen = open
pHigh = close
pLow = open
endif
if islastbarupdate then
pClose = close
middle = start+ROUND((barindex-start)/2)
if pOpen < pClose then
DRAWRECTANGLE(start, pOpen, barindex, pClose) coloured(0,204,204,50) bordercolor(0,204,204,50)
DRAWRECTANGLE(middle, pOpen, (middle+1), pLow)coloured(150,150,150,50) bordercolor(150,150,150,50)
DRAWRECTANGLE(middle, pClose, (middle+1), pHigh)coloured(150,150,150,50) bordercolor(150,150,150,50)
else
DRAWRECTANGLE(start, pOpen, barindex, pClose) coloured(220,100,100,50) bordercolor(220,100,100,50)
DRAWRECTANGLE(middle, pOpen, (middle+1), pHigh)coloured(150,150,150,50) bordercolor(150,150,150,50)
DRAWRECTANGLE(middle, pClose, (middle+1), pLow)coloured(150,150,150,50) bordercolor(150,150,150,50)
endif
endif
if high > pHigh then
pHigh = high
endif
if low < pLow then
pLow = low
endif
return
Résultat:
Merci beaucoup – c’est très utile!
Si ca peut aider !
Mais attention, les codes ne sont pas parfait et contiennent des erreurs, ils permettent simplement de saisir la propagation d’un signal multiframe de la ligne de Trend. Ne surtout pas l’utiliser en l’état !
🙂
Merci beaucoup pour cet indicateur très très utile !
Peut-on créer un screener “croissance X rapidité” de chaque marché en trendup (bleu)
Autrement dit, comment distinguer les actions qui ont une probabilité de prendre 3% en 2 semaines de celles qui prendront 2% en 2 jour ?
J’ai tenté un topgunratio = vitesse de la trend [3] * volatilitéhistorique [3] mais c’est trop simpliste. Ça ne fonctionne pas.
Avez-vous d’autres idées ?
J’ai aussi pensé à une extension fibonacci, puisqu’on connaît les uptrend et les donwtrend, mais je n’ai pas testé : il doit y avoir un indicateur plus approprié.
Pour avoir plusieurs unités de temps sur un seul graphique, j’utilise une unité de temps basse de 5 minutes sur lequel j’applique 2 indicateurs. Un pour affiché le trend de l’ExtraTrend et un autre pour afficher les chandeliers journalier :
ExtraTrend multiframe trendline.
12345678910111213141516171819202122232425262728293031 Defparam DRAWONLASTBARONLY = true// ******************** WARNING ********************//// This code ONLY work in UT 5min (or raise exception)// and is more accurate with more than 5K bars loaded// due to uppper timeframe calculations.//// ******************** WARNING ********************timeframe(540mn) // 1 daydd, ignored, ignored = CALL “ExtraTrend”[0, 0, 0, 0, 0](close)timeframe(60mn) // 1 hourhh, ignored, ignored = CALL “ExtraTrend”[0, 0, 0, 0, 0](close)timeframe(5mn) // 5 minTrend5, ignored, ignored = CALL “ExtraTrend”[0, 0, 0, 0, 0](close)timeframe(default)// — Displayif day <> day[1] thenTrend540 = ddendifif hour <> hour[1] thenTrend60 = hhendifreturn Trend540 coloured(0,204,204,255) style(Line, 2) as “Day”, Trend60 coloured(0,0,0,255) style(Line, 2) as “Hour”, Trend5 coloured(220,100,100,255) style(Line, 2) as “5mn”
DayBox Overlay
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 // DayBox Overlay//// TODO:// * Fix last bar redraw// * Add timeframe detection// * Add colors customizationif day <> day[1] thenpClose = close[1]middle = start+ROUND((barindex[1]–start)/2)if pOpen < pClose thenDRAWRECTANGLE(start, pOpen, barindex[1], pClose) coloured(0,204,204,50) bordercolor(0,204,204,50)DRAWRECTANGLE(middle, pOpen, (middle+1), pLow)coloured(150,150,150,255) bordercolor(150,150,150,255)DRAWRECTANGLE(middle, pClose, (middle+1), pHigh)coloured(150,150,150,255) bordercolor(150,150,150,255)elseDRAWRECTANGLE(start, pOpen, barindex[1], pClose) coloured(220,100,100,50) bordercolor(220,100,100,50)DRAWRECTANGLE(middle, pOpen, (middle+1), pHigh)coloured(150,150,150,255) bordercolor(150,150,150,255)DRAWRECTANGLE(middle, pClose, (middle+1), pLow)coloured(150,150,150,255) bordercolor(150,150,150,255)endifstart = barindexpOpen = openpHigh = closepLow = openendifif islastbarupdate thenpClose = closemiddle = start+ROUND((barindex–start)/2)if pOpen < pClose thenDRAWRECTANGLE(start, pOpen, barindex, pClose) coloured(0,204,204,50) bordercolor(0,204,204,50)DRAWRECTANGLE(middle, pOpen, (middle+1), pLow)coloured(150,150,150,50) bordercolor(150,150,150,50)DRAWRECTANGLE(middle, pClose, (middle+1), pHigh)coloured(150,150,150,50) bordercolor(150,150,150,50)elseDRAWRECTANGLE(start, pOpen, barindex, pClose) coloured(220,100,100,50) bordercolor(220,100,100,50)DRAWRECTANGLE(middle, pOpen, (middle+1), pHigh)coloured(150,150,150,50) bordercolor(150,150,150,50)DRAWRECTANGLE(middle, pClose, (middle+1), pLow)coloured(150,150,150,50) bordercolor(150,150,150,50)endifendifif high > pHigh thenpHigh = highendifif low < pLow thenpLow = lowendifreturnRésultat:
Je vous remercie pour vos efforts. Je viens d’acheter l’indicateur.
Comment puis-je créer une stratégie à partir de cela ?
ExtraTrend – exemples de codage screeners et programmation personnalisee
This topic contains 518 replies,
has 4 voices, and was last updated by HUGO LEVIEILS
2 weeks, 4 days ago.
| Forum: | ProScreener : Scanners de Marché & Détection |
| Language: | French |
| Started: | 05/27/2021 |
| Status: | Active |
| Attachments: | 85 files |
The information collected on this form is stored in a computer file by ProRealCode to create and access your ProRealCode profile. This data is kept in a secure database for the duration of the member's membership. They will be kept as long as you use our services and will be automatically deleted after 3 years of inactivity. Your personal data is used to create your private profile on ProRealCode. This data is maintained by SAS ProRealCode, 407 rue Freycinet, 59151 Arleux, France. If you subscribe to our newsletters, your email address is provided to our service provider "MailChimp" located in the United States, with whom we have signed a confidentiality agreement. This company is also compliant with the EU/Swiss Privacy Shield, and the GDPR. For any request for correction or deletion concerning your data, you can directly contact the ProRealCode team by email at privacy@prorealcode.com If you would like to lodge a complaint regarding the use of your personal data, you can contact your data protection supervisory authority.