System zur Umkehrung von Golden Bollinger Band Gap

Schriftsteller:ChaoZhang, Datum: 2024-02-01 11:46:13
Tags:

img

Übersicht

Dies ist ein Forex-Gap-Trading-System, das auf Bollinger-Bändern basiert. Es ist für die wichtigsten Währungspaare geeignet, mit niedrigster möglicher Provision (unter 1 Pip) und Zeitrahmen von 1-15 min.

Strategie Logik

Das System verwendet Bollinger Bands, RSI und ADX-Indikatoren, um Handelsmöglichkeiten zu identifizieren.

Bollinger-Bänder werden verwendet, um Preis-Breakouts zu identifizieren. Gehen Sie lang, wenn der Preis über dem oberen Band bricht, gehen Sie kurz, wenn der Preis unter dem unteren Band bricht. Der RSI wird verwendet, um falsche Breakouts zu vermeiden. Breakouts gelten nur, wenn der RSI umkehrt (aus der Überkaufzone fällt oder aus der Überverkaufszone steigt). ADX wird verwendet, um Märkte ohne einen klaren Trend auszufiltern, wobei nur Trades getätigt werden, wenn der ADX unter 32 liegt.

Spezifische Einstiegsregeln sind: Long-Entry erfordert einen Preisbruch über den oberen Bereich, RSI steigt von der Überverkaufszone und überquert gleichzeitig die 30-Linie, ADX unter 32. Short-Entry erfordert einen Preisbruch unter den unteren Bereich, RSI fällt von der überkauften Zone und überquert gleichzeitig die 70-Linie, ADX unter 32.

Die Exit-Regeln umfassen Take Profit/Stop Loss und Mittellinie-Reversion. Nämlich: Festsetzen Sie Fix-Take Profit/Stop Loss-Punkte. Schließen Sie die Position, wenn der Preis zur Bollinger Mittellinie zurückkehrt.

Analyse der Vorteile

Das System hat folgende Vorteile:

  1. Bollinger-Bänder verwenden, um Gap-Handelsmöglichkeiten zu erfassen, die ein großes Gewinnpotenzial haben.

  2. Kombination des RSI-Indikators, um falsche Ausbrüche zu vermeiden und die Gewinnwahrscheinlichkeit zu verbessern.

  3. Verwendung des ADX-Indikators, um Märkte ohne klare Trends auszufiltern und unnötige Trades zu vermeiden.

  4. Die Schließung der mittleren Linie verringert die meisten Gewinne und verhindert eine Gewinnrückführung.

  5. Für den Handel mit hoher Hebelwirkung geeignet, können die Gewinne schnell vergrößert werden.

Risikoanalyse

Es gibt auch einige Risiken:

  1. Es gibt keinen Gewinn, wenn man keine Lücke erfasst.

  2. Rücktest-Überanpassungsrisiko, bei dem die Ergebnisse von Rücktests abweichen.

  3. Eine unzureichende Trenddauer kann zu Verlusten führen.

  4. Ein hoher Hebel erhöht das Risiko, ein einziger Verlust kann groß sein.

  5. Handelszeitbeschränkungen können zu fehlenden Geschäften führen.

Optimierungsrichtlinien

Das System kann in folgenden Punkten verbessert werden:

  1. Optimierung von Parametern zur Verbesserung der Indikatorwirksamkeit, z. B. Bollinger-Periode, RSI-Einstellungen usw.

  2. Hinzufügen oder Verbessern von Filtern zur Erhöhung des Prozentsatzes der erfolgreichen Trades, z. B. durch Kombination mehrerer Indikatoren oder Fundamentaldaten.

  3. Optimieren Sie die Gewinnstrategie, um den Profit pro Handel zu maximieren, z. B. Trailing Stop Loss, ATR-basierter Stop Loss usw.

  4. Es wird automatisch eine geeignete Hebelwirkung ermittelt, um die erwartete Rendite zu maximieren.

  5. Verwenden Sie maschinelle Lerntechniken, um automatisch statt manueller Iteration optimale Parameter zu finden.

Schlussfolgerung

Das Golden Bollinger Band Gap Reversion System ist ein typisches kurzfristiges Breakout-System. Es zielt darauf ab, Gewinne aus Preislücken zu erzielen. Mehrere Filter werden verwendet, um die Qualität der Signale zu verbessern. Es zeigt eine gute Rentabilität bei Backtests. Die Live-Performance muss jedoch noch validiert werden, wobei Liquidität und Slippage Auswirkungen auf die Ergebnisse haben. Insgesamt ist dies eine vielversprechende kurzfristige Handelsstrategie, die es wert ist, live getestet und optimiert zu werden.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 2h
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/
// © exlux99

//@version=4
strategy("Bollinger Bands, RSI and ADX Trading System", overlay=true)


timeinrange(res, sess) => time(res, sess) != 0


timer = color.red


//bgcolor(timeinrange(timeframe.period, "0300-0600") or timeinrange(timeframe.period, "0900-1300") or timeinrange(timeframe.period, "2030-2300") ? timer : na, transp=70)


//RSI
length = input( 20 )
overSold = input( 35 )
overBought = input( 65 )
price = close
vrsi = rsi(price, length)
co = crossover(vrsi, overSold)
cu = crossunder(vrsi, overBought)
//if (not na(vrsi))


//BB
lengthB = input(60, minval=1)
src = input(close, title="Source")
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
basis = sma(src, lengthB)
dev = mult * stdev(src, lengthB)
upper = basis + dev
lower = basis - dev


//adx
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
dirmov(len) =>
	up = change(high)
	down = -change(low)
	plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
	minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
	truerange = rma(tr, len)
	plus = fixnan(100 * rma(plusDM, len) / truerange)
	minus = fixnan(100 * rma(minusDM, len) / truerange)
	[plus, minus]
adx(dilen, adxlen) =>
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)

longEntry = close < upper and crossover(vrsi,overSold) and sig < 32 //and (timeinrange(timeframe.period, "0301-0600") or timeinrange(timeframe.period, "0901-1300") or timeinrange(timeframe.period, "2031-2300"))

shortEntry = close > upper and crossunder(vrsi,overBought) and sig < 32 //and (timeinrange(timeframe.period, "0301-0600") or timeinrange(timeframe.period, "0901-1300") or timeinrange(timeframe.period, "2031-2300"))


tp=input(90, step=10)
sl=input(90, step=10)

strategy.entry("long",1,when=longEntry)
strategy.exit("X_long", "long", profit=tp,  loss=sl )
strategy.close("long",when=crossunder(close,basis))

strategy.entry('short',0,when=shortEntry)
strategy.exit("x_short", "short",profit=tp, loss=sl)
strategy.close("short",when=crossover(close,basis))







Mehr