
Die Strategie nutzt die Trendwahrnehmung und den automatischen Handel mit Stop-Loss- und Stop-Stopp-Signalen, die hauptsächlich aus dem Quadratmeter-Quadratmeter-Verhältnis der Tageslinie (RB) bestehen. Der Quadratmeter-Quadratmeter-Quadratmeter im Namen der Strategie bezeichnet den Quadratmeter-Quadratmeter-Quadratmeter, der für die Berechnung des Quadratmeter-Quadratmeter-Quadratmeter-Quadratmeters verwendet wird.
Die Strategie basiert auf Vitelots RBI-Indikator, der den Moving Average der Relativ-Body-Ratio (RB) der Tages-K-Linie berechnet. Die Berechnung des RB erfolgt wie folgt:
In der Formel ist RB gleich dem Verhältnis der Einheitslänge der Y-Straße zur Länge der ganzen K-Straße, wobei der positive Wert; der negative Wert der Y-Straße. Der Wertbereich der RB liegt zwischen -1 und 1 [2].
Der RBI-Indikator filtert die Geräusche durch den Moving Average des RBI und fängt die wesentlichen Merkmale des Marktes ein. Es erzeugt ein Kaufsignal, wenn der RBI-Indikator über seine Signallinie geht. Es erzeugt ein Verkaufsignal, wenn der RBI-Indikator unter seine Signallinie geht.
Um falsche Signale aus mehrköpfigen Unsicherheitsphasen zu filtern, wird die Strategie auch beurteilt, ob der Schlusskurs über der 13-Zyklus-EMA-Mittellinie liegt, wenn er auf dem RBI-Indikator durchläuft. Wenn er höher ist, um ein echtes Kaufsignal zu erzeugen, wird die Multi-Head-Strategie ausgeführt.
Die Strategie bietet außerdem Stop-Loss- und Stop-Stopp-Mechanismen, um Risiken zu kontrollieren und Gewinne zu sichern.
Die RBI-Indikatoren filtern die große Menge an Geräuschen, um die Merkmale von Markttrends zu erfassen und zu vermeiden, dass sie von den falschen Signalen eines erschütternden Marktes getäuscht werden.
In Kombination mit einer einheitlichen Filterung verhindert es die falschen Signale in mehreren unsicheren Zeiten und reduziert die Lüftungsschäden.
Die Stop-Loss-Stopp-Einstellung hilft dabei, das Verlustrisiko für einzelne Positionen zu senken und gleichzeitig die Gewinne zu sperren und die Gewinnrate insgesamt zu erhöhen.
Die Strategie hat weniger Parameter, ist leicht verständlich und eignet sich für den automatisierten Handel.
Die Strategie basiert nur auf den RBI-Indikatoren, und wenn die Indikatoren selbst ein falsches Signal erzeugen, wird die Gesamtstrategie auch fehlschlagen.
Die falsche Einstellung der Indikatorparameter kann auch zu einer verminderten Qualität der Handelssignale führen.
Jeder technische Indikator kann unter bestimmten Marktbedingungen ausfallen und Verluste nicht vollständig vermeiden.
Eine zu kleine Stop-Loss-Einstellung kann zu häufigen Stop-Losses führen; eine zu große Stop-Loss-Einstellung kann den Einzelschaden ausweiten.
Die Rücknahme einer unzureichenden Kontrolle kann zu einem Ausbruch der Kontoposition führen.
Verschiedene Kombinationen von Parametern können getestet werden, um die Parameter für die RBI-Indikatoren zu optimieren.
Es können weitere Hilfsindikatoren gefiltert werden, um die Signalqualität zu verbessern.
Parameter, die durch Maschinelles Lernen optimiert werden können.
Sie können sich an einer Geldmanagementstrategie beteiligen, um die Gesamtposition und die Risikobereitschaft zu kontrollieren.
Versuchen Sie mit verschiedenen Strategien, wie z. B. Übernachtungen oder Short-Line-Handel.
Die Strategie ist insgesamt eine einfache und direkte Trend-Tracking-Strategie. Durch die Berechnung der Tageslinie gegenüber dem Pen-Body-Ratio wird die Trendrichtung durch die Berechnung der Gleichgewichtskreuzung beurteilt, während die Gleichgewicht-Filterung und die Stop-Loss-Strategie zur Risikokontrolle hinzugefügt werden, wodurch ein falsches Signal des Schwingungsmarktes wirksam vermieden werden kann.
/*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"}]
*/
//@version=3
strategy("RBI Backtest /w TSSL", shorttitle="RBI Strategy", overlay=false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital = 10000, slippage = 5)
// RBI:
// The EMA of the relative body (RB) of Japanese candles is evaluated.
// The RB of a candle (my definition) is simply the ratio of the body with respect to its full length
// and taken positive for bull candles and negative for bear candles:
// e.g. a bull "marubozo" has RB=1 a bear "marubozo" has RB=-1;
// a "doji" has RB=0.
// This simple indicator grasps the essence of the market by filtering out a great deal of noise.
//
// A flag can be selected to calculate its very basic binary version, where a bull candle counts as a one
// and a bear candle counts as a minus one.
//
// Enter (or exit) the market when the signal line crosses the base line.
// When the market is choppy we have a kind of alternating bear and bull candles so that
// RBI is FLAT and usually close to zero.
// Therefore avoid entering the market when RBI is FLAT and INSIDE the Exclusion level.
// The exclusion level is to be set by hand: go back in history and check when market was choppy; a good
// way to set it is to frame the oscillations of RBI whe price was choppy.
//
// RBI is more effective when an EMA of price is used as filtering. I found EMA(13) to be
// a decent filter: go long when base crosses signal upwards AND closing price is above EMA(13);
// same concept for going short.
//
// As any other indicator, use it with responsibility: THERE CAN'T BE A SINGLE MAGIC INDICATOR winning
// all trades.
//
// Above all, have fun.
//
// Vitelot/Yanez/Vts March 31, 2019
par1 = input(5, title="MA1 Period")
par2 = input(5, title="Signal Period")
exclusion = input(0.2, title="Exclusion level")
useBin = input(false, title="Calculate the binary version")
treshold_long = input(0, title="Treshold Long")
treshold_short = input(0, title="Treshold Short")
fixedSL = input(title="SL Activation", defval=300)
trailSL = input(title="SL Trigger", defval=1)
fixedTP = input(title="TP Activation", defval=120)
trailTP = input(title="TP Trigger", defval=1)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2019, title = "From Year", minval = 2017)
ToMonth = input(defval = 6, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 19, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 2020, title = "To Year", minval = 2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
startTimeOk() => true // create function "within window of time" if statement true
ynSimple(t) =>
s = (close>open)? 1: -1
ema(sum(s,t),t)
ynRel(t) =>
s = (close-open)/(high-low)
ema(sum(s,t),t)
yn = useBin? ynSimple(par1): ynRel(par1)
sig = ema(yn,par2)
plot(yn, color=aqua, title="RBI", linewidth=3, transp=0)
plot(sig, color=orange, title="Signal", linewidth=2, transp=0)
hline(0, color=white, title="Zero level", editable=false)
hline(exclusion, color=yellow, title="Exclusion level +", editable=true, linestyle=line)
hline( 0-exclusion, color=yellow, title="Exclusion level -", editable=true, linestyle=line)
long = crossover(yn,sig) and yn < treshold_long
short = crossover(sig,yn) and yn > treshold_short
// === STRATEGY - LONG POSITION EXECUTION ===
strategy.entry("Long", strategy.long, when= long and startTimeOk())
strategy.exit("Exit", qty_percent = 100, loss=fixedSL, trail_offset=trailTP, trail_points=fixedTP)
strategy.exit("Exit", when= short)
// === STRATEGY - SHORT POSITION EXECUTION ===
strategy.entry("Short", strategy.short, when= short and startTimeOk())
strategy.exit("Exit", qty_percent = 100, loss=fixedSL, trail_offset=trailTP, trail_points=fixedTP)
strategy.exit("Exit", when= long)