Trend nach Strategie basierend auf Rückschrittprozentsatz

Schriftsteller:ChaoZhang, Datum: 14.9.2023 Uhr
Tags:

In diesem Artikel wird eine quantitative Handelsstrategie detailliert erläutert, die Trends auf der Grundlage eines prozentualen Rückschritts von lokalen Höchstwerten verfolgt.

I. Strategische Logik

Die Kernlogik dieser Strategie besteht darin, lokale Höchststände über einen bestimmten Zeitraum zu ermitteln und Rückschritte in einem festen Prozentsatz einzuführen.

  1. Berechnen Sie zuerst den höchsten Höchststand der letzten 90 Baren als lokalen Gipfel.

  2. Wenn der Preis einen festen Prozentsatz (z. B. 3%) von diesem Höchststand zurücklegt, gehen Sie lang, um dem Trend zu folgen.

  3. Zielwert für die Gewinnentnahme bei einem bestimmten Prozentsatz (z. B. 6%) über dem Einstiegspreis festlegen.

  4. Es wird kein Stop-Loss verwendet, wobei der Fokus auf dem Trend folgt.

Durch die Bestimmung des Eintritts auf der Grundlage des prozentualen Rückschlags von lokalen Spitzen kann die Trendbestätigung erreicht werden, indem Konsolidierungen effektiv herausgefiltert werden.

II. Vorteile der Strategie

Der größte Vorteil dieser Strategie ist die Verwendung von Prozentsatzrückgängen, um Trends zu messen und eine große Menge an Lärm zu filtern.

Ein weiterer Vorteil ist die Take-Profit-Logik, die einen kontrollierbaren Gewinn und Verlust pro Handel gewährleistet und sich an die Grundsätze eines soliden Geldmanagements orientiert.

Schließlich sorgt das größere Gewinnziel als der Rückzugsprozentsatz auch für eine gewisse Risiko-Lohn-Dynamik.

III. Mögliche Schwächen

Obwohl die Strategie Vorzüge hat, sollten im tatsächlichen Handel folgende Risiken beachtet werden:

Erstens muss der Rückzugsprozentsatz vernünftig festgelegt werden, denn zu tiefe oder zu flache Rückgänge können beide das Gewinnpotenzial beeinträchtigen.

Zweitens setzt das Fehlen eines Stop-Loss die Strategie einem großen Single-Trade-Risiko aus.

Schließlich kann eine unsachgemäße Optimierung der Parameter auch zu Problemen mit der Überanpassung und einer Verschlechterung der Signalqualität führen.

IV. Zusammenfassung

Zusammenfassend wurde in diesem Artikel eine quantitative Trend-Folge-Strategie auf der Grundlage von Prozentsatz-Retracement ausführlich erläutert. Sie kann effektiv die Trendrichtung identifizieren und Pullbacks durchführen. Das Take-Profit-Management bietet auch bestimmte Risikokontrollmechanismen. Insgesamt kann diese Strategie durch die Konstruktion von Regeln auf der Grundlage lokaler Peak-Retracements nach entsprechender Optimierung als ein robustes Trend-Folge-System dienen.


/*backtest
start: 2022-09-07 00:00:00
end: 2023-09-13 00:00:00
period: 1d
basePeriod: 1h
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/
// © luboremenar

//@version=4
strategy("test_%_down_up", overlay = false, initial_capital = 1000, pyramiding = 0, default_qty_value = 1000,
     default_qty_type = strategy.cash, precision = 8, commission_type = strategy.commission.percent, commission_value = 0.1)

// inputs
range_of_tops = input(title="Range of candles to find highest value from.", defval=90, type=input.integer, minval=1 )
basis_points = input(title="Basis points, if asset has two decimals use 100, three decimals 1000, etc.", defval=100, type=input.integer, minval=1)
retrace_percent = input(title="Percent value retrace from the top.", type=input.integer, defval=3, minval = 1, maxval=99)
take_profit_percent = input(title="Percent value of take profit from entry price.", type=input.integer, defval=6, minval=1)

// strategy definition
three_months_top = highest(range_of_tops)
longCondition1 = (close <= float((three_months_top*(1-(take_profit_percent/100)))) and strategy.position_size == 0)

if (longCondition1)
    strategy.entry("Long1", strategy.long, qty = strategy.equity/close)

strategy.exit(id="TP1", from_entry="Long1", profit=((close*(1 + take_profit_percent/100)-close)*basis_points),
     when= crossover(strategy.position_size, 0))


// plot
plot(strategy.equity)

// for testing, debugging
//test=0.0  
//if(crossover(strategy.position_size, 0))
//    test := (close*1.06-close)*basis_points
//plot(test)

Mehr