Ausbruch zum höchsten Preis EMA Crossover-Strategie


Erstellungsdatum: 2024-03-29 14:39:27 zuletzt geändert: 2024-03-29 14:39:27
Kopie: 0 Klicks: 287
1
konzentrieren Sie sich auf
1166
Anhänger

Ausbruch zum höchsten Preis EMA Crossover-Strategie

Überblick

Eine Breakout EMA-Cross-Strategie ist eine Handelsstrategie, die auf der Kreuzung von Preis-Breakout und Index-Moving Average (EMA) basiert. Die Strategie verwendet den höchsten Preis in einer bestimmten Periode als Kaufsignal und die EMA als Verkaufssignal. Wenn der Schlusskurs den höchsten Preis in einer bestimmten Periode überschreitet, erzeugt die Strategie ein Kaufsignal.

Strategieprinzip

Das Kernprinzip der Breakout EMA-Cross-Strategie besteht darin, Markttrends durch die Nutzung von Preis-Breakouts und EMA-Cross-Strategie zu erfassen. Wenn der Preis den höchsten Preis innerhalb des angegebenen Zeitraums überschreitet, zeigt dies an, dass der Markt möglicherweise in einen Aufwärtstrend eintritt, so dass die Strategie ein Kaufsignal erzeugt. Gleichzeitig ist die EMA als Trendverfolgungsindikator ein Trend, der zeigt, dass der Aufwärtstrend möglicherweise beendet ist, wenn der Preis die EMA überschreitet, so dass die Strategie ein Verkaufssignal erzeugt.

Die Strategie umfasst folgende Schritte:

  1. Der höchste Preis innerhalb des angegebenen Zeitraums wird als Breakout-Kaufpreis berechnet.
  2. Die EMA wird als Verkaufssignal berechnet.
  3. Die Strategie erzeugt ein Kaufsignal, wenn keine Position gehalten wird, wenn der Schlusskurs den Kaufpreis durchbricht.
  4. Wenn der Schlusskurs die EMA überschreitet, erzeugt die Strategie ein Verkaufssignal, wenn die Position gegenwärtig gehalten wird.
  5. Der niedrigste Preis in einem bestimmten Zeitraum wird als Stop-Loss-Preis berechnet.
  6. Wenn der Preis unter dem Stop-Loss-Preis fällt, wird die Strategie sofort platziert.

Durch die oben genannten Schritte kann die Strategie im Aufwärtstrend profitieren und gleichzeitig das Abwärtsrisiko mit Stop-Loss kontrollieren.

Strategische Vorteile

Eine Strategie, die die EMA-Kreuzung über die Höchstpreise durchbricht, hat folgende Vorteile:

  1. Trend-Tracking: Diese Strategie nutzt Preis-Breakouts und EMA-Kreuzungen, um Markttrends zu erfassen und profitiert von Aufwärtstrends.
  2. Risikokontrolle: Die Strategie nutzt den Stop-Loss-Preis, um das Abwärtsrisiko zu kontrollieren, um die maximale Rücknahme der Strategie zu reduzieren.
  3. Parameterflexibilität: Die Strategie bietet mehrere benutzerdefinierte Parameter, wie z. B. die Periode, das Risikoprofil, die Verwendung von Stop-Loss-Systemen, die sich an unterschiedliche Handelsstile und Marktbedingungen anpassen lassen.
  4. Einfach und effektiv: Die Logik der Strategie ist einfach und klar, leicht zu verstehen und zu implementieren, und es ist möglich, gute Gewinne in einem Trendmarkt zu erzielen.

Strategisches Risiko

Obwohl es einige Vorteile gibt, die EMA-Kreuzung durch die Höchstpreise zu durchbrechen, ist es mit folgenden Risiken verbunden:

  1. Risiken von Marktschwankungen: Bei starker Marktschwankungen kann die Strategie zu einer erhöhten Anzahl von falschen Signalen führen, was zu häufigen Transaktionen und Verlusten von Geldern führt.
  2. Trendwechselrisiko: Die Strategie kann den Verkauf verzögern, wenn sich die Marktentwicklung umkehrt, was zu einem Gewinnrücklauf oder einer Verlustverlust führt.
  3. Risiken bei der Einstellung von Parametern: Die Strategie funktioniert nur, wenn die Parameter wie z. B. die Periodizität, das Risiko-Verhältnis usw. eingestellt sind. Wenn die Parameter nicht richtig eingestellt sind, kann dies zu einer schlechten Strategie führen.

