
Die Strategie nutzt ein Gleichgewichtssystem, um die Richtung des Trends zu bestimmen, und vermeidet in Kombination mit einem Volatilitätsindikator einen niedrig schwankenden Marktschock, indem sie einen Schockstop verwendet, um den Handel zu verwalten.
Die Strategie beurteilt die Richtung des Trends, indem sie die Positionsbeziehung zwischen schnellen und langsamen Durchschnittslinien vergleicht. Wenn die schnellen Durchschnittslinien die langsamen Durchschnittslinien durchqueren, sehen Sie mehr und sehen Sie weniger. Um einen Marktschock zu vermeiden, wurde die Strategie auch mit einem Brin-Band-Indikator eingeführt.
Die Handelslogik der Strategie lautet:
Berechnen Sie die schnelle Mittellinie (Standard 20 Tage) und die langsame Mittellinie (Standard 50 Tage).
Berechnen Sie die Breitenveränderungsrate des Brin-Bandes (Standarddifferenz: 2x die Standarddifferenz von 40 Tagen).
Mehrkopfsignale werden erzeugt, wenn die schnelle Mittellinie die langsame Mittellinie durchquert und die Brin-Bandbreitungsänderungsrate über die eingestellte Schwelle ([default] 9%) liegt.
Wenn die schnelle Durchschnittslinie unter der langsamen Durchschnittslinie liegt und die Brin-Bandbreitungsänderungsrate die eingestellte Schwelle ([default] 9%) überschreitet, wird ein Leerlaufsignal erzeugt.
Die Chandeli-Leerkanal wird als Stop-Loss berechnet.
Mehrköpfige Stop-Loss-Grenzwerte - ATR*Das ist der Minimumpreis plus ATR.*Mehrfach.
Die Verwendung eines linearen Systems zur Bestimmung der Richtung des Trends kann die Trends effektiv verfolgen.
Die Einführung der variablen Bandbreitenrate von Brin verhindert Marktschocks und reduziert unnötige Transaktionen.
Mit dem Schwingungsschutz kann der Schaden rechtzeitig gestoppt werden, um zu vermeiden, dass er in den Schwingungen gefangen ist.
Es gibt verschiedene Parameter, die für verschiedene Märkte optimiert werden können.
Die Strategie ist klar und verständlich und leicht zu erlernen.
Das Ein-Linien-System hat eine Verzögerung und kann die Chance auf eine schnelle Umkehr verpassen.
Eine falsche Einstellung der Brin-Band-Parameter kann ein gültiges Handelssignal filtern.
Zu hohe Schwingungsschwundempfindlichkeit kann zu häufigen Transaktionen führen.
Eine fehlende Optimierung der Parameter kann zu einem Positionsrisiko führen.
Die jungen Leute, die in den USA leben, sind nicht in der Lage, sich an die starken Veränderungen des Marktes zu gewöhnen, die durch plötzliche, große Ereignisse verursacht werden.
Es ist möglich, eine lineare Kombination verschiedener Parameter zu testen, um die optimale Parameter zu finden.
Die Brin-Band-Parameter für verschiedene Perioden können getestet werden, um die optimale Schwingungsfilterung zu finden.
Die Signalqualität kann in Kombination mit anderen Indikatoren verbessert werden.
Die Einführung einer dynamischen Stop-Loss-Strategie kann dazu beitragen, dass Stop-Loss besser auf den Markt eingestellt wird.
Automatische Optimierungsparameter können in Kombination mit maschinellen Lerntechniken an Marktveränderungen angepasst werden.
Die Strategie integriert Gleichgewichtssysteme, Brin-Band-Indikatoren und Stopp-Schock-Technologien, um ein relativ stabiles Trend-Tracking-System zu bilden. Durch die Optimierung von Parametern kann eine gute Strategiewirkung erzielt werden.
/*backtest
start: 2022-10-11 00:00:00
end: 2023-10-17 00:00:00
period: 1d
basePeriod: 1h
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/
// © juanchez
//@version=4
strategy("CHI", overlay = true, close_entries_rule = "ANY")
n = input(title= "highest high o lowest low period", defval= 22)
f= input(title= "multiplicador", defval= 4)
long = highest(high, n) - atr(n)*f
short= lowest(low, n) + atr(n)*f
plot(long, color= color.red)
plot(short, color= color.green)
//moving averages
period= input(title= "moving averages period", defval= 50)
period2= input(title= "moving averages period2", defval= 20)
type= input(title= "moving averages type", options= ["sma", "ema"], defval= "ema")
//moving average function
mo(p, t) =>
if t == "sma"
sma(close[barstate.islast ? 1: 0], p)
else if t== "ema"
ema(close[barstate.islast ? 1: 0], p)
m= mo(period, type)
m2= mo(period2, type)
trend= m2 > m
plot(m, color = color.maroon, linewidth = 3)
plot(m2, linewidth= 3)
//BOLLINGER BANDS ENTRIES
bb1_period= input(title= "Bollinger bands 1 period", defval=40, minval=1)
bb1_source=input(title="Bollinger band 1 source", defval=close)
bb1_multi=input(title="Bollinger Bands 1 factor", defval=2, minval=1, step=0.1)
show_bb1= input(title="Show Bollinger bands 1", defval=false)
//BOLLINGER BANDS
_bb(src, lenght, multi)=>
float moving_avg= sma(src[barstate.islast? 1: 0], lenght)
float deviation= stdev(src[barstate.islast? 1: 0], lenght)
float lowerband = moving_avg - deviation*multi
float upperband = moving_avg + deviation*multi
[moving_avg, lowerband, upperband]
[bb1, lowerband1, upperband1]= _bb(bb1_source, bb1_period, bb1_multi)
//FIRST BAND
plot(show_bb1? bb1 : na, title="BB1 Moving average", linewidth= 3, color= color.fuchsia)
plot(show_bb1? upperband1 : na, title="BB1 Upper Band", linewidth= 3, color= color.green)
plot(show_bb1? lowerband1 : na, title="BB1 Lower Band", linewidth= 3, color= color.red)
//BB's Width threshold
thresh= input(title= "widen %", defval= 9, minval = 0, step = 1, maxval= 100)
widht= (upperband1 - lowerband1)/bb1
roc= change(widht)/widht[1]*100
cross=crossover(roc, thresh)
// entry
//long
elong= input(true, title= "enable long")
longcondition= m2 > m and cross and elong
//short
eshort= input(true, title= "enable short")
shortcondition= m2 < m and cross and eshort
plotshape(longcondition? true: false , location= location.belowbar, style= shape.labelup, size= size.small, color= color.green, text= "Buy", textcolor= color.white)
plotshape(shortcondition? true: false , location= location.abovebar, style= shape.labeldown, size= size.small, color= color.red, text= "Sell", textcolor= color.white)
out= crossunder(close, long)
outt= crossover(close, short)
strategy.entry("long", strategy.long, when = longcondition)
strategy.close("long", when = out)
strategy.entry("short", strategy.short, when = shortcondition)
strategy.close("short", when = outt)