Richards Schildkrötenhandelsstrategie

Schriftsteller:ChaoZhang, Datum: 2024-02-06 11:56:47
Tags:

img

Übersicht

Richard's Turtle Trading Strategy ist eine Handelsstrategie, die auf Richard Dennis' Schildkrötenhandelstechniken basiert.

Strategie Logik

Die Kernlogik der Schildkrötenhandelsstrategie von Richard besteht darin, Trends auf der Grundlage von Preisschwankungen zu verfolgen. Insbesondere überwacht die Strategie kontinuierlich die höchsten (_20_Tage_höchste) und niedrigsten (_20_Tage_niedrigste) Preise in den letzten 20 Tagen. Wenn der Schlusskurs durch das 20-Tage-Hoch geht, signalisiert er einen Aufbruch und löst eine Long Order aus. Wenn der Schlusskurs unter das 20-Tage-Tief fällt, signalisiert er einen Abbruch und löst eine Short Order aus.

Nach dem Eintritt in Positionen verwendet die Strategie den Average True Range (ATR) zur Berechnung des Stop-Loss-Preises. Sie verfolgt auch 10-tägige Höchst- und Tiefpreise für einen Slip-Stop-Loss. Wenn ein Long-Stop-Loss oder ein Slip-Stop-Loss ausgelöst wird, wird die Long-Position geschlossen. Wenn ein Short-Stop-Loss oder ein Slip-Stop-Loss ausgelöst wird, wird die Short-Position geschlossen.

Vorteile

Die Schildkrötenhandelsstrategie von Richard hat folgende Vorteile:

  1. Es kann automatisch Trendumkehrungen identifizieren und Positionen entsprechend anpassen.
  2. Der ATR-Stop-Loss-Mechanismus steuert effektiv den einzelnen Stop-Loss.
  3. Der Slip-Stop-Loss-Mechanismus sichert einige Gewinne und reduziert die Abzüge.
  4. Die Strategie ist für Anfänger einfach und leicht verständlich.
  5. Keine Notwendigkeit, Markttrends oder komplexe Berechnungen vorherzusagen, nur einfacher regelbasierter Handel.

Risiken

Es gibt auch einige Risiken mit Richards Schildkrötenhandelsstrategie:

  1. Breakout-Trading ist anfällig dafür, eingeschlossen zu werden, was manchmal zu einer übermäßigen Handelsfrequenz führt.
  2. ATR- und Gleitstop-Verlust können zu streng sein, was gelegentlich zu einem vorzeitigen Stop-Verlust führt.
  3. Es verwendet nur Preisdaten, ohne andere Faktoren zu kombinieren, um die Kontinuität des Trends vorherzusagen.
  4. Das Risiko, dass der Backtest übermäßig gut ist, kann sehr schlecht sein.

Um diese Risiken zu verringern, können wir die Einstiegsbedingungen mit mehr Indikatoren optimieren, um Trends vorherzusagen; Stopp-Loss-Algorithmen anpassen, um die Stopp-Loss-Frequenz zu reduzieren.

Optimierungsrichtlinien

Die Schildkrötenhandelsstrategie von Richard kann in folgenden Aspekten optimiert werden:

  1. Optimierung der Parameter, um optimale Parameterkombinationen zu finden, z. B. Anpassung des Berechnungszyklus oder Prüfung verschiedener ATR-Multiplikatoren.
  2. Mehr Indikatoren oder Algorithmen für maschinelles Lernen zur Beurteilung der Trendkontinuität einbeziehen, wie beispielsweise gleitende Durchschnitte, Momentumindikatoren usw.
  3. Optimieren Sie Stop-Loss-Methoden, wie z. B. das Testen von flexiblen Slip-Stop-Loss, Trailing-Stop-Loss usw.
  4. Kombinieren Sie Stimmungsindikatoren, Nachrichten und weitere Informationen, um Marktbewegungen vorherzusagen.

Schlussfolgerung

Die Schildkröten-Handelsstrategie von Richard ist eine sehr typische Breakout-Trend-Nachstrategie. Sie ist einfach und praktisch, gut für Anfänger zu lernen und ein Quant-Handelsparadigma. Die Strategie kann auf viele Arten optimiert werden, um Risiken zu reduzieren und die Rentabilität zu erhöhen. Insgesamt ist die Schildkröten-Strategie von Richard sehr aufschlussreich.


/*backtest
start: 2023-02-05 00:00:00
end: 2024-02-05 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/
// © melodyera0822

//@version=4
strategy("Richard Strategy", overlay=true)

// User input
variable_for_stoploss = input(4,title="stop loss var")
lenght = input(20,title="lenght")

// high_low
_20_day_highest = highest(nz(close[1]), lenght)
_20_day_lowest = lowest(nz(close[1]), lenght)

_10_day_low = lowest(nz(close[1]), lenght/2)
_10_day_high = highest(nz(close[1]), lenght/2)

//indicators
atr20 = atr(20)
ema_atr20 = ema(atr20,20)

//vars
var traded = "false"
var buy_sell = "none"
var buyExit = false
var sellExit = false
var stoploss = 0

buyCon = close > _20_day_highest and traded == "false"
plotshape(buyCon,style = shape.triangleup,location = location.belowbar, color = color.green )
if (buyCon)
    strategy.entry("long", strategy.long, when = buyCon)
    traded := "true"
    buy_sell := "buy"
    stoploss := round(close - variable_for_stoploss * ema_atr20)
    
sellCon = close < _20_day_lowest and  traded == "false"
plotshape(sellCon,style = shape.triangledown, color = color.red )
if (sellCon)
    strategy.entry("short", strategy.short)
    traded := "true"
    buy_sell := "sell"
    stoploss := round(close - variable_for_stoploss * ema_atr20)

if traded == "true"
    if buy_sell == "buy" and ((close<stoploss)or(close<_10_day_low))
        strategy.close("long")
        buyExit := true
        traded := "false"
        
    if buy_sell == "sell" and ((close>stoploss)or(close>_10_day_high))
        strategy.close("short")
        sellExit := true
        traded := "false"
        
plotshape(buyExit,style = shape.triangleup,location = location.belowbar, color = color.yellow )
buyExit := false
plotshape(sellExit,style = shape.triangledown, color = color.yellow )
sellExit := false

Mehr