Widerstandsausbruch - Zirkuläre Stop-Loss-Strategie


Erstellungsdatum: 2023-12-11 11:44:49 zuletzt geändert: 2023-12-11 11:44:49
Kopie: 1 Klicks: 573
1
konzentrieren Sie sich auf
1621
Anhänger

Widerstandsausbruch - Zirkuläre Stop-Loss-Strategie

Überblick

Die Strategie nutzt die Signalisierung der Preisform des Widerstandsbruchs und die Risikokontrolle des Kreislaufstopps. Es wird nach dem Durchbruch der Widerstandslage mehr Positionen aufgenommen und nach dem Durchbruch der Unterstützung frei gemacht. Gleichzeitig werden die Kreislaufstopps und -stopps eingerichtet, um das Risiko effektiv zu kontrollieren.

Strategieprinzip

Die Strategie basiert hauptsächlich auf folgenden Punkten:

  1. Der Trend wird mit der Durchschnittslinie beurteilt. Die Strategie beinhaltet eine schnelle und langsame Durchschnittslinie, wobei das Durchschreiten der langsamen Linie auf der schnellen Linie eine Aufwärtsbewegung der langen Linie bedeutet und das Durchschreiten der langen Linie eine Abwärtsbewegung.

  2. Ein Signal zum Durchbruch des Widerstands. Ein Signal zum Durchbruch des Widerstands wird als ein Signal zum Durchbruch des Widerstands betrachtet, wenn der Preis in die Höhe der jüngsten Höchststände steigt.

  3. Ein Signal zum Brechen eines Unterstützungs- oder Defizit-Betriebs. Wenn der Preis nach unten fällt und ein aktuelles Tief überschreitet, wird dies als Signal zum Brechen eines Unterstützungs- oder Defizit-Betriebs angesehen.

  4. Setzen Sie eine Stop-Line nach dem Eintritt und passen Sie diese an, um die Preise um die Stop-Line zu bewegen.

  5. Stopp-Loss und Stop-Exit. Stopp-Loss-Exit ist eine effektive Risikokontrolle, Stopp-Exit ist eine Gewinnauslösung.

Die Strategie verwendet die Mittelwerte der hohen und niedrigen Preise als Preisquelle, um die Richtung der Tendenz durch die schnelle EMA zu bestimmen. Wenn die schnelle Linie die langsame Linie durchbricht und ein Resistenzbruchsignal auftritt, wird eine Überschreitung vorgenommen, und wenn die schnelle Linie die langsame Linie durchbricht und ein Unterstützungsbruchsignal auftritt, wird eine Unterbrechung vorgenommen.

Analyse der Stärken

Die Strategie hat folgende Vorteile:

  1. Gewinnstabilität. Sie können Trend-Operationen durchführen, um in den langen Trends auf der Index-Ebene zu profitieren.

  2. Risikokontrolle ist gut. Die Einrichtung eines Kreislaufs, um Verluste zu verhindern und zu stoppen, um Verluste rechtzeitig zu stoppen und auszusteigen.

  3. Signalgenauigkeit. Durchbruch der Widerstands- und der Stützpunkte ist durchbruchfrei. Signalgenauigkeit ist zuverlässig.

  4. Einfach zu bedienen. Die Anzeige- und Signalregeln sind einfach und klar, die Parameter sind einfach einzustellen.

  5. Marktanpassung: Sie ist in der Lage, mit verschiedenen Sorten und unter allen Marktbedingungen zu arbeiten.

Risikoanalyse

Die Strategie birgt auch einige Risiken, die beachtet werden müssen:

  1. Gefahr des Durchbruchs. Nach dem Durchbruch der Widerstandshöhe kann es zu Rückstellungen und Neuanwendungen kommen, die zu Stoppschäden führen.

  2. Risiken bei der Optimierung von Parametern. Fehlende Einstellungen von Parametern können zu häufigen oder unzureichenden Signalen führen. Der Optimierungsprozess muss mit Vorsicht durchgeführt werden.

  3. Risiko eines Ausfalls der EMA-Indikatoren. In besonderen Marktbedingungen können EMA-Indikatoren ausfallen oder verzögert werden.

  4. Trendwechselrisiken. Wenn der Kurs von der Marktrichtung abweicht, können die Verluste zunehmen.

Diese Risiken können durch Parameteroptimierung, angemessene Toleranz und strikte Befolgung von Signalen weitgehend kontrolliert und gemildert werden.

Optimierungsrichtung

Die Strategie kann in folgenden Bereichen weiter optimiert werden:

  1. Zeitzyklusoptimierung. Anpassung der Zeitzyklusparameter zur Berechnung der Durchschnittslinie und der Preisform, um die optimale Kombination zu finden.

  2. Optimierung der Anpassungsfähigkeit der Sorte. Anpassung der Parameter-Einstellungen an die Eigenschaften der verschiedenen Sorten.

  3. Optimierung der Stop-Loss-Strategie. Einsatz von stabileren und präziseren Stop-Methoden, wie beispielsweise Moving Stop, Vibration Stop, etc.

  4. Optimierung der Stop-Off-Strategie. Setzen Sie eine mobile Stop-Off-Strategie oder eine Index-Stop-Strategie, um die Gewinne zu maximieren.

  5. Filterbedingungen hinzugefügt. Filterbedingungen wie Handelsvolumen, Volatilität und so weiter hinzugefügt, um False Breaks auszuschließen.

  6. Erweiterung des Eintrittssignals. Hinzufügen weiterer Kennzeichen oder Formen als Bestätigung des Eintrittssignals.

