System zur Beobachtung des Bullenmarktes

Schriftsteller:ChaoZhang, Datum: 2024-01-31 11:01:45
Tags:

img

Übersicht

Das Bull Market Tracking System ist ein mechanisches Handelssystem, das auf Trendverfolgung basiert. Es verwendet Trendindikatoren auf dem 4-Stunden-Chart, um Handelssignale zu filtern, während Eintrittsentscheidungen auf Basis von Indikatoren aus dem 15-Minuten-Chart getroffen werden. Zu den wichtigsten Indikatoren gehören RSI, Stochastics und MACD. Der Vorteil dieses Systems besteht darin, dass die Kombination mehrerer Zeitrahmen falsche Signale effektiv filtern kann, während die kürzeren Zeitrahmenindikatoren einen genaueren Eintrittszeitpunkt bestimmen können.

Grundsätze

Die Kernlogik dieses Systems besteht darin, Indikatoren aus verschiedenen Zeitrahmen zu kombinieren, um die Trendrichtung und den Eintrittszeitpunkt zu identifizieren. Insbesondere müssen sich der RSI, der Stochastik und der EMA auf dem 4-Stunden-Chart ausrichten, um die allgemeine Trendrichtung zu bestimmen. Dies kann effektiv den größten Teil des Rausches filtern. Gleichzeitig müssen sich der RSI, der Stochastik, der MACD und der EMA auf dem 15-Minuten-Chart auch auf eine bullische oder bärische Neigung einigen, um den genauen Eintrittszeitpunkt zu bestimmen. Dies ermöglicht es uns, gute Ein- und Ausstiegspunkte zu finden. Nur wenn die Urteile sowohl auf den 4-Stunden- als auch auf den 15-Minuten-Zeitrahmen die Kriterien erfüllen, wird das System Handelssignale erzeugen.

Vorteile

  1. Mehrfache Zeitrahmenkombinationen können wirksam falsche Signale ausfiltern und wichtige Trends erkennen
  2. Detaillierte 15-minütige Indikatoren können relativ präzise Eintrittszeiten erfassen
  3. Die Kombination von Indikatoren, einschließlich RSI, Stochastics, MACD und anderen gängigen technischen Indikatoren, ist leicht zu verstehen und zu optimieren
  4. Strict Risikomanagementmethoden wie Take Profit, Stop Loss, Trailing Stop Loss usw. werden angewendet, um das Risiko einzelner Trades wirksam zu kontrollieren

Risiken

  1. Das System ist sehr anfällig für kurzfristige Zeitrahmen, die viele Handelssignale erzeugen können, was zu einem Überhandel führt.
  2. Falsches Ausbruchrisiko Kurzfristige Indikatorbeurteilungen können falsch sein, was zu falschen Ausbruchsignalen führt
  3. Risiko eines Ausfalls der Indikatoren: Die technischen Indikatoren selbst haben bestimmte Grenzen und können unter extremen Marktbedingungen ausfallen

Dementsprechend kann das System in folgenden Aspekten optimiert werden:

  1. Anpassung der Indikatorparameter, um sie für verschiedene Marktumgebungen besser geeignet zu machen
  2. Erhöhung der Filterbedingungen zur Verringerung der Handelshäufigkeit und Verhinderung von Überhandelungen
  3. Optimierung der Stop-Profit- und Stop-Loss-Strategien, um die Marktschwankungsbereiche besser zu berücksichtigen
  4. Versuche verschiedene Kombinationen von Indikatoren, um die optimale Lösung zu finden

Zusammenfassung

Insgesamt ist das Bull Market Tracking System ein sehr praktisches Trendverfolgungssystem nach dem mechanischen Handelssystem. Es verwendet eine Kombination von Multi-Timeframe-Indikatoren, um Markttrends und wichtige Eintrittszeiten zu identifizieren. Mit angemessenen Parameter-Einstellungen und kontinuierlichen Optimierungstests kann sich das System an die meisten Marktumgebungen anpassen und stabile Gewinne erzielen. Allerdings müssen wir uns auch einiger potenzieller Risiken bewusst sein und proaktive Maßnahmen ergreifen, um diese Risiken zu verhindern und zu mindern.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Cowabunga System from babypips.com", overlay=true)
// 4 Hour Stochastics
length4 = input(162, minval=1, title="4h StochLength"), smoothK4 = input(48, minval=1, title="4h StochK"), smoothD4 = input(48, minval=1, title="4h StochD")
k4 = sma(stoch(close, high, low, length4), smoothK4)
d4 = sma(k4, smoothD4)

//15 min Stoch
length = input(10, minval=1, title="15min StochLength"), smoothK = input(3, minval=1, title="15min StochK"), smoothD = input(3, minval=1, title="15min StochD")
k = sma(stoch(close, high, low, length), smoothK)
d= sma(k, smoothD)

//4 hour RSI
src1 = close, len1 = input(240, minval=1, title="4H RSI Length")
up1 = rma(max(change(src1), 0), len1)
down1 = rma(-min(change(src1), 0), len1)
rsi4 = down1 == 0 ? 100 : up1 == 0 ? 0 : 100 - (100 / (1 + up1 / down1))

//15 min RSI
src = close, len = input(9, minval=1, title="15M RSI Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi15 = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

//MACD Settings
source = close
fastLength = input(12, minval=1, title="MACD Fast"), slowLength=input(26,minval=1, title="MACD Slow")
signalLength=input(9,minval=1, title="MACD Signal")
fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)
macd = fastMA - slowMA
signal = ema(macd, signalLength)

// Stops and Profit inputs
inpTakeProfit   = input(defval = 1000, title = "Take Profit", minval = 0)
inpStopLoss     = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop    = input(defval = 400, title = "Trailing Stop", minval = 0)
inpTrailOffset  = input(defval = 0, title = "Trailing Stop Offset", minval = 0)

// Stops and Profit Targets
useTakeProfit   = inpTakeProfit  >= 1 ? inpTakeProfit  : na
useStopLoss     = inpStopLoss    >= 1 ? inpStopLoss    : na
useTrailStop    = inpTrailStop   >= 1 ? inpTrailStop   : na
useTrailOffset  = inpTrailOffset >= 1 ? inpTrailOffset : na

//Specific Time to Trade
myspecifictradingtimes = input('0500-1600', title="My Defined Hours")

longCondition1 = time(timeframe.period, myspecifictradingtimes) != 0
longCondition2 = rsi4 <= 80
longCondition3 = k4 >= d4 and k4 <= 80
longCondition4 = ema(close, 80) >= ema(close, 162)
allLongerLongs = longCondition1 and longCondition2 and longCondition3 and longCondition4

longCondition5 = rsi15 <= 80
longCondition6 = k >= d and k <= 80 and fastMA >= slowMA
longCondition7 = ema(close, 5) >= ema(close, 10)
allLongLongs = longCondition5 and longCondition6 and longCondition7

if crossover(close, ema(close, 5)) and allLongerLongs and allLongLongs
    strategy.entry("Long", strategy.long, comment="LongEntry")

shortCondition1 = time(timeframe.period, myspecifictradingtimes) != 0
shortCondition2 = rsi4 >= 20
shortCondition3 = k4 <= d4 and k4 >= 20
shortCondition4 = ema(close, 80) <= ema(close, 162)
allShorterShorts = shortCondition1 and shortCondition2 and shortCondition3 and shortCondition4

shortCondition5 = rsi15 >= 20
shortCondition6 = k <= d and k >= 20 and fastMA <= slowMA
shortCondition7 = ema(close, 5) <= ema(close, 10)
allShortShorts = shortCondition5 and shortCondition6 and shortCondition7

if crossunder(close, ema(close,5)) and allShorterShorts and allShortShorts
    strategy.entry("Short", strategy.short, comment="ShortEntry")

strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)

Mehr