Die Ressourcen sind geladen. Beförderung...

Nutzen Sie die Trendstrategie

Schriftsteller:ChaoZhang, Datum: 2023-09-26 11:22:04
Tags:

Übersicht

Die Take Profit on Trend-Strategie zielt darauf ab, langfristige Trends und kurzfristige Pullbacks zu erkennen, indem bei allgemeinen Aufwärtstrends Longpositionen eingenommen und gleichzeitig kurzfristige Einbrüche erfasst werden, wobei angemessene Stop-Loss- und Take-Profit-Level festgelegt werden, um dem Trend zu folgen und rechtzeitig Gewinne zu erzielen.

Strategie Logik

Die Strategie verwendet vor allem EMA und RSI, um langfristige und kurzfristige Trends zu bestimmen. Insbesondere verwendet sie 50-tägige EMA und 200-tägige EMA, um langfristige Trends zu beurteilen, und RSI, um die Trendstärke zu messen. Wenn der langfristige in einem Aufwärtstrend ist (200-tägige EMA steigt) und stark (RSI über 50), und der kurzfristige einen Rückzug sieht (letzte 2 Kerzen schließen niedriger), wird eine Long-Position eingenommen.

Nach dem Eintritt in eine Position setzt die Strategie Stop-Loss- und Take-Profit-Bedingungen. Wenn der Preis mehr als 2x BHD-Einheiten über dem Einstiegspreis steigt, werden Gewinne erzielt. Wenn der Preis mehr als 3x BHD-Einheiten unter dem Einstiegspreis fällt, wird die Position gestoppt. Die BHD-Einheit wird auf der Grundlage der Amplitude der letzten 200 Kerzen berechnet.

Auf diese Weise berücksichtigt die Strategie vollständig die langfristigen und kurzfristigen Trendmerkmale, erhöht den Gewinn und kontrolliert gleichzeitig die Risiken, folgt dem Trend und erzielt rechtzeitig Gewinne.

Analyse der Vorteile

Die Strategie weist folgende Vorteile auf:

  1. Es berücksichtigt langfristige und kurzfristige Trends in Kombination mit Stärkenindikatoren und vermeidet blinde Markteintritte in unterschiedliche Märkte.

  2. Einträge folgen der Trendrichtung, höhere Gewinnrate.

  3. Profit- und Stop-Loss-Punkte ermöglichen zeitnahe Profit- und Risikokontrolle.

  4. TP und SL sind dynamisch und basieren auf Volatilität.

  5. Backtests zeigen gute Renditen und Stabilität über Symbole und Zeitrahmen hinweg.

  6. Einfache und klare Logik, leicht verständlich und umsetzbar für alle Fähigkeiten.

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Langfristig/kurzfristiges Fehleinschätzung führen zu falschen Eintrittsrichtungen.

  2. Der Markteinbruch, der wie eine Klippe aussieht, kann auch zu einem Stopp führen.

  3. Schlechte Parameter-Einstellungen beeinträchtigen die Leistung.

  4. TP ist zu eng eingestellt, kann vorzeitig aussteigen.

  5. Backtest ≠ Live-Leistung, kontinuierliche Optimierung erforderlich.

Lösungen:

  1. Optimierung der Parameter, Anpassung der Zulassungsfristen, Hinzufügung von Indikatoren für die Quervalidierung.

  2. Weitere Haltestellen, Positionsgrößen, andere Risikokontrollen.

  3. Umfangreiche Backtests zur Bewertung der Parameter.

  4. Dynamische TP-Optimierung basierend auf den Marktbedingungen.

  5. Laufende Backtests, Optimierung, Anpassung.

Optimierungsrichtlinien