Um diese Risiken zu verringern, können folgende Maßnahmen in Erwägung gezogen werden:

  1. Angemessene Anpassung der Parameter: Strategieparameter, wie z. B. Vergrößerung der Periode, Verringerung des Risikosatzes, werden entsprechend der verschiedenen Marktbedingungen und der Handelsarten angepasst, um falsche Signale und häufige Geschäfte zu verringern.
  2. Kombination mit anderen Indikatoren: Kann mit anderen technischen Indikatoren wie RSI, MACD usw. kombiniert werden, um die Effektivität von Trends und Signalen zu bestätigen und die Zuverlässigkeit der Strategie zu erhöhen.
  3. Setze einen angemessenen Stop-Loss: Setze einen angemessenen Stop-Loss-Preis, der sowohl das Abwärtsrisiko kontrolliert als auch nicht zu früh aufhört und zu verpassten Gewinnchancen führt.

Richtung der Strategieoptimierung

Um die Leistung der Breakout-Höchstpreis-EMA-Kreuzungsstrategie weiter zu verbessern, können folgende Optimierungsrichtungen in Betracht gezogen werden:

  1. Dynamische Anpassungsparameter: Strategieparameter, die sich dynamisch an die Marktvolatilität und die Trendstärke anpassen, wie z. B. Zyklusvergrößerung bei großer Schwankung, Erhöhung des Risikosatzes bei starker Tendenz, um sich an unterschiedliche Marktbedingungen anzupassen.
  2. Die Einführung von Multi-Forex-Methoden: Die Einführung von Forex-Methoden auf der Grundlage von Original-Multi-Forex-Trading ermöglicht es, auch in Abwärtstrends zu profitieren und die Anpassungsfähigkeit und Ertragsfähigkeit der Strategie zu verbessern.
  3. Optimierung von Stop-Loss- und Stop-Off-Einstellungen, wie beispielsweise die Verwendung von mobilen Stop-Loss- und Teilstop-Einstellungen, um Risiken besser zu kontrollieren und Gewinne zu sichern.
  4. Kombination von Fundamentalanalysen: Kombination von Fundamentalanalysen und technischen Analysen, um die Positionen und Parameter der Strategie vor und nach wichtigen Ereignissen wie Unternehmensberichten oder der Veröffentlichung von Wirtschaftsdaten anzupassen, um auf mögliche Marktveränderungen zu reagieren.

Durch diese Optimierungsmaßnahmen können die Stabilität, Anpassungsfähigkeit und Ertragsfähigkeit der Breakthrough-Hochpreis-EMA-Kreuzungsstrategien verbessert werden, so dass sie in mehr Marktumgebungen gut abschneiden können.

Zusammenfassen

Breakout EMA-Kreuzungen sind eine einfache und effektive Trend-Tracking-Strategie, die Markttrends durch die Nutzung von Preiskreuzungen und EMA-Kreuzungen erfasst und zugleich mit Stop-Losses das Abwärtsrisiko kontrolliert. Die Strategie ist klar in der Logik, flexibel in den Parametern und leicht zu verstehen und umzusetzen. Obwohl die Strategie bestimmte Risiken wie Marktschwankungen, Trendwechselrisiken und Parameterrisiken birgt, können diese Risiken durch geeignete Risikokontrollmaßnahmen gemildert werden, z. B. durch Anpassung der Parameter, Kombination anderer Indikatoren und die Einrichtung eines angemessenen Stop-Losses usw.

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"}]
*/

// @version = 5
strategy(title="BreakHigh Strategy", overlay=true)
Period = input.int(34, "Number of previous bars(34,52 Recommend)")
showbg = input(defval = false,title = "Show BackGround Color")
showema = input(defval = true ,title = "Show Line")
MarkBuySig = input(defval = true ,title = "Show Buy/Sell Signal")

Risk_Per_Trade = input(2.5, '% of Risk Per Trade') / 100  // Risk% Per Trade Switch
SLDAY = input(title='Lowest price of the previous number of bars', defval=9)
Buysig = input(defval=true, title='Start Strategy')
UseSl = input(defval=false, title='Use Stoploss Price')
Compound = input(defval = false ,title =  "Compound Profit")
xtf = input.timeframe(title='** Fix chart to which time frame ? **)', defval='D')


//BUY
float buyLine = na
buyLine := ta.highest(high,Period)[1] 
plot(showema ? buyLine : na, linewidth=1, style=plot.style_linebr, color=color.new(color.green, 0))

//SELL
output = ta.ema(close, Period)
show = request.security(syminfo.tickerid, xtf, output)
FastL = plot(showema ? show : na, color=color.new(color.white, 0), linewidth=2, title='Slow EMA')

//Buy-Sell Signal
Green = close > buyLine   // Buy
Red = close < show // Sell

buycond = Green and Green[1] == 0
sellcond = Red and Red[1] == 0

bullish = ta.barssince(buycond) < ta.barssince(sellcond)
bearish = ta.barssince(sellcond) < ta.barssince(buycond)

buy = bearish[1] and buycond
sell = bullish[1] and sellcond

plotshape(MarkBuySig ? buy : na, style=shape.labelup, text='Buy Next Bar', textcolor=color.new(color.black, 0), location=location.belowbar, color=color.new(color.green, 0))
plotshape(MarkBuySig ? sell : na, style=shape.labeldown, text='Sell Next Bar', textcolor=color.new(color.black, 0), location=location.abovebar, color=color.new(color.red, 0))
bgcolor(showbg ? bullish ? color.new(color.green,90) : color.new(color.red,90) : na )


// === BACKTEST RANGE === //
use_date_range = input(true)
FromYear = input.int(defval=2012, title='From Year', minval=1950)
FromMonth = input.int(defval=1, title='From Month', minval=1)
FromDay = input.int(defval=1, title='From Day', minval=1)
ToYear = input.int(defval=9999, title='To Year', minval=1950)
ToMonth = input.int(defval=1, title='To Month', minval=1)
ToDay = input.int(defval=1, title='To Day', minval=1)
in_date_range = use_date_range ? time > timestamp(FromYear, FromMonth, FromDay, 00, 00) and time < timestamp(ToYear, ToMonth, ToDay, 23, 59) : true

//****************************************************************************//

//////////////////////////////////////////////
//    define strategy entry / exit          //
//////////////////////////////////////////////

//****************************************************************************//
// LONG CONDITIONS

Select_Long_Condition_1 = close > buyLine // Buy when Have Signal
Open_Long_Condition = Select_Long_Condition_1 and strategy.opentrades == 0

//****************************************************************************//
// STOP LOSS Price

float longSL = na
longSL := Open_Long_Condition ? ta.lowest(low, SLDAY)[1] : longSL[1]  


//****************************************************************************//
// Cal StopLoss

Long_Entry_Price = close
Diff_OPEN_to_SL = math.abs(Long_Entry_Price - longSL)

// Exit CONDITIONS

Exit_Long_Condition = close < show // Sell when Have Signal

//****************************************************************************//
// POSITION SIZE CAP

strategy.initial_capital = 50000

float portSize = Compound ? strategy.netprofit + strategy.initial_capital : strategy.initial_capital
float LossAmoutUnit = portSize * Risk_Per_Trade //50
float PercentSL = ( Diff_OPEN_to_SL / Long_Entry_Price ) * 100
float PositionSize = LossAmoutUnit / Diff_OPEN_to_SL


//****************************************************************************//
// ENTRY/EXIT

if Buysig
    if Open_Long_Condition and in_date_range 
        strategy.entry('LONG', strategy.long, qty=PositionSize)


if Exit_Long_Condition and in_date_range
    strategy.close('LONG')
if close < longSL and UseSl
    strategy.close('LONG')

//****************************************************************************//
// PLOT STOP LOSS

longPlotSL = strategy.opentrades > 0 and strategy.position_size > 0 ? longSL : na
// label.new(bar_index, high, text=str.tostring(longPlotSL),color=color.white, textcolor=color.black)
plot(longPlotSL, title="", linewidth=2, style=plot.style_linebr, color=color.new(color.red, 0))



//****************************************************************************//