Trendfolgende Strategie mit variablem Positionsraster

EMA RSI MACD ATR ADX
Erstellungsdatum: 2024-03-29 15:23:23 zuletzt geändert: 2024-03-29 15:23:23
Kopie: 0 Klicks: 1147
1
konzentrieren Sie sich auf
1617
Anhänger

Trendfolgende Strategie mit variablem Positionsraster

Überblick

Die Strategie ist eine Trendfollow-Strategie, die sich anhand von EMA, RSI und Absorptionsformen richtet, um die Richtung und den Zeitpunkt des Eintritts zu bestimmen. Die Strategie passt die Stop-Loss- und Stop-Stop-Positionen an die Größe der Absorptionsformen an und ermöglicht dem Benutzer die Auswahl zwischen nur mehr, nur weniger oder nur mehr. Zusätzlich bietet die Strategie die MACD-Option als Trendfilterbedingungen.

Strategieprinzip

Die Strategie verwendet die 200-Perioden-EMA-Linie, um die Richtung des großen Trends zu bestimmen, wenn der Preis oberhalb der EMA als aufsteigend und unterhalb der EMA als absteigend angesehen wird. Der 9-Perioden-RSI wird verwendet, um die Dynamik zu bestimmen. Der RSI ist größer als 50 für starke Mehrkopfdynamik und kleiner als 50 für starke Leerkopfdynamik.

Die Strategie definiert die Stop-Loss- und Stop-Off-Positionen anhand der Größe der absorbierenden Form-Einheit. Die Stop-Loss-Position ist doppelt so groß wie die absorbierende Form-Einheit, wobei die Mindeststop-Marge 0,3% des Einstiegspreises festgelegt wird, um zu vermeiden, dass zu kleine Stop-Loss-Distanzen zu häufigen Stopps führen. Die Stop-Loss-Position ist die Stop-Loss-Marge multipliziert mit einer vorgegebenen Aufschlag-Verlust-Rate, um sicherzustellen, dass die Aufschlag-Verlust-Rate fixiert ist.

Strategische Vorteile

  1. Trend-Folgen: Strategien, die Trends anhand mehrerer Indikatoren beurteilen, um zu helfen, frühzeitig in Trends einzugreifen und Trends zu erfassen.

  2. Dynamische Stop-Loss-Stopp: Anpassung der Stop-Loss-Position an die Größe der absorbierenden Form, Erweiterung des Stop-Loss-Raums bei starken Trends, Verkleinerung des Stop-Loss-Bereichs bei schwachen Trends, flexible Steuerung der Position.

  3. Benutzer können die Handelsrichtung, die Risikopräferenzen und andere Parameter anpassen, um sich an die Bedürfnisse der Benutzer anzupassen.

  4. Die Option MACD als Trendfilterbedingungen zur weiteren Bestätigung der Trendstärke und zur Verbesserung der Einstiegsrate.

Strategisches Risiko

  1. Trendfehler: Obwohl die Strategie mit mehreren Indikatoren kombiniert wird, kann es in einigen Fällen zu Trendfehlern kommen, die zu Verlusten führen.

  2. Verkleinerung: Wenn die absorbierenden Formkörper klein sind, kann die Stop-and-Stop-Distanz sehr nahe sein, was zu einer Verschlechterung der Gewinn- und Verlustquote führt, was bei Erschütterungen häufiger vorkommt.

  3. Optimierung der Parameter: Die optimalen Parameter variieren unter unterschiedlichen Standards und Perioden und erfordern ständige Debugging und Optimierung durch den Benutzer.

Richtung der Strategieoptimierung

  1. Trendbeurteilung: Versuchen Sie, mehr Trendbestätigungswerkzeuge wie Brinbands, ADX, etc. einzuführen, um die Genauigkeit der Trendbeurteilung zu verbessern.

  2. Optimierung der Stop-Loss-Stopp: Berücksichtigung der Einführung von Indikatoren wie ATR, die mit der Volatilität verbunden sind, und dynamische Anpassung der Stop-Loss-Stopp-Distanz, um das Risiko zu verringern, dass die Bandbreite zu klein ist.

  3. Positionsmanagement: Positionsgröße wird dynamisch angepasst, je nachdem, ob der Trend stark oder schwach ist, die Kontoerträge, etc. Positionsgröße wird erhöht, wenn der Trend stark und stabil ist, um die Kosten für häufige Geschäfte zu senken.

  4. Multi-Perioden- und Multi-Sorten-Synergie: Über-Perioden- und über-Sorten-Verifizierung von Trendsignalen, um die Gewinnchancen bei der Erfassung von Trends zu erhöhen und gleichzeitig das Risiko für einzelne oder zyklische Bezeichnungen zu verteilen.

Zusammenfassen

Die Strategie mit einem variablen Positionsgitter schlägt sich im Trend gut ab, indem sie die Richtung und Stärke des Trends durch mehrere Indikatoren beurteilt und die Stopps und Positionen dynamisch anpasst, um den Trend besser zu erfassen und übermäßige Gewinne zu erzielen. Die Strategie schlägt sich jedoch im Allgemeinen in unklaren oder häufig schwankenden Trends ab.

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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © niosupetranmartinez
//@version=5
strategy("Trend Follower Scalping Strategy", overlay=true, process_orders_on_close = true)

// Inputs
emaLen = input(200, 'EMA Length')
rsiLen = input(9, 'RSI Length')
trendDirection = input.string("Both", 'Trend Direction', options=["Long Only", "Short Only", "Both"])
risk_reward_ratio = input(2, 'Risk Reward Ratio')
useMacdFilter = input.bool(true, "Use MACD Filter")
macdTimeframe = input("5", "MACD Timeframe")

// EMA and RSI
ema200 = ta.ema(close, emaLen)
customRsi = ta.rsi(close, rsiLen)

// MACD Filter
[macdLine, signalLine, _] = request.security(syminfo.tickerid, macdTimeframe, ta.macd(close, 12, 26, 9))


// Majority Body Candle Identification Function
isMajorityBodyCandle(candleOpen, candleClose, high, low) =>
    bodySize = math.abs(candleClose - candleOpen)
    fullSize = high - low
    bodySize / fullSize > 0.6

// Engulfing Patterns
isBullishEngulfing = close > open and close[1] < open[1] and (close - open) > (open[1] - close[1]) and isMajorityBodyCandle(open, close, high, low)
isBearishEngulfing = close < open and close[1] > open[1] and (open - close) > (close[1] - open[1]) and isMajorityBodyCandle(open, close, high, low)

// Entry Conditions with MACD Filter
longCondition = close > ema200 and customRsi > 50 and isBullishEngulfing and (not useMacdFilter or macdLine > signalLine)
shortCondition = close < ema200 and customRsi < 50 and isBearishEngulfing and (not useMacdFilter or macdLine < signalLine)

// Trade Execution
var float stopLossPrice = na
var float entryPrice = na

// Long Entry
if (longCondition and (trendDirection == "Long Only" or trendDirection == "Both"))
    entryPrice := close
    engulfingBodySize = math.abs(close - open)
    minimumStopLoss = entryPrice * 0.997
    calculatedStopLoss = entryPrice - (engulfingBodySize * 2)
    stopLossPrice := calculatedStopLoss < minimumStopLoss ? calculatedStopLoss : minimumStopLoss
    risk = entryPrice - stopLossPrice
    takeProfitPrice = entryPrice + (risk_reward_ratio * risk)
    strategy.entry("Long", strategy.long)
    strategy.exit("Exit Long", "Long", stop = stopLossPrice, limit = takeProfitPrice)

// Short Entry
if (shortCondition and (trendDirection == "Short Only" or trendDirection == "Both"))
    entryPrice := close
    engulfingBodySize = math.abs(open - close)
    minimumStopLoss = entryPrice * 1.003
    calculatedStopLoss = entryPrice + (engulfingBodySize * 2)
    stopLossPrice := calculatedStopLoss > minimumStopLoss ? calculatedStopLoss : minimumStopLoss
    risk = stopLossPrice - entryPrice
    takeProfitPrice = entryPrice - (risk_reward_ratio * risk)
    strategy.entry("Short", strategy.short)
    strategy.exit("Exit Short", "Short", stop = stopLossPrice, limit = takeProfitPrice)

// Plotting
plot(ema200, color=color.blue, linewidth=2, title="EMA 200")