Trendausbruch-Long Shadow-Strategie


Erstellungsdatum: 2023-11-15 16:43:17 zuletzt geändert: 2023-11-15 16:43:17
Kopie: 2 Klicks: 665
1
konzentrieren Sie sich auf
1617
Anhänger

Trendausbruch-Long Shadow-Strategie

Die Strategie berechnet die Länge des Sonnenschatts der K-Linien, um die Richtung des aktuellen Trends zu bestimmen, die Trenderkennung in Verbindung mit dem ATR der mittleren wahren Breite durchzuführen, die Position an den Durchbruchspunkten rückwärts zu eröffnen, die Stop-Loss-Stopps einzurichten und die kurzfristigen Trends zu erfassen.

Strategieprinzip

Die Strategie wird hauptsächlich durch die Berechnung des Verhältnisses zwischen der Länge des Sonnenschatts und der Länge der K-Linie verwendet, um die Richtung des aktuellen Trends zu bestimmen. Wenn die Sonnenschatten zu lang sind, wird dies als Abwärtstrend und wenn die Sonnenschatten zu lang sind, als Aufwärtstrend beurteilt.

Die Logik der Strategie lautet:

  1. Berechnen Sie die Schattenlänge unterhalb der K-Linie: close-low
  2. Berechnen Sie die Oberschattenlänge der K-Linie: high-open ((Hochpreis - Öffnungspreis))
  3. Maximaler Wert des unteren und des oberen Schattens als Schattenlänge
  4. Berechnen Sie die Länge der K-Linien-Einheit: high-low (Hochpreis-Tiefpreis)
  5. Berechnung des Verhältnisses zwischen Schattenlänge und Körperlänge
  6. Wenn das Verhältnis größer als 0,5 ist und der untere Schatten größer als der obere Schatten ist, wird als Abwärtstrend beurteilt und ein Mehrfach-Einsatz eingestellt
  7. Wenn das Verhältnis größer als 0,5 ist und der obere Schatten größer als der untere Schatten, wird als Aufwärtstrend beurteilt und ein leerer Einzug gesetzt
  8. Beurteilen Sie gleichzeitig, ob die Länge der K-Line-Einheit größer als die 0,75-fache der ATR-Durchschnittswahl ist, um einen unwirksamen Durchbruch zu vermeiden.
  9. Nach dem Eintritt setzt man einen Stop-Loss-Stop, der den Eintrittspreis multipliziert mit einem Faktor und den Stop-Loss mit einem Faktor, der den Eintrittspreis multipliziert mit einem Faktor von 2, um ein Gewinn-Verlust-Verhältnis von 2:1 zu erzielen.

Das ist die grundlegende Handelslogik der Strategie, um die Positionen durch die Identifizierung von Trendbrechpunkten rückwärts zu eröffnen und nach dem Setzen eines Stop-Loss-Stopps die Gewinne zu optimieren.

Strategische Vorteile

  1. Die Verwendung von Sonnen-Schatten-Verhältnissen zur Bestimmung der Trendrichtung, hohe Unterscheidung
  2. Wirkungsvolle Durchbruchsanalysen in Verbindung mit ATR-Indikatoren zur Vermeidung von Fehlsignalen
  3. Ein Stop-Loss-Stopp, das zur Risikokontrolle beiträgt
  4. Erreichung eines 2:1 Gewinn-Loss-Verhältnisses, das den Quantifizierungsstandards entspricht
  5. Short-Line-Handel für hochflüchtige Aktien
  6. Die Strategie ist klar und einfach zu verstehen.

Strategisches Risiko

  1. Stopps können bei starken Kursschwankungen durchbrochen werden, was zu einer Verlustvergrößerung führt.
  2. Effekte sind eng mit den Parameter-Einstellungen verbunden und erfordern Optimierung der Parameter
  3. Der Trend kann sich umdrehen und zu Verlusten führen.
  4. Gleichzeitige Erweiterung der Stop-Loss- und Stop-Out-Bereiche erhöht die Verlustrate
  5. Der Erfolg eines Durchbruchs ist mit hohen Verlusten verbunden.

Risiken können durch vernünftige Stop-Loss, Optimierung von Parametern und rechtzeitige Stop-Loss-Kontrolle kontrolliert werden.

Strategieoptimierung

