Livermore Long Key Price Breakthrough Quantitative Handelsstrategie

ATR Pivot Points Trend Analysis JESSE LIVERMORE risk management
Erstellungsdatum: 2025-07-16 11:24:22 zuletzt geändert: 2025-08-07 10:07:04
Kopie: 0 Klicks: 326
2
konzentrieren Sie sich auf
319
Anhänger

Livermore Long Key Price Breakthrough Quantitative Handelsstrategie Livermore Long Key Price Breakthrough Quantitative Handelsstrategie

Überblick

Die Strategie basiert auf der Identifizierung von Haupttrends, natürlichen Rückschlägen und Nebenrückschlägen, um die Zeitpunkte zu erfassen, in denen der Preis wichtige Unterstützungs- und Widerstandspunkte durchbricht. Der Kern der Strategie ist die Verwendung von Prozentsätzen oder ATR-Indikatoren, um die Trendwende zu bestimmen, und die Erstellung von Mehrkopfpositionen bei der Bestätigung von Haupttrends und der Ausgleich von Haupttrends bei der Bestätigung von Haupttrends, um die Marktschwankungen intelligent zu verfolgen und Geld zu verwalten.

Strategieprinzip

Die Strategie basiert auf der Handelsphilosophie von Jesse Livermore und unterteilt Markttrends in sechs Zustände: Haupt-Aufwärtstrend (MAIN_UP), Haupt-Abwärtstrend (MAIN_DOWN), Natürlicher Rückschlag (NATURAL_REBOUND), Natürlicher Rückschlag (NATURAL_RETRACEMENT), Sekundärer Rückschlag (SECONDARY_REBOUND) und Sekundärer Rückschlag (SECONDARY_RETRACEMENT).

Die Strategie ermittelt den Trendzustand des Marktes durch die Berechnung der Beziehung zwischen dem aktuellen Preis und den historischen Schlüsselpunkten in Verbindung mit einem vorgegebenen Pivot-Ratio (entweder als fester Prozentsatz oder auf Basis der dynamischen Berechnung des ATR). Die spezifische Logik lautet wie folgt:

  1. Bei einem Hauptrend wird der Aufwärtstrend aufrechterhalten und der Höchststand aktualisiert, wenn die Preise nicht über dem von der Hauptachse definierten Schwellenwert steigen oder zurückgehen. Bei einem Rückschlag über den Schwellenwert wechselt der Rückschlag in einen natürlichen Rückschlag.

  2. In einem Haupt-Abwärtstrend, wenn der Preis weiter abnimmt oder nicht mehr als die Schwelle der Haupt-Achsen-Messung definiert ist, wird der Abwärtstrend-Zustand gehalten und der Tiefpunkt aktualisiert. Wenn der Rückschlag die Schwelle überschreitet, wird in einen natürlichen Rückschlag umgestellt.

  3. Trendwechsel zwischen natürlichen und untergeordneten Rebounds/Retracts, basierend auf der Beziehung zwischen dem Preis und den historischen Hoch- und Tiefpunkten sowie auf den vorgegebenen Primär- und Sekundärakten.

Die Logik der Handelssignalgenerierung ist: Erstellen Sie eine Mehrpositionsposition, wenn der Trend zwei aufeinanderfolgende Zyklen als Haupt-Aufwärtstrend bestätigt hat; Ausstieg aus dem Markt, wenn der Trend zwei aufeinanderfolgende Zyklen als Haupt-Abwärtstrend bestätigt hat.

Strategische Vorteile

  1. Systematische TrendbeurteilungDie Strategie systematisiert Livermores Handelspläne und definiert die unterschiedlichen Trendzustände durch klare mathematische Modelle, wodurch die Unsicherheit durch subjektive Beurteilungen beseitigt wird.

  2. Äußerst anpassungsfähigDie Strategie kann an unterschiedliche Marktumgebungen und Volatilitätsbedingungen angepasst werden, was die Flexibilität der Strategie erhöht.

  3. BestätigungDie Strategie erfordert zwei aufeinanderfolgende Trendbestätigungszyklen, um einen Handel zu tätigen, was die Verluste durch falsche Durchbrüche reduziert.

  4. FinanzierungsintegrationStrategie: Verwenden Sie die Anteile der Konten zur Positionsverwaltung, um sicherzustellen, dass die Risikogrenze für verschiedene Konten gleich bleibt.

  5. Langfristige Trends erfasstDurch die Unterscheidung zwischen Haupt- und Nebentrends kann die Strategie den Großzyklus-Trend effektiv erfassen und die Störung durch kurzfristige Geräusche vermeiden.

