Handelsstrategien basierend auf Wellentrends


Erstellungsdatum: 2023-12-19 12:07:14 zuletzt geändert: 2023-12-19 12:07:14
Kopie: 0 Klicks: 1121
1
konzentrieren Sie sich auf
1621
Anhänger

Handelsstrategien basierend auf Wellentrends

Überblick

Es handelt sich um eine Handelsstrategie, die auf dem LazyBear-Indikator für Wellentrends basiert. Die Strategie berechnet Wellentrends durch Preisschwankungen, um zu überkaufen und zu verkaufen, und um Longing und Shorting durchzuführen.

Strategieprinzip

Die Strategie basiert hauptsächlich auf LazyBear’s Wave Trend Indicator. Zuerst berechnet man den Durchschnittspreis der Preise ((AP), dann den Index-Moving-Average des AP ((ESA) und den Index-Moving-Average der absoluten Preisänderung ((D)). Darauf basierend berechnet man den Wave-Index ((CI), dann den Index-Moving-Average des CI und erhält die Wave-Trendlinie ((WT)).

Analyse der Stärken

Dies ist eine sehr einfache, aber sehr praktische Trend-Tracking-Strategie, die folgende Vorteile hat:

  1. Die Wave-Trend-Indikatoren ermöglichen eine klare Identifizierung von Preistrends und Marktstimmung.
  2. Das Goldkreuz und das Todkreuz von WT sind einfach zu bedienen, um Über- und Unterziehungspunkte zu bestimmen
  3. Anpassbare Parameter, die die Empfindlichkeit der WT-Leitung anpassen, um sie an unterschiedliche Perioden anzupassen
  4. Zusätzliche bedingte Filtersignale können hinzugefügt werden, wie z. B. die Begrenzung der Handelszeitfenster

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Als Trend-Tracking-Strategie ist es leicht, viele falsche Signale bei der Bilanzierung zu erzeugen.
  2. Die WT-Leitung selbst ist sehr rückständig und könnte einen schnellen Preiswendepunkt verpassen.
  3. Die Standardparameter sind möglicherweise nicht für alle Sorten und Zyklen geeignet und müssen optimiert werden
  4. Keine Stop-Loss-Mechanismen, einseitige Haltestellen könnten zu lang sein

Die wichtigsten Lösungen sind:

  1. Optimierung der Parameter und Anpassung der Sensitivität der WT-Leitung
  2. Hinzufügen von anderen Kennzahlen zur Bestätigung und zur Vermeidung von Fehlsignalen
  3. Stop-Loss und Stop-Stop-Einstellungen
  4. Beschränkung der Anzahl der täglichen Transaktionen oder Positionen

Optimierungsrichtung

Die Strategie kann noch weiter optimiert werden:

  1. Optimierung der WT-Parameter, um sie anfälliger oder stabiler zu machen
  2. Unterschiedliche Kombinationen von Parametern basierend auf unterschiedlichen Perioden
  3. Hinzufügen von Werte, Schwankungen usw. als Bestätigungssignale
  4. Hinzufügen von Stop-Loss- und Stop-Stop-Logik
  5. Erweiterte Positions, wie z.B. Pyramid-Investitionen, Grid-Trading usw.
  6. Bessere Merkmale und Handelsregeln in Kombination mit Methoden wie maschinellem Lernen

Zusammenfassen

Die Strategie ist eine sehr einfache und praktische Wellen-Trend-Tracking-Strategie. Sie erzeugt Handelssignale durch Berechnung von Preisschwankungen, Identifizierung von Überkauf- und Überverkaufszuständen im Markt und nutzt die Gold-Kreuzung und die Todes-Kreuzung der WT-Leitung. Die Strategie ist einfach zu bedienen und leicht umzusetzen.

Strategiequellcode
/*backtest
start: 2023-11-18 00:00:00
end: 2023-12-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//
// @author LazyBear
//
// If you use this code in its original/modified form, do drop me a note. 
//
//@version=4
     
// === INPUT BACKTEST RANGE ===
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2021, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

// === INPUT SHOW PLOT ===
showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

// === FUNCTION EXAMPLE ===
start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true       // create function "within window of time"

n1 = input(10, "Channel Length")
n2 = input(21, "Average Length")
obLevel1 = input(60, "Over Bought Level 1")
obLevel2 = input(53, "Over Bought Level 2")
osLevel1 = input(-60, "Over Sold Level 1")
osLevel2 = input(-53, "Over Sold Level 2")
 
ap = hlc3 
esa = ema(ap, n1)
d = ema(abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = ema(ci, n2)
 
wt1 = tci
wt2 = sma(wt1,4)

plot(0, color=color.gray)
plot(obLevel1, color=color.red)
plot(osLevel1, color=color.green)
plot(obLevel2, color=color.red, style=3)
plot(osLevel2, color=color.green, style=3)

plot(wt1, color=color.white)
plot(wt2, color=color.fuchsia)
plot(wt1-wt2, color=color.new(color.blue, 80), style=plot.style_area)

//Strategy
strategy(title="T!M - Wave Trend Strategy", overlay = false, precision = 8, max_bars_back = 200, pyramiding = 0, initial_capital = 1000, currency = currency.NONE, default_qty_type = strategy.cash, default_qty_value = 1000, commission_type = "percent", commission_value = 0.1, calc_on_every_tick=false, process_orders_on_close=true)
    
longCondition  = crossover(wt1, wt2)
shortCondition = crossunder(wt1, wt2)

strategy.entry(id="Long Entry", comment="buy", long=true, when=longCondition and window())
strategy.close("Long Entry", comment="sell", when=shortCondition and window())      

//strategy.entry(id="Short Entry", long=false, when=shortCondition)