Die Strategie kann weiter optimiert werden, indem

  1. Parameter-Tuning, MA-Perioden, BHD-Einheitsperioden usw.

  2. Hinzufügen von Indikatoren, MACD, KD usw. für eine bessere kurzfristige Genauigkeit.

  3. Optimierung von TP/SL, dynamische Größe basierend auf Volatilität usw.

  4. Hinzufügen von Positionsgrößen basierend auf der Trendstärke.

  5. Wir testen die Robustheit über mehr Symbole und Zeitrahmen.

  6. Hinzufügen von Filtern wie Schlusskurs > offen, um Fallen zu vermeiden.

  7. Maschinelles Lernen für mehr Automatisierung und Intelligenz.

Diese können die Gewinnrate, die Rendite, die Stabilität, die Anpassungsfähigkeit usw. verbessern.

Schlussfolgerung

Insgesamt hat die Take Profit on Trend-Strategie die Vorteile, lange/kurze Trends zu berücksichtigen, Trends zu folgen, klares TP/SL. Es ist ein stabiler und effizienter Trendfollowing-Ansatz. Es gibt jedoch Risiken, die eine kontinuierliche Optimierung und Live-Anpassung erfordern. Die Logik ist klar und einfach umzusetzen. Es lohnt sich zu studieren und für Trader anzuwenden. Mit weiterer Optimierung kann es zu einer robusten Quant-Strategie werden.


/*backtest
start: 2023-08-26 00:00:00
end: 2023-09-25 00:00:00
period: 1h
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/
// © BHD_Trade_Bot

// @version=5
strategy(
 shorttitle            = 'Take Profit On Trend',
 title                 = 'Take Profit On Trend (by BHD_Trade_Bot)',
 overlay               = true,
 calc_on_every_tick    = true,
 calc_on_order_fills   = true,
 use_bar_magnifier     = true,
 initial_capital       = 1000,
 default_qty_type      = strategy.percent_of_equity,
 default_qty_value     = 100,
 commission_type       = strategy.commission.percent,
 commission_value      = 0.1)



// Backtest Time Period
start_year   = input(title='Start year'   ,defval=2021)
start_month  = input(title='Start month'  ,defval=1)
start_day    = input(title='Start day'    ,defval=1)
start_time = timestamp(start_year, start_month, start_day, 00, 00)

end_year     = input(title='end year'     ,defval=2050)
end_month    = input(title='end month'    ,defval=1)
end_day      = input(title='end day'      ,defval=1)
end_time = timestamp(end_year, end_month, end_day, 23, 59)

is_back_test_time() => true



// EMA
ema50 = ta.ema(close, 50)
ema200 = ta.ema(close, 200)

// RSI
rsi200 = ta.rsi(close, 200)

// EMA_CD
emacd = ema50 - ema200
emacd_signal = ta.ema(emacd, 50)
hist = emacd - emacd_signal

// BHD Unit
bhd_unit = ta.rma(high - low, 200) * 2
bhd_upper = ema200 + bhd_unit
bhd_lower = ema200 - bhd_unit



// All n candles is going down
all_body_decrease(n) =>
    isValid = true
    for i = 0 to (n - 1)
        if (close[i] > close[i + 1])
            isValid := false
            break
    isValid



// ENTRY CONDITIONS

// Long-term uptrend
entry_condition1 = rsi200 > 51 and hist > 0

// Short-term downtrend
entry_condition2 = all_body_decrease(2)

ENTRY_CONDITIONS = entry_condition1 and entry_condition2

if ENTRY_CONDITIONS and is_back_test_time()
    strategy.entry('entry', strategy.long)


// CLOSE CONDITIONS

// Price increase 2 BHD unit
take_profit = close > strategy.position_avg_price + bhd_unit * 2

// Price decrease 3 BHD unit
stop_loss = close < strategy.position_avg_price - bhd_unit * 3

CLOSE_CONDITIONS = take_profit or stop_loss

if CLOSE_CONDITIONS
    strategy.close('entry')



// Draw
plot(ema50, color=color.orange, linewidth=2)
plot(ema200, color=color.purple, linewidth=2)
bhd_upper_line = plot(bhd_upper, color=color.teal)
bhd_lower_line = plot(bhd_lower, color=color.teal)
fill(bhd_upper_line, bhd_lower_line, color=color.new(color.teal, 90))


Mehr