Die Strategie kann in folgenden Bereichen optimiert werden:

  1. Optimierung der Parameter für die Sonnen-Schatten-Verhältnis, um die besten Werte zu finden
  2. Optimierung der ATR-Parameter zur Bestimmung der besten K-Länge
  3. Optimierung des Stop-Loss-Stopp-Faktors für ein optimales Risiko-Gewinn-Verhältnis
  4. Erhöhung der Positionsverwaltung, beispielsweise durch schrittweise Aufnahme von Positionen
  5. Erhöhung der Tracking-Stop-Loss und Gewinnschutz
  6. In Kombination mit anderen Indikatoren Filterung der Einstiegssignale
  7. Optimierung der Rücklaufzeiten, um die Wirksamkeit der verschiedenen Marktphasen zu testen

Durch mehrfache Tests und Optimierungen kann die Wirksamkeit der Strategie maximiert werden.

Im Allgemeinen ist die Strategie eine kurzfristige, effektiv stabilisierte Strategie, die kurzfristige Preisschwankungen nutzt, indem sie Trends erkennt und Risiken kontrolliert. Optimiert, kann sie zu einem wichtigen Teil des quantitativen Handels werden.

Strategiequellcode
/*backtest
start: 2022-11-08 00:00:00
end: 2023-11-14 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/
// © ondrej17

//@version=4
strategy("longWickstrategy", overlay=true )
 
// Inputs
st_yr_inp = input(defval=2020, title='Backtest Start Year')
st_mn_inp = input(defval=01, title='Backtest Start Month')
st_dy_inp = input(defval=01, title='Backtest Start Day')
en_yr_inp = input(defval=2025, title='Backtest End Year')
en_mn_inp = input(defval=01, title='Backtest End Month')
en_dy_inp = input(defval=01, title='Backtest End Day')
sltp_inp = input(defval=0.8, title='N - % offset for N*SL and (2N)*TP')/100
 
// Dates
start = timestamp(st_yr_inp, st_mn_inp, st_dy_inp,00,00)
end = timestamp(en_yr_inp, en_mn_inp, en_dy_inp,00,00)
canTrade = time >= start and time <= end
// Indicators Setup


 
// Strategy Calcuations
lowerWick = (open > close) ? close-low : open - low
upperWick = (open > close) ? high-open : high-close
wickLength = max(lowerWick,upperWick)
candleLength = high-low
wickToCandleRatio = wickLength / candleLength
entryFilterCandleLength = candleLength > 0.75*atr(48)


// Entries and Exits
 
longCondition = entryFilterCandleLength and wickToCandleRatio > 0.5 and lowerWick > upperWick and canTrade and strategy.position_size == 0
shortCondition = entryFilterCandleLength and wickToCandleRatio > 0.5 and lowerWick < upperWick and canTrade and strategy.position_size == 0

strategy.entry("pendingLong", strategy.long, limit=low+wickLength/2, when = longCondition)
strategy.entry("pendingShort", strategy.short, limit=high-wickLength/2, when = shortCondition)

longStop = strategy.position_size > 0 ? strategy.position_avg_price*(1-sltp_inp) : na
longTP = strategy.position_size > 0 ? strategy.position_avg_price*(1+2*sltp_inp) : na
shortStop = strategy.position_size < 0 ? strategy.position_avg_price*(1+sltp_inp) : na
shortTP = strategy.position_size < 0 ? strategy.position_avg_price*(1-2*sltp_inp) : na

strategy.exit("longSLTP","pendingLong", stop=longStop, limit = longTP)
strategy.exit("shortSLTP","pendingShort", stop=shortStop, limit = shortTP)  
 

plot(longStop, color=color.red, style=plot.style_linebr, linewidth=2)
plot(shortStop, color=color.red, style=plot.style_linebr, linewidth=2)
plot(longTP, color=color.green, style=plot.style_linebr, linewidth=2)
plot(shortTP, color=color.green, style=plot.style_linebr, linewidth=2)

plotLongCondition = longCondition ? high+abs(open-close) : na
plot(plotLongCondition, style=plot.style_circles, linewidth=4, color=color.green)
plotShortCondition = shortCondition ? high+abs(open-close) : na
plot(plotShortCondition, style=plot.style_circles, linewidth=4, color=color.red)