Welles Wilders Trend-Balance-Punkte-System

Schriftsteller:ChaoZhang, Datum: 23.09.2023
Tags:

Übersicht

Dies ist das ursprüngliche Trend Balance Point System, das 1978 von Welles Wilder mit Regeln in seinem Buch New Concepts in Technical Trading Systems entwickelt wurde.

Strategie Logik

Die wichtigsten Komponenten und Regeln sind:

  1. Momentum-Indikator: Berechnet die Preisänderung über N Zeiträume, um den Trend zu bestimmen.

  2. Langer Zustand: Anstieg der Dynamik in den beiden laufenden und vorhergehenden Perioden.

  3. Kurzzeit: Abnahme der Dynamik in den beiden laufenden und vorhergehenden Perioden.

  4. Stop-Loss: Durchschnittlicher Preis des Vortages ± Bereich des Vortages.

  5. Gewinnspiel: 2 * Durchschnittspreis des Vortages - Niedrig (lang) oder Hoch (kurz) des Vortages.

  6. Ausgänge mit Stopp oder Ziel nach dem Eintritt.

Die Strategie nutzt direkt die Dynamik für die Trendbestimmung und einen strukturierten Stopp-/Zielansatz zur Risikokontrolle und zur Bildung eines robusten Trendfolgensystems.

Vorteile

Im Vergleich zu anderen Trendfolgestrategien sind die wichtigsten Vorteile:

  1. Einfache Impulsberechnung, einfach umzusetzen.

  2. Mehrperiodische Kombination Filter Geräusche.

  3. Die strukturierte Ziel-Stopp-Struktur ist robust.

  4. Grenzwerte für Verluste pro Handel.

  5. Abzug kontrolliert, Gewinn abnehmen klar.

  6. Einfach und flexibel zu bedienen.

  7. Einstellbare Parameter für verschiedene Märkte.

  8. Intuitive und einfache Logik.

  9. Insgesamt gute Stabilität und Risikokontrolle.

Risiken

Die Risiken sind jedoch:

  1. Momentumverzögerung kann wichtige Kurven verpassen.

  2. Die Leistung hängt von Parameter-Tuning ab.

  3. Ohne Lautstärkungsfilter besteht die Gefahr, eingeschlossen zu werden.

  4. Die Einstellungen für Stopp/Ziel sind starr und können in der Praxis fehlschlagen.

  5. Begrenzte Rückprüfungsperiode, langfristige Robustheit überprüft werden muss.

  6. Eine feste Größe kann nicht dynamisch angepasst werden.

  7. Begrenzter Optimierungsraum, unsicherer Alpha.

  8. Es ist notwendig, das Verhältnis Belohnung/Risiko und die Anpassung der Kurve zu überwachen.

Verbesserungen

In Anbetracht der Analyse können Verbesserungen Folgendes umfassen:

  1. Verschiedene Momentberechnungen testen.

  2. Ich füge Volumenbestätigung hinzu.

  3. Optimierung der Zielparameter.

  4. Einführung von maschinellem Lernen für dynamische Signale.

  5. Bewertung der Robustheit über Produkte und Zeitrahmen hinweg.

  6. Konstruktion dynamischer Positionsgrößenmodelle.

  7. Festlegung der zulässigen Höchstmenge.

  8. Optimierung von Risikomanagementstrategien.

  9. Kontinuierliche Rückprüfung zur Vermeidung von Überanpassung.

Schlussfolgerung

Zusammenfassend ist dies ein relativ einfaches und direktes Trendfolgensystem. Aber kontinuierliche Optimierungen und Robustheitstests sind der Schlüssel für jede Strategie, um anpassungsfähig zu bleiben. Durch systematische Anstrengungen können Strategieleistung und Stabilität verbessert werden.


/*backtest
start: 2023-09-15 00:00:00
end: 2023-09-22 00:00:00
period: 5m
basePeriod: 1m
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/
// © 2020 X-Trader.net

//@version=3
strategy("Trend Balance Point System by Welles Wilder", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital = 10000)

MomPer = input(2, "Momentum Period")

isLong = strategy.position_size > 0
isShort = strategy.position_size < 0

longTrigger = mom(close, MomPer)[1] > mom(close, MomPer)[2] and mom(close, MomPer)[1] > mom(close, MomPer)[3]
shortTrigger = mom(close, MomPer)[1] < mom(close, MomPer)[2] and mom(close, MomPer)[1] < mom(close, MomPer)[3]

longEntry = (not isLong) and longTrigger 
shortEntry = (not isShort) and shortTrigger

longStop = valuewhen(longEntry, ((high[1]+low[1]+close[1])/3 - (high[1]-low[1])), 0)
longTP = valuewhen(longEntry, (2*(high[1]+low[1]+close[1])/3 - low[1]), 0)
shortStop = valuewhen(shortEntry, ((high[1]+low[1]+close[1])/3 + (high[1]-low[1])), 0)
shortTP = valuewhen(shortEntry, (2*(high[1]+low[1]+close[1])/3 - high[1]), 0)

strategy.entry(id = "Long", long = true, when = longEntry)
strategy.exit("Exit Long", "Long", profit = longTP, loss = longStop, when = isLong) 

strategy.entry(id = "Short", long = false, when = shortEntry)
strategy.exit("Exit Short", "Short", profit = shortTP, loss = shortStop, when = isShort) 



Mehr