Strategisches Risiko

  1. RückstandsrisikenDa die Strategie den Trendzustand der beiden Zyklen bestätigen muss, um einen Handel auszuführen, kann ein Teil des Gewinns in der Anfangsphase des Trends verpasst werden, oder ein größerer Rückzug ertragen, wenn der Trend umkehrt.

  2. ParameterempfindlichkeitDie Strategie ist stark von Parameter wie Pivot-Range-Prozentsatz, Primär- und Sekundär-Pivot-Multiplikatoren abhängig. Fehlende Parameter können zu übertriebenen oder verpassten Signalen führen.

  3. Einschränkung der Einweg-TransaktionDie Strategie ist so konzipiert, dass nur mehrere Transaktionen ausgeführt werden können. In einem langen Fallmarkt kann es zu einer längerfristigen Geldanlage kommen, die die Gesamtrendite beeinträchtigt.

  4. Komplexität definiert TrendsDie Logik des Umschaltens zwischen den sechs Trendzuständen ist komplizierter und kann zu häufigen Statuswechseln bei starken Marktschwankungen führen, was die Transaktionskosten erhöht.

  5. Fehlende SchadensbegrenzungDer Code enthält keine eindeutigen Stop-Loss-Einstellungen, die bei einem starken Marktwechsel erhebliche Verluste verursachen können.

Richtung der Strategieoptimierung

  1. Erhöhung der Stop-Loss-MechanismenDie Einführung einer Stop-Loss-Strategie auf Basis von ATR oder festen Prozentsätzen, um das Risiko eines einzelnen Handels zu kontrollieren, bevor sich der Trend umkehrt. Konkret kann der Stop-Loss-Preis gleichzeitig mit dem Aufbau von mehreren Positionen festgelegt werden, um die Sicherheit der Gelder zu schützen.

  2. Optimierte TrendbestätigungsmechanismenDie aktuelle Strategie erfordert zwei aufeinanderfolgende Trendbestätigungszyklen. Es kann in Kombination mit dem Verkehrsvolumen oder anderen technischen Indikatoren eine Trendbestätigung in Betracht gezogen werden, um die Signalqualität zu verbessern.

  3. Hinzufügen von LeerlauffunktionenEskalationsstrategien zur Unterstützung von Leerlaufhandel, um die Gewinnchancen im Abwärtstrend zu nutzen und die Allwetterleistung der Strategie zu verbessern.

  4. Anpassung der dynamischen ParameterDie Einführung von dynamischen Parameter-Anpassungsmechanismen, die auf historischen Schwankungen oder Marktsituationen basieren, ermöglicht eine bessere Anpassung der Strategie an unterschiedliche Marktbedingungen.

  5. Filterbedingungen hinzugefügtDas Ziel ist es, die Gewinnrate zu erhöhen, indem man die Positionen unter ungünstigen Bedingungen nicht eröffnet, sondern sie mit den zyklischen, saisonalen oder grundlegenden Filtern des Marktes kombiniert.

  6. Errichtung von Lagerstätten in ScherbenDas Projekt wurde von der Bank von der Region in Zusammenarbeit mit der Bank von der Provinz Südostasien und der Provinz Südostasien durchgeführt.

Zusammenfassen

Die Livermore Multihead Key Price Breakthrough Quantitative Trading Strategie verwandelt erfolgreich die klassische Trading-Konzeption von Jesse Livermore in ein algorithmisches System mit quantifizierbarer Ausführung. Durch die genaue Definition der sechs Trendzustände des Marktes und deren Umsetzungsbedingungen ist die Strategie in der Lage, die wichtigsten Aufwärtstrends effektiv zu identifizieren und zu verfolgen und Multihead-Trades auf der Grundlage von bestätigten Trends auszuführen.

Obwohl Strategien über systematische, anpassungsfähige und eingebaute Bestätigungsmechanismen verfügen, bestehen Risiken wie Verzögerung, Parameter-Sensitivität und Mangel an Stop-Loss. Durch die Erhöhung der Stop-Loss-Mechanismen, die Optimierung der Trendbestätigung, die Erweiterung der Leerlauffunktion und die Realisierung dynamischer Parameteranpassungen können die Stabilität und Profitabilität von Strategien weiter verbessert werden.

Insgesamt bietet die Strategie einen soliden Rahmen für Investoren, die die Livermore-Handelsphilosophie systematisch umsetzen möchten, und erwartet stabile langfristige Erträge bei tatsächlichen Geschäften durch geeignete Parameteranpassungen und Optimierung des Risikomanagements.

Strategiequellcode
/*backtest
start: 2024-07-16 00:00:00
end: 2025-07-12 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":200000}]
*/

// This Pine Script® code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © bozhang_ox

//@version=6
strategy("Trading strategy Jesse Livermore", overlay=true)

