Dynamische Wiedereinstiegs-Kaufstrategie


Erstellungsdatum: 2023-12-19 13:56:55 zuletzt geändert: 2023-12-19 13:56:55
Kopie: 0 Klicks: 644
1
konzentrieren Sie sich auf
1621
Anhänger

Dynamische Wiedereinstiegs-Kaufstrategie

Überblick

Die Strategie ist ein Kauf-nur-Trading-System, das ein Kaufsignal erzeugt, das auf einer Kreuzung des Moving Average und dem Cyclic Commodity Channel Index (CCI) oder dem Cyclic Average Directional Index (ADX) basiert. Es wird ein Kaufsignal erzeugt, wenn ein schneller Moving Average auf einem schnellen Moving Average durchquert wird und die cyclic CCI und/oder die cyclic ADX bestimmte Bedingungen erfüllen.

Die Strategie erlaubt auch einen dynamischen Wiedereintritt, was bedeutet, dass ein neuer Mehrheitshandel eröffnet werden kann, wenn der Preis die drei Moving Averages erneut durchbricht. Die Strategie wird jedoch den Mehrheitshandel ausgleichen, wenn der Preis bei der Schließung den dritten Moving Average überschreitet.

Strategieprinzip

Das Skript definiert die Bedingungen, unter denen ein Kaufsignal erzeugt wird. Es prüft zwei Bedingungen, um ein gültiges Kaufsignal zu beurteilen:

  • Durchschnittsdurchschnittsdurchschnitt
  • Benutzer können wählen, ob sie einen Filter verwenden: CCI-Periode oder ADX-Periode

Das ist eine sehr schwierige Aufgabe.Wenn es keine ungeklärten Positionen gibt und der Preis über drei Moving Averages liegt, wird eine neue Position eröffnet.

Bedingungen für den Ausstieg:Die Strategie schließt die Mehrkopf-Position aus, wenn die Schlusskurslinie unter den dritten Moving Average fällt.

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Filtersignale mit mehreren Technologien zur Verringerung von Fehlsignalen
  2. Dynamische Wiedereintrittsmechanismen können Trends maximal erfassen
  3. Nur mehr, um die Gefahr zu vermeiden, zu leer zu sein

Risikoanalyse

Die Strategie birgt auch folgende Risiken:

  1. Es besteht ein gewisses Risiko, dass die Luft abfließt.
  2. Es könnte zu lange dauern, dass mehrere Positionen gehalten werden, sodass ein Stop-Loss erforderlich ist.
  3. Fehlende Parameter können zu häufigen Transaktionen führen

Entsprechende Lösungen:

  1. Filter mit einer besseren Kombination von Parametern und technischen Kennzahlen
  2. Setzen Sie einen angemessenen Stop-Loss
  3. Anpassung der Parameter, um sicherzustellen, dass sie stabil sind

Optimierungsrichtung

Diese Strategie kann in folgenden Bereichen optimiert werden:

  1. Test mehr Technologiekombinationen, um bessere Kaufzeiten zu finden
  2. Optimierung der Parameter, um die beste Kombination zu finden
  3. Erhöhung der Stop-Loss-Mechanismen zur Bekämpfung von Einzelschäden
  4. Erhöhung oder Verringerung der Positionen je nach Marktlage

Zusammenfassen

Die dynamische Rückkauf-Kauf-Strategie integriert mehrere technische Indikatoren, um die Kaufzeit zu bestimmen, und verwendet eine dynamische Rückkauf-Konstruktion, um den Trend in Echtzeit zu verfolgen; und vermeidet zusätzliche Risiken durch Leerlauf. Durch Parameteroptimierung, Stop-Loss-Einstellung und Positionsverwaltung kann die Strategie im Realhandel eingesetzt werden, um zusätzliche Gewinne zu erzielen, während das Risiko kontrolliert wird.

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

//@version=5
strategy("Buy Only Strategy with Dynamic Re-Entry and Exit", overlay=true)

// Input Parameters
fast_length = input(20, title="Fast Moving Average Length")
slow_length = input(30, title="Slow Moving Average Length")
third_ma_length = input(100, title="Third Moving Average Length")
cci_period = input(14, title="CCI Period for Weekly CCI")
use_cci = input(true, title="Use CCI for Entry")
use_adx = input(true, title="Use ADX for Entry")
adx_length = input(14, title="ADX Length")
adx_threshold = input(25, title="ADX Threshold")

// Calculate Moving Averages
fast_ma = ta.sma(close, fast_length)
slow_ma = ta.sma(close, slow_length)
third_ma = ta.sma(close, third_ma_length)

// Weekly Commodity Channel Index (CCI) with user-defined period
weekly_cci = request.security(syminfo.tickerid, "W", ta.cci(close,  cci_period))

// Weekly Average Directional Index (ADX)
dirmov = hlc3
plus = ta.change(dirmov) > 0 ? ta.change(dirmov) : 0
minus = ta.change(dirmov) < 0 ? -ta.change(dirmov) : 0
trur = ta.rma(ta.tr, adx_length)
plusDI = ta.rma(plus, adx_length) / trur * 100
minusDI = ta.rma(minus, adx_length) / trur * 100
sum = plusDI + minusDI
DX = sum == 0 ? 0 : math.abs(plusDI - minusDI) / sum * 100
ADX = ta.rma(DX, adx_length)

// Entry Conditions (Buy Only and Weekly CCI > 100 and/or Weekly ADX > 25)
cci_condition = use_cci ? (weekly_cci > 100) : false
adx_condition = use_adx ? (ADX > adx_threshold) : false
long_condition = ta.crossover(fast_ma, slow_ma) and (cci_condition or adx_condition)

// Exit Condition and Dynamic Re-Entry
exit_condition = close < third_ma
re_entry_condition = close > fast_ma and close > slow_ma and close > third_ma and weekly_cci > 100

// Entry and Exit Signals
strategy.entry("Long", strategy.long, when=long_condition)
strategy.close("Long", when=exit_condition)

// Dynamic Re-Entry and Exit
if strategy.position_size == 0 and re_entry_condition
    strategy.entry("Long", strategy.long)

if strategy.position_size > 0 and close < third_ma
    strategy.close("Long")

// Plot Weekly CCI and ADX for reference
plot(weekly_cci, title="Weekly CCI", color=color.orange)
plot(ADX, title="Weekly ADX", color=color.blue)