Zusammenfassen

Die Strategie funktioniert flüssig, die Kernidee ist klar, die Stabilität und die Ertragsfähigkeit sind hoch. Die Anwendung von Risikokontrollen und Kennzahlen ist auch geeignet und eine bahnbrechende Quantifizierungsstrategie, die es wert ist, angewendet zu werden. Die nachfolgende Optimierung durch Parameter und Module kann die Strategie verbessern und an mehr Sorten und komplexe Marktumgebungen anpassen.

Strategiequellcode
/*backtest
start: 2023-12-03 00:00:00
end: 2023-12-10 00:00:00
period: 30m
basePeriod: 15m
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/
// © EduardoMattje

//@version=4
strategy("Reversal closing price", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, initial_capital=10000)

src = input(hl2, "Price source")
order_direction = input("Both", "Order direction", options=["Both", "Long", "Short"])

// EMA calculation and plot

ema_long_period = input(80, "EMA long period")
ema_short_period = input(8, "EMA short period")
ema_long = ema(src, ema_long_period)
ema_short = ema(src, ema_short_period)
ema_bull = ema_short > ema_long
ema_bear = ema_short < ema_long
plot(ema_long, "EMA long", ema_bull ? color.green : color.red, 3)
plot(ema_short, "EMA short", ema_bull ? color.green : color.red, 3)

// Settings

risk_reward_ratio = input(2.0, "Risk to reward ratio", minval=1.0, step=0.1)
stop_lookback = input(3, "Stoploss candle lookback", minval=1)
ema_cross_stop = input(true, "Close if EMA crosses in oposite direction")
allow_retracing = input(true, "Allow price retracing")

// RCP calculation

rcp_bull = low[0] < low[1] and low[0] < low[2] and close[0] > close[1]
rcp_bear = high[0] > high[1] and high[0] > high[2] and close[0] < close[1]

// Order placement

in_market = strategy.position_size != 0

long_condition = rcp_bull and ema_bull and not in_market and order_direction != "Short"
short_condition = rcp_bear and ema_bear and not in_market and order_direction != "Long"

bought = strategy.position_size[0] > strategy.position_size[1] and strategy.position_size[1] == 0
sold = strategy.position_size[0] < strategy.position_size[1] and strategy.position_size[1] == 0
closed = not in_market and in_market[1]

long_position = strategy.position_size > 0
short_position = strategy.position_size < 0

buy_price = high + syminfo.mintick
sell_price = low - syminfo.mintick

if long_condition
    strategy.entry("Long", true, stop=buy_price)
if short_condition
    strategy.entry("Short", false, stop=sell_price)
    
if allow_retracing
    better_price_long = barssince(closed) > barssince(long_condition) and barssince(long_condition) >= 1 and not in_market and ema_bull and buy_price < valuewhen(long_condition, buy_price, 0) and buy_price[0] < buy_price[1]
    if better_price_long
        strategy.cancel("Long")
        strategy.entry("Long", true, stop=buy_price)
    
    better_price_short = barssince(closed) > barssince(short_condition) and barssince(short_condition) >= 1 and not in_market and ema_bear and sell_price > valuewhen(short_condition, sell_price, 0) and sell_price[0] > sell_price[1]
    if better_price_short
        strategy.cancel("Short")
        strategy.entry("Short", false, stop=sell_price)

// Stoploss orders

stop_price = long_position ? valuewhen(bought, lowest(stop_lookback)[1] - syminfo.mintick, 0) : short_position ? valuewhen(sold, highest(3)[1] + syminfo.mintick, 0) : na
stop_comment = "Stoploss triggered"
strategy.close("Long", low <= stop_price, stop_comment)
strategy.close("Short", high >= stop_price, stop_comment)
plot(stop_price, "Stop price", color.red, 2, plot.style_linebr)

// EMA cross close orders

if ema_cross_stop
    if long_position and ema_bear
        strategy.close("Long", comment=stop_comment)
    if short_position and ema_bull
        strategy.close("Short", comment=stop_comment)

// Take profit orders

stop_ticks = abs(strategy.position_avg_price - stop_price)
take_profit_price = long_position ? valuewhen(bought, strategy.position_avg_price + stop_ticks * risk_reward_ratio, 0) : short_position ? valuewhen(sold, strategy.position_avg_price  - (stop_ticks * risk_reward_ratio), 0) : na
target_comment = "Take profit"
strategy.close("Long", high >= take_profit_price, target_comment)
strategy.close("Short", low <= take_profit_price, target_comment)
plot(take_profit_price, "Target price", color.green, 2, plot.style_linebr)