// Input parameters
pivot_distance_percentage = input.float(0.5, title="Pivot Distance Percentage")
major_pivot_multiplier = input.int(6, title="Major Pivot Multiplier")
minor_pivot_multiplier = input.int(3, title="Minor Pivot Multiplier")
use_atr_pivot_distance = input.bool(false, title="Use ATR for Pivot Distance")
atr_period = input.int(14, title="ATR Period")
atr_pivot_multiplier = input.float(1, title="ATR Pivot Multiplier")

// Calculate ATR
atr = ta.atr(atr_period)

// Helper function to calculate pivot distance ratio
pivot_distance_ratio = use_atr_pivot_distance ? (atr * atr_pivot_multiplier) / close : pivot_distance_percentage / 100

// Trend states
NONE = 0
MAIN_UP = 6
MAIN_DOWN = 1
NATURAL_REBOUND = 2
NATURAL_RETRACEMENT = 5
SECONDARY_REBOUND = 4
SECONDARY_RETRACEMENT = 3

// Variables to track trends
var float main_up_max = na
var float main_down_min = na
var float natural_rebound_max = na
var float natural_retracement_min = na
var int trend = NONE
var int prev_trend = NONE
var int prev_prev_trend = NONE


// Initialize variables
if na(main_up_max)
    main_up_max := -1e10
if na(main_down_min)
    main_down_min := 1e10
if na(natural_rebound_max)
    natural_rebound_max := -1e10
if na(natural_retracement_min)
    natural_retracement_min := 1e10

// Trend logic
if trend == NONE
    if close > close[1]
        trend := MAIN_UP
        main_up_max := close
    else
        trend := MAIN_DOWN
        main_down_min := close
else if trend == MAIN_UP
    if close > close[1] or (main_up_max - close < close[1] * pivot_distance_ratio * major_pivot_multiplier)
        trend := MAIN_UP
        main_up_max := math.max(main_up_max, close)
    else
        trend := NATURAL_RETRACEMENT
        natural_retracement_min := close
else if trend == MAIN_DOWN
    if close < close[1] or (close - main_down_min < close[1] * pivot_distance_ratio * major_pivot_multiplier)
        trend := MAIN_DOWN
        main_down_min := math.min(main_down_min, close)
    else
        trend := NATURAL_REBOUND
        natural_rebound_max := close
else if trend == NATURAL_REBOUND
    if close > close[1]
        if close <= main_up_max
            if close - natural_rebound_max <= close[1] * pivot_distance_ratio * minor_pivot_multiplier
                trend := NATURAL_REBOUND
                natural_rebound_max := math.max(natural_rebound_max, close)
            else
                trend := MAIN_UP
                main_up_max := close
        else
            trend := MAIN_UP
            main_up_max := close
    else
        if natural_rebound_max - close <= close[1] * pivot_distance_ratio * major_pivot_multiplier
            trend := NATURAL_REBOUND
        else if close < natural_retracement_min
            trend := NATURAL_RETRACEMENT
            natural_retracement_min := close
        else
            trend := SECONDARY_RETRACEMENT
else if trend == NATURAL_RETRACEMENT
    if close < close[1]
        if close >= main_down_min
            if natural_retracement_min - close <= close[1] * pivot_distance_ratio * minor_pivot_multiplier
                trend := NATURAL_RETRACEMENT
                natural_retracement_min := math.min(natural_retracement_min, close)
            else
                trend := MAIN_DOWN
                main_down_min := close
        else
            trend := MAIN_DOWN
            main_down_min := close
    else
        if close - natural_retracement_min <= close[1] * pivot_distance_ratio * major_pivot_multiplier
            trend := NATURAL_RETRACEMENT
        else if close > natural_rebound_max
            trend := NATURAL_REBOUND
            natural_rebound_max := close
        else
            trend := SECONDARY_REBOUND
else if trend == SECONDARY_REBOUND
    if close <= natural_rebound_max and close >= natural_retracement_min
        trend := SECONDARY_REBOUND
    else if close < natural_retracement_min
        trend := NATURAL_RETRACEMENT
        natural_retracement_min := close
    else
        trend := NATURAL_REBOUND
        natural_rebound_max := close
else if trend == SECONDARY_RETRACEMENT
    if close >= natural_retracement_min and close <= natural_rebound_max
        trend := SECONDARY_RETRACEMENT
    else if close > natural_rebound_max
        trend := NATURAL_REBOUND
        natural_rebound_max := close
    else
        trend := NATURAL_RETRACEMENT
        natural_retracement_min := close


// Execute trades based on trend changes
if prev_trend != prev_prev_trend
    if trend == MAIN_UP and prev_trend == MAIN_UP
        strategy.entry("Long Entry", strategy.long, comment="Long Entry")
    else if trend == MAIN_DOWN and prev_trend == MAIN_DOWN
        strategy.close("Long Entry", comment = "Long Close")

// Update previous trend
prev_prev_trend := prev_trend
prev_trend := trend