Kurzfristige Handelsstrategie auf der Grundlage der Trendverfolgung

Schriftsteller:ChaoZhang, Datum: 2023-09-27 16:56:34
Tags:

Übersicht

Diese Strategie identifiziert starke Trends und günstiges Timing für den kurzfristigen Handel mit Verlustkontrolle. Sie verfolgt Preisbreaks von einfachen gleitenden Durchschnitten als Trendsignale und setzt Stop-Loss/Take-Profit auf der Grundlage von RSI-Divergenzen, um kurzfristige Preisbewegungen zu erfassen.

Strategie Logik

  1. Berechnung der einfachen gleitenden Durchschnittswerte für mehrere Perioden

    • Festlegung von 9-Tage-, 50-Tage- und 100-Tage-SMA

    • Kurze SMA, die die lange SMA überschreitet, zeigt die Trendrichtung an

  2. Beurteilung der überkauften/überverkauften Niveaus anhand des RSI

    • RSI-Länge beträgt 14 Perioden

    • RSI über 70 ist überkauft, unter 30 ist überverkauft

  3. Eintritt in Geschäfte, wenn der Preis den 9-Tage-SMA durchbricht

    • Gehen Sie lang, wenn der Preis über die 9-Tage-SMA bricht

    • Wenn der Kurs unter die 9-Tage-SMA fällt, gehen Sie kurz

  4. Festlegung von Stop Loss/Take Profit auf der Grundlage von RSI-Divergenzen

    • RSI-Divergenz für Stop-Loss

    • Gewinn machen, wenn der RSI vorgegebene Werte erreicht

Analyse der Vorteile

  • Erfasst kurzfristige Trends, geeignet für den Hochfrequenzhandel

  • SMA-Combos filtern Trendsignale und vermeiden schlechte Trades

  • RSI hilft, Zeit zu bestimmen, Risiken wirksam zu kontrollieren

  • Flexible Stop-Loss-/Take-Profit-Verbindungen kurzfristige Gewinne

  • Kombination von Indikatoren verbessert die Stabilität

Risikoanalyse

  • Eine ungenaue Bewertung des kurzfristigen Trends führt zur Verfolgung

  • Falsche RSI-Signale vergrößern Verluste

  • Unzulässige Stop-Loss-/Take-Profit-Einstellungen verringern den Gewinn oder vergrößern den Verlust

  • Eine hohe Handelsfrequenz erhöht die Kosten und die Verschiebungen

  • Ineffiziente Parameter und abnormale Marktauswirkung

  • Optimierung der Parameter, strenge Stop-Loss, Kostenmanagement

Optimierungsrichtlinien

  • Verschiedene SMA-Kombinationen testen, um das Trendbeurteilen zu verbessern

  • Überlegen Sie zusätzliche Indikatoren wie STOCH, um RSI-Signale zu überprüfen

  • Einsatz von maschinellem Lernen zur Bestimmung gültiger Ausbrüche

  • Anpassung der Parameter für verschiedene Produkte und Sitzungen

  • Optimierung der Stop-Loss-/Take-Profit-Logik für dynamisches Trailing

  • Erforschen Sie automatische Parameter-Tuning-Mechanismen

Schlussfolgerung

Diese Strategie kombiniert SMA und RSI für einen konservativen kurzfristigen Handelsansatz. Feinabstimmung von Parametern, Validierung von Signalen, Kontrolle von Risiken macht sie robuster und anpassungsfähiger. Es gibt Raum für Verbesserungen, indem mehr SMA-Combos erforscht werden, maschinelle Lernmodelle hinzugefügt werden usw. Kontinuierliche Optimierung wird zu einer weiteren Reife führen.


/*backtest
start: 2023-08-27 00:00:00
end: 2023-09-26 00:00:00
period: 3h
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/
// © Coinrule

//@version=4
strategy(shorttitle='Maximized Scalping On Trend',title='Maximized Scalping On Trend (by Coinrule)', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1)

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 10,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2019, 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)

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

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"

//MA inputs and calculations
movingaverage_fast = sma(close, input(9))
movingaverage_mid= sma(close, input(50))
movingaverage_slow = sma(close, input (100))


//Trend situation
Bullish= cross(close, movingaverage_fast)

Momentum = movingaverage_mid > movingaverage_slow

// RSI inputs and calculations
lengthRSI = 14
RSI = rsi(close, lengthRSI)

//Entry
strategy.entry(id="long", long = true, when = Bullish and Momentum and RSI > 50)

//Exit

TP = input(70)
SL =input(30)
longTakeProfit  = RSI > TP
longStopPrice = RSI < SL

strategy.close("long", when = longStopPrice or longTakeProfit and window())

plot(movingaverage_fast, color=color.black, linewidth=2 )
plot(movingaverage_mid, color=color.orange, linewidth=2)
plot(movingaverage_slow, color=color.purple, linewidth=2)


Mehr