Stop-Loss-Strategie basierend auf dem MACD-Indikator


Erstellungsdatum: 2023-10-26 15:51:34 zuletzt geändert: 2023-10-26 15:51:34
Kopie: 0 Klicks: 709
1
konzentrieren Sie sich auf
1617
Anhänger

Stop-Loss-Strategie basierend auf dem MACD-Indikator

Überblick

Diese Strategie basiert auf MACD-Indikatoren und hat eine Long-Line-Trading-Strategie entwickelt, die das Risiko pro Handel kontrolliert. Im Vergleich zu herkömmlichen Multi-Low-Low-Flip-Strategien konzentriert sich diese Strategie auf die Risikokontrolle pro Handel. Die Strategie beschränkt den maximalen Verlust pro Handel durch Berechnung eines Zielstop-Preises und eines Stop-Loss-Preises, indem sie eine angemessene Positionsgröße festlegt.

Grundsätze

Die Strategie berechnet zunächst die MACD-Linie und die Signal-Linie des MACD-Indikators. Wenn die MACD-Linie die Signal-Linie von unten nach oben durchbricht, wird dies als Kaufsignal beurteilt. Für einen falschen Durchbruch verlangt die Strategie barssince ((crossover ((macd_line, signal_line)) <= 5, d. h. der Durchbruch erfolgt innerhalb der letzten 5 K-Linien.

Die Strategie berechnet für jeden Handel einen angemessenen Stop-Loss-Preis und einen Stop-Out-Preis. Der Stop-Loss-Preis wird als der niedrigste der letzten 3 K-Linien festgelegt. Der Stop-Out-Preis wird als der Kaufpreis plus der Stop-Loss-Preis auf das 4-fache der Kaufpreis-Distanz festgelegt.

Der Schlüssel ist, dass die Strategie die spezifischen Positionen für jeden Handel nach dem erträglichen Risiko berechnet. Mit dem Parameter capital_risk wird der maximal erträgliche Verlust pro Handel als Prozentsatz des Gesamtkapitals festgelegt. Dann wird die Positionsgröße in US-Dollar nach der Stop-Loss-Marge berechnet.

Das Risiko pro Handel wird auf 1% des Gesamtkapitals begrenzt, wodurch die Rücknahme wirksam kontrolliert wird. Die größere Stop-Position ermöglicht gleichzeitig höhere Erträge.

Vorteile

  • Risikokontrolle geht an erster Stelle, jedes Transaktionsrisiko ist zu kontrollieren
  • Optimierung der Positionsgröße und Maximierung der Kapitalnutzung
  • Stop-Loss-Strategien können den Rückzug wirksam kontrollieren
  • Das ist eine gute Idee, um die Kosten zu senken.

Risiken und Verbesserung

  • Der MACD-Indikator ist nachlässig und könnte einen schnell wechselnden Trend verpassen
  • Stell- oder Stop-Loss-Positionen sind falsch eingestellt und können Gewinne reduzieren oder Risiken erhöhen
  • Die Häufigkeit der Transaktionen könnte zu hoch sein und die Kosten erhöhen.

Sie können überlegen:

  • Integration von Trends in andere Indikatoren zur Vermeidung von MACD-Lagerproblemen
  • Optimierung von Stop-Loss-Algorithmen, um sie flexibler zu machen
  • Die Frequenz der Transaktionen soll entsprechend gelockert und die Transaktionskosten gesenkt werden.

Zusammenfassen

Diese Strategie basiert auf MACD-Indikatoren, um die Trendrichtung zu bestimmen, um Risiken zu kontrollieren und vernünftige Positionen zu berechnen. Die Schlüssel sind Risikokontrolle und Positionsoptimierung, um langfristige stabile Erträge zu erzielen. Die MACD-Indikatoren haben jedoch bestimmte Mängel, und die Stop-Loss-Mechanismen müssen weiter optimiert werden.

Strategiequellcode
/*backtest
start: 2022-10-19 00:00:00
end: 2023-10-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy( "McDonalds ", shorttitle="Ur Lovin' It", initial_capital=10000, default_qty_type=strategy.cash, currency=currency.USD )

capital_risk    = input( 1.0, "% capital risk per trade" ) / 100
r_exit          = input( 4.0, "Take Profit in 'R'" )
wma_length      = input( 150, 'WMA Bias Length' )

[macd_line, signal_line, hist ] = macd(close, 12, 26, 9)

w_line = wma( close, wma_length )

golong = barssince(crossover(macd_line, signal_line)) <= 5 and ( macd_line < 0 and signal_line < 0 ) and ( close > w_line ) and strategy.opentrades == 0

float stop = na
float tp = na

// For a stop, use a recent low 
stop := golong ? lowest(low, 3)[1] : stop[1]
range = abs(close - stop)
tp := golong ? close + (r_exit * range) : tp[1]


// This is the bit that calculates how much size to use so we only lose 1% of the `strategy.equity`
how_much_willing_to_lose = strategy.equity * capital_risk
// Spread the risk across the stop range 
position_size_in_usd = how_much_willing_to_lose / (range / close)
// Sized specified in base contract
position_size_in_contracts = position_size_in_usd / close

// Enter the position
if golong
    strategy.entry("long", strategy.long, qty=position_size_in_contracts)
    strategy.exit("long exit","long", stop=stop, limit=tp)

// experimental exit strategy
// hist_strength = hist >= 0 ? ( hist[1] < hist ? 'strong' : 'weak') : ( hist[1] < hist ? 'weak' : 'strong' )
// if hist < 0 and hist_strength == 'strong' and falling( hist, 8 )
//     strategy.close("long")


plot( strategy.equity,  color=strategy.equity > 10000 ? color.green : color.red, linewidth=2 )