Periodenübergreifende Strategie basierend auf AlphaTrend


Erstellungsdatum: 2023-09-28 11:05:27 zuletzt geändert: 2023-09-28 11:05:27
Kopie: 0 Klicks: 903
1
konzentrieren Sie sich auf
1617
Anhänger

Überblick

Die Strategie basiert auf dem AlphaTrend-Indikator, der die Vorzüge von RSI und MFI kombiniert, um eine bessere Strategiewirkung in einem mehrflächigen Trendmarkt zu erzielen. Die Strategie beurteilt hauptsächlich, ob der Preis die AlphaTrend-Kurve durchbricht, um die Richtung des Trends zu erfassen.

Strategieprinzip

  1. Berechnung des ATR-Wertes zur Messung der Marktschwankungen
  2. Wenn keine Transaktionsvolumen-Daten vorliegen, wird der RSI-Indikator verwendet, um zu ermitteln, ob der Markt leer ist; wenn es Transaktionsvolumen gibt, wird der MFI-Indikator verwendet, um zu ermitteln, ob der Markt leer ist
  3. Auf- und Abfahrt berechnet nach ATR- und Mehrraumurteilen
  4. Berechnung der AlphaTrend-Kurve, die die dynamische Anpassung der Ober- und Unterkurve kombiniert
  5. Wenn der Preis die AlphaTrend-Kurve durchbricht, werden Kauf- und Verkaufssignale ausgesendet

Die Strategie stützt sich hauptsächlich auf die AlphaTrend-Kurve, um die Richtung der Preisentwicklung zu bestimmen. Sie berücksichtigt die ATR-Marktfluktuationsmessung, den RSI und den MFI-Hochspielindikator, um die Preisentwicklung effektiv zu verfolgen. Wenn der Preis die Kurve durchbricht, wird eine Trendwende angezeigt, die als Einstiegspunkt gilt.

Strategische Vorteile

  1. Der AlphaTrend-Indikator kombiniert die Vorzüge von RSI und MFI, um sich gleichzeitig an leere Marktbedingungen anzupassen
  2. Dynamische Auf- und Abfahrt-Einstellungen, die automatisch an Marktbewegungen angepasst werden können
  3. Sie sind nicht leicht von falschen Signalen in die Irre geführt zu werden, wenn sie die Informationen über Preise und Transaktionsmengen berücksichtigen.
  4. Durch den Einsatz bahnbrechender Methoden können neue Trends zeitnah erfasst werden.
  5. Die Logik ist klar, einfach und leicht zu verstehen

Insgesamt ist die Strategie für die Mehrwertsituation geeignet, um Marktlärm zu filtern, Trends zu identifizieren und eine präzise und effiziente Trend-Follow-Strategie zu sein.

Strategisches Risiko

  1. Die AlphaTrend-Kurve kann fehlerhaft durchbrochen werden, was durch die Kombination mit anderen Indikatoren überprüft werden muss
  2. In den meisten Fällen kann es zu mehreren ungültigen Signalen kommen.
  3. Die falsche Einstellung der Indikatorparameter beeinträchtigt die Effektivität der Strategie
  4. Der Stop-Loss könnte bei einem Sturm-Rückgang überschritten werden, so dass große Verluste zu erwarten sind

Risikobestimmte Stop-Loss-Einstellungen, um einzelne Verluste zu kontrollieren. Optimierte Parameterkombinationen, die mit anderen Indikatoren kombiniert werden können, um unwirksame Signale zu reduzieren. Anpassung der Parameter für verschiedene Märkte.

Strategieoptimierung

  1. Versuche mit verschiedenen Parameterkombinationen, um die optimale Parameter zu finden
  2. Zusätzliche Voraussetzungen, die mit anderen Indikatoren kombiniert werden können, um zu einer Entscheidung beizutragen
  3. Sie können dynamische Stopps einrichten oder Stopps verfolgen, um das Risiko zu kontrollieren.
  4. Es gibt verschiedene Frequenzen für den Handel, je nach Marktsituation (z. B. 5 Minuten, 15 Minuten usw.)
  5. Eintritts-Timing kann optimiert werden, um präzisere Eintrittsbedingungen einzurichten

Die Strategie kann weiter optimiert werden, indem verschiedene Märkte und Parameter getestet werden, um sie für mehrere Arten von Situationen zu optimieren.

Zusammenfassen

Die AlphaTrend-Strategie ist insgesamt eine einfache und effiziente Trend-Follow-Strategie. Sie kombiniert Preis und Handelsvolumen, um sich an eine hohe Leerheit anzupassen. Die Eintrittszeit wird durch eine bahnbrechende Operation festgelegt.

Strategiequellcode
/*backtest
start: 2023-09-20 00:00:00
end: 2023-09-26 00:00:00
period: 30m
basePeriod: 15m
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/
// author © KivancOzbilgic
// developer © KivancOzbilgic
// pv additions, simplification and strategy conversion @ treigen
//@version=5
strategy('AlphaTrend For ProfitView', overlay=true, calc_on_every_tick=true, process_orders_on_close=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1, initial_capital=1000)
coeff = input.float(1.5, 'Multiplier', step=0.1)
AP = input(15, 'Common Period')
ATR = ta.sma(ta.tr, AP)
novolumedata = input(title='Change calculation (no volume data)?', defval=false)

i_startTime = input(defval = timestamp("01 Jan 2014 00:00 +0000"), title = "Backtesting Start Time", inline="timestart", group='Backtesting')
i_endTime = input(defval = timestamp("01 Jan 2100 23:59 +0000"), title = "Backtesting End Time", inline="timeend", group='Backtesting')
timeCond = true

pv_ex = input.string('', title='Exchange', tooltip='Leave empty to use the chart ticker instead (Warning: May differ from actual market name in some instances)', group='PV Settings')
pv_sym = input.string('', title='Symbol', tooltip='Leave empty to use the chart ticker instead (Warning: May differ from actual market name in some instances)', group='PV Settings')
pv_acc = input.string("", title="Account", group='PV Settings')
pv_alert_long = input.string("", title="PV Alert Name Longs", group='PV Settings')
pv_alert_short = input.string("", title="PV Alert Name Shorts", group='PV Settings')
pv_alert_test = input.bool(false, title="Test Alerts", tooltip="Will immediately execute the alerts, so you may see what it sends. The first line on these test alerts will be excluded from any real alert triggers" ,group='PV Settings')

upT = low - ATR * coeff
downT = high + ATR * coeff
AlphaTrend = 0.0
AlphaTrend := (novolumedata ? ta.rsi(close, AP) >= 50 : ta.mfi(hlc3, AP) >= 50) ? upT < nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : upT : downT > nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : downT


k1 = plot(AlphaTrend, color=color.new(#0022FC, 0), linewidth=3)
k2 = plot(AlphaTrend[2], color=color.new(#FC0400, 0), linewidth=3)

buySignalk = ta.crossover(AlphaTrend, AlphaTrend[2])
sellSignalk = ta.crossunder(AlphaTrend, AlphaTrend[2])

var exsym = ""
if barstate.isfirst
    exsym := pv_ex == "" ? "" : "ex=" + pv_ex + ","
    exsym := pv_sym == "" ? exsym : exsym + "sym=" + pv_sym + ","


if barstate.isconfirmed and timeCond 
    if strategy.position_size <= 0 and buySignalk
        strategy.entry("Buy", strategy.long)
        alert(pv_alert_long + "(" + exsym + "acc=" + pv_acc + ")", alert.freq_once_per_bar_close)
    if strategy.position_size >= 0 and sellSignalk
        strategy.entry("Sell", strategy.short)
        alert(pv_alert_short + "(" + exsym + "acc=" + pv_acc + ")", alert.freq_once_per_bar_close)


//  Only used for testing/debugging alert messages
if pv_alert_test
    alert("<![Alert Test]!>\n" + pv_alert_long + "(" + exsym + "acc=" + pv_acc + ")", alert.freq_once_per_bar)
    alert("<![Alert Test]!>\n" + pv_alert_short + "(" + exsym + "acc=" + pv_acc + ")", alert.freq_once_per_bar)