Une idée. L'idée est simple: quand le marché tourne, il prend un groupe de traders par surprise.
Méthode Nous laissons le marché d'abord créer une fractale Nous laissons ensuite le marché créer une fractale opposée Nous laissons ensuite le marché briser la première fractale qu'il a créée, piégeant ainsi beaucoup de transactions dans le processus Nous attendons patiemment que le marché donne à ces traders une chance de sortir et nous échangons dans la même direction.
Comment l'utiliser? Les boîtes vertes sont pour l'entrée longue, les boîtes rouges sont courtes. Chaque fois qu'une boîte apparaît, c'est le critère de risque - placez des ordres limite et négociez! Fonctionne sur toutes les périodes
Si vous aimez ce script, laissez une note sur la façon dont vous l'utilisez. Personnellement, je l'utilise avec un biais de plus grande durée.
PS1: certains traders appellent cela la rupture de la structure du marché, certains l'appellent Breaker, je l'appelle juste
test de retour
/*backtest start: 2022-02-24 00:00:00 end: 2022-05-24 00:00:00 period: 1h 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/ // © makuchaku //@version=4 study("Broken Fractal", overlay=true) n = input(title="n==1 or 2", defval=2, type=input.integer) bgColor = input(title="bgColor", type=input.bool, defval=false) drawBoxes = input(title="drawBoxes", type=input.bool, defval=true) showBullishSignal = input(title="showBullishSignal", type=input.bool, defval=true) showBearishSignal = input(title="showBearishSignal", type=input.bool, defval=true) var fractalCounter = 0 var highAtDownFractal = 0.0 var lowAtUpFractal = 0.0 downFractal = (n == 2 ? (high[n-2] < high[n]) and (high[n-1] < high[n]) and (high[n+1] < high[n]) and (high[n+2] < high[n]) : (high[1] > high[0]) and (high[1] > high[2])) // plotchar(downFractal, char='⮝', location=location.abovebar, offset=-1*n, color=color.red, transp=0, title="Down Fractal") if downFractal //line.new(x1=bar_index-1, y1=high[n], x2=bar_index, y2=high[n], extend=extend.none, color=color.silver, style=line.style_solid, width=1) if fractalCounter > 0 fractalCounter := 0 highAtDownFractal := high[n] fractalCounter := fractalCounter - 1 upFractal = (n == 2 ? (low[n-2] > low[n]) and (low[n-1] > low[n]) and (low[n+1] > low[n]) and (low[n+2] > low[n]) : (low[1] < low[0]) and (low[1] < low[2])) // plotchar(upFractal, char='⮟', location=location.belowbar, offset=-1*n, color=color.green, transp=0, title="Up Fractal") if upFractal //line.new(x1=bar_index-1, y1=low[n], x2=bar_index, y2=low[n], extend=extend.none, color=color.silver, style=line.style_solid, width=1) if fractalCounter < 0 fractalCounter := 0 lowAtUpFractal := low[n] fractalCounter := fractalCounter + 1 sellSignal = (fractalCounter < 0) and (open > lowAtUpFractal) and (close < lowAtUpFractal) //bgcolor(color=(sellSignal and bgColor and showBearishSignal ? color.red : na), transp=80) // if sellSignal and drawBoxes and showBearishSignal //box.new(left=bar_index, top=lowAtUpFractal, right=bar_index+10, bottom=highAtDownFractal, bgcolor=color.new(color.red, 90), border_color=color.new(color.red, 10)) buySignal = (fractalCounter >= 1) and crossover(close, highAtDownFractal) //bgcolor(color=(buySignal and bgColor and showBullishSignal ? color.green : na), transp=80) //if buySignal and drawBoxes and showBullishSignal //box.new(left=bar_index, top=highAtDownFractal, right=bar_index+10, bottom=lowAtUpFractal, bgcolor=color.new(color.green, 90), border_color=color.new(color.green, 10)) if buySignal strategy.entry("Enter Long", strategy.long) else if sellSignal strategy.entry("Enter Short", strategy.short)