Cet indicateur utilise le milieu en rotation des points les plus élevés et les plus bas sur une période de temps pour déterminer si l'actif est actuellement en tendance haussière ou baissière.
Cela aide à visualiser la tendance actuelle.
Paramètres: 1/ longueur: la durée de la période pendant laquelle le plus haut et le plus bas seront considérés. 2/ source de prix: la source utilisée pour les calculs 3/ mode agressif : si c'est vrai, la direction de la tendance sera plus sensible aux variations de prix et passera plus rapidement de tendance haussière à tendance baissière et inversement.
Utiliser à des intervalles plus longs pour éviter le bruit (4h, 12h, 1d, etc.)
Déclaration de non-responsabilité:
Ce n'est pas un conseil d'échange, utilisez-le à vos risques et périls. L'auteur de ce scénario ne peut être tenu responsable des pertes directement ou indirectement subies par l'utilisation de cet indicateur.
test de retour
/*backtest start: 2022-05-09 00:00:00 end: 2022-05-15 23:59:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © levieux //@version=5 indicator("Trendelicious", overlay=true) length=input(defval=30) price=input(defval=hl2, title="Price Source") aggressiveMode=input(defval=false,title="Aggressive Mode") isUptrend(price,length,aggressiveMode) => uptrend= false PP= (ta.highest(price,length)+ta.lowest(price,length))/2 ppChange= ta.change(PP,1) ppFlat= ppChange==0 priceOverPP=ta.crossover(price,PP) priceUnderPP=ta.crossunder(price,PP) risingPrice= ta.rising(price,5) risingPP= ta.rising(PP,5) fallingPrice= ta.falling(price,5) fallingPP= ta.falling(PP,5) uptrendCondition1= price>PP and (ppChange>0 or (ppChange==0 and aggressiveMode)) and (ppChange[1]>0 or (ppChange[1]==0 and aggressiveMode)) and ppChange[2]>=0 and ppChange[3]>=0 uptrendCondition2= (priceOverPP or risingPrice) and ppFlat and aggressiveMode uptrendCondition3= risingPrice and fallingPP and aggressiveMode downtrendCondition1= price < PP and (ppChange<0 or (ppChange==0 and aggressiveMode)) and (ppChange[1]<0 or (ppChange[1]==0 and aggressiveMode)) and ppChange[2]<=0 and ppChange[3]<=0 downtrendCondition2= (priceUnderPP or fallingPrice) and ppFlat and aggressiveMode downtrendCondition3= fallingPrice and risingPP and aggressiveMode if uptrendCondition1 or uptrendCondition2 or uptrendCondition3 uptrend:= true else if downtrendCondition1 or downtrendCondition2 or downtrendCondition3 uptrend:= false else uptrend:= uptrend[1] [PP,uptrend] [trendline,uptrend]= isUptrend(price,length,aggressiveMode) baseLinePlot = plot((open + close) / 2, display=display.none) upTrendPlot = plot(uptrend ? trendline : na, "Up Trend", color = color.green, style=plot.style_linebr) downTrendPlot = plot(not uptrend ? trendline : na, "Down Trend", color = color.red, style=plot.style_linebr) fill(baseLinePlot, upTrendPlot, color.new(color.green, 90), fillgaps=false) fill(baseLinePlot, downTrendPlot, color.new(color.red, 90), fillgaps=false) if uptrend strategy.entry("Enter Long", strategy.long) else if not uptrend strategy.entry("Enter Short", strategy.short)