Momentum-Erschöpfungstrategie

Schriftsteller:ChaoZhang, Datum: 2023-11-16 17:54:00
Tags:

img

Übersicht

Die Momentum-Erschöpfung-Strategie ist eine Trendfolgestrategie, die gleitende Durchschnitte und Preisprozentsatz-Oszillatoren nutzt, um das Abwärtsrisiko zu minimieren.

Strategie Logik

Die Kernindikatoren dieser Strategie sind Erschöpfung und Erschöpfung gleitender Durchschnitt. Erschöpfung ist ein Maß für Preisschwankungen, berechnet aus nahen, hohen und niedrigen Preisen. Die spezifische Berechnung ist: (close+high+low-moving average of Exhaustion) / gleitender Durchschnitt von Erschöpfung. Der Erschöpfung gleitender Durchschnitt ist der gleitende Durchschnitt von Erschöpfung. Wenn Erschöpfung über Erschöpfung gleitender Durchschnitt kreuzt, zeigt es Konsolidierung im Markt und eine mögliche neue Trendbildung. Wenn Erschöpfung unter Erschöpfung gleitender Durchschnitt kreuzt, signalisiert es eine Trendwende und wir sollten in Betracht ziehen, Gewinn zu machen.

Darüber hinaus verwendet die Strategie auch langfristige und kurzfristige gleitende Durchschnitte, um den Trend zu bestimmen, einschließlich 300-Tage-, 150-Tage- und 50-Tage-Linien.

MACD wird auch für kurzfristige Kauf- und Verkaufssignale verwendet. Wenn die MACD-Linie über die Signallinie kreuzt, zeigt sie ein bullisches Signal an, und wenn die MACD unter der Signallinie kreuzt, zeigt sie ein bärisches Signal an. RSI-Böden werden auch als Kaufsignale verwendet.

Die spezifische Ein- und Ausstiegslogik ist:

Kaufsignal: Erschöpfungskreuzung über dem Erschöpfungsgliederungsdurchschnitt und 50-Tage-MA über 150-Tage-MA oder RSI unter 30.

Kurzfristiger Stop-Loss: Auslauf unter dem Auslauf gleitenden Durchschnitt oder MACD-Kreuzung unter der Signallinie.

Die Risikopositionen werden von den Risikokapitalgebern und den Risikokapitalgebern der Risikokapitalgesellschaften und der Risikokapitalgesellschaften der Risikokapitalgesellschaften und der Risikokapitalgesellschaften der Risikokapitalgesellschaften geprüft.

Vorteile der Strategie

Diese Strategie kombiniert mehrere Indikatoren zur Bestimmung der Trendschwund und zur Kontrolle der Risiken.

  1. Der Indikator "Erschöpfung" kann Konsolidierung und Umkehrung effektiv erkennen.

  2. Die Verwendung gleitender Durchschnitte für mehrere Zeitrahmen zur Bestimmung des Trends verhindert, dass man durch kurzfristige Marktgeräusche irregeführt wird.

  3. Der MACD unterstützt die Bestätigung von Kauf- und Verkaufssignalen und verbessert somit die Performance der Strategie.

  4. Der RSI spielt seine Rolle, niedrig zu kaufen und hoch zu verkaufen, bei extrem überverkauften Situationen zu kaufen.

  5. Die klare Gewinn- und Stop-Loss-Strategie kann das Risiko jedes Handels wirksam kontrollieren.

Risiken der Strategie

Diese Strategie birgt auch einige Risiken:

  1. Da sich viele Indikatoren auswirken, kann eine unsachgemäße Einstellung der Parameter zu falschen Handelssignalen führen.

  2. Der Indikator ist nicht vollständig zuverlässig und kann bei Preisunterschieden ausfallen.

  3. Eine falsche Stop-Loss-Platzierung kann dazu führen, dass Sie durch kurzfristige Schwankungen gestoppt werden.

  4. Wenn der Gesamtmarkt im Bereich liegt, können die Indikatoren versagen.

Optimierungsrichtlinien

Die Strategie kann in folgenden Aspekten optimiert werden:

  1. Verschiedene Parameterkombinationen testen, um die optimalen Parameter zu finden und falsche Signale zu reduzieren.

  2. Einbeziehung von Volatilitätsindikatoren wie ATR zur dynamischen Anpassung des Stop-Loss-Bereichs an die Marktvolatilität.

  3. Optimierung der Positionsgröße mit unterschiedlichen Positionsgrößenregeln für unterschiedliche Marktbedingungen.

  4. Einbeziehen Sie Chartmuster wie Trendlinien, Unterstützungslinien, um die Strategieleistung zu verbessern.

  5. Hinzufügen von Algorithmen für maschinelles Lernen, um die Wirksamkeit von Schlüsselindikatoren zu messen und dynamische Optimierung zu ermöglichen.

Schlussfolgerung

Die Momentum Exhaustion Strategie kombiniert mehrere Indikatoren, um Trendumkehr und Risikokontrolle zu identifizieren. Sie hat die Fähigkeit, Trends zu verfolgen und kann Ein- und Ausstiegspunkte effektiv bestimmen. Weitere Verbesserungen können durch Parameteroptimierung, Stop-Loss-Regeln, Einbeziehung von Chartmustern und mehr erzielt werden.


/*backtest
start: 2022-11-09 00:00:00
end: 2023-11-15 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/
// © spiritualhealer117

//@version=4

strategy("Infiten Slope Strategy", overlay=false,calc_on_every_tick = true, default_qty_type=strategy.percent_of_equity, default_qty_value = 100)
// //TIME RESTRICT FOR BACKTESTING {
// inDateRange = (time >= timestamp(syminfo.timezone, 2003,
//          1, 1, 0, 0)) and
//      (time < timestamp(syminfo.timezone, 2021, 5, 25, 0, 0))
// //}

//OPTIMAL PARAMETERS {
daysback = 30
volumesens = 1.618
//}
//Calculating Exhaustion and Exhaustion Moving Average {
clh = close+low+high
exhaustion = (clh-sma(clh,daysback))/sma(clh,daysback)
exhaustionSma = sma(exhaustion,daysback)
//}
//Long Term Moving Averages for sell signals {
red = sma(close,300)
white = sma(close,150)
blue = sma(close,50)

plot(red,color=color.red)
plot(white,color=color.white)
plot(blue,color=color.blue)
//}
//MACD Calculation {
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA (Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA (Signal Line)", type=input.bool, defval=false)
// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
//}
//SIGMOID Bottom {
timeAdjust = 300/sma(close,500)
//}
//RSI bottom {
len = input(14, minval=1, title="Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(close), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
//}

//Entry and exit conditions {
//Sell conditions
bigVolume = sma(volume,30)*volumesens
sellcond1 = crossunder(exhaustion,exhaustionSma) and volume > bigVolume
sellcond2 = crossunder(macd,signal) and volume > bigVolume
midtermsellcond1 = crossunder(blue,white)
longtermsellcond1 = white < red

//Buy conditions
buycond = crossover(exhaustion,exhaustionSma) and not longtermsellcond1
buycond2 = rsi < 30
buycond3 = crossover(blue,white) and longtermsellcond1
//}

//Backtest Run Buy/Sell Commands {
strategy.entry("buycond",true, when=buycond and bigVolume)
strategy.entry("buycond2",true, when=buycond2 and bigVolume)

strategy.close_all(when=sellcond1,comment="short term sell signal 1")
strategy.close_all(when=midtermsellcond1, comment="mid term sell signal 1")
strategy.close_all(when=longtermsellcond1, comment="long term sell signal 1")
strategy.close_all(when=sellcond2, comment="short term sell signal 2")
plot(strategy.position_size)

//Sell on last tested day (only for data collection)
//strategy.close_all(when=not inDateRange)
//}



Mehr