BankNifty Supertrend Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 29.12.2023 17:09:57
Tags:

img

Übersicht

Dies ist eine Handelsstrategie, die auf der 5-minütigen K-Linie von BankNifty basiert und den Supertrend-Indikator verwendet.

Strategieprinzip

Die Strategie definiert zunächst Eingabevariablen wie Handelssitzungen und Datumsbereiche.

Der Supertrend-Indikator kann die Richtung des Trends bestimmen.

Zu Beginn jeder Handelssitzung wartet die Strategie, bis sich 3 Kerzen bilden, bevor sie einen Trade in Betracht zieht.

Das lange Signal ist, wenn sich die Richtung des Supertrend-Indikators von unten nach oben ändert; das kurze Signal ist, wenn sich die Richtung des Supertrends von oben nach unten ändert.

Beide festen Stop-Loss-Punkte und der nachfolgende Stop-Loss-Prozentsatz können über Eingabevariablen angepasst werden.

Am Ende der Handelssitzung schließt die Strategie alle offenen Positionen.

Vorteile der Strategie

Dies ist eine einfache Handelsstrategie, die Indikatoren verwendet, um Trends zu identifizieren.

  1. Verwenden Sie den Supertrend-Indikator, um die Trendrichtung zu beurteilen, die Trends effektiv identifizieren kann
  2. Die Kombination von Handelssitzungen kann die volatilsten Eröffnungs- und Schlusssitzung vermeiden
  3. Setzen Sie einen Stop-Loss, um Gewinne zu erzielen
  4. Viele Parameter können durch Eingabevariablen frei angepasst werden, hohe Anpassungsfähigkeit

Risiken der Strategie

Die Strategie birgt auch einige Risiken:

  1. Der Supertrend-Indikator ist zurückgeblieben, kann den besten Einstiegspunkt verpassen.
  2. Ein Indikator-Urteil ist anfällig für falsche Ausbrüche, die Gewinnrate kann gering sein
  3. Nicht berücksichtigt Marktentwicklung, kann vom Gesamtmarkt abweichen
  4. Eine unsachgemäße Einstellung von Stop-Loss kann zu größeren Verlusten als erwartet führen

Diese Risiken können durch Optimierung der Parameter des Supertrend-Indikators oder durch Hinzufügen anderer Indikatorurteile verringert werden.

Optimierungsrichtlinien

Die Strategie kann auch in folgenden Aspekten optimiert werden:

  1. Hinzufügen anderer Indikatorbeurteilungen zur Bildung einer kombinierten Strategie, Verbesserung der Stabilität
  2. Hinzufügen eines Gesamtbeurteilungsgrades zur Marktentwicklung, um Abweichungen vom Markt zu vermeiden
  3. Optimieren Sie die Parameter des Supertrend-Indikators, finden Sie die beste Länge und Faktor
  4. Anpassen Sie Stop-Loss-Strategie, wie Trailing Stop-Loss zusammen mit dem Trend
  5. Versuche verschiedene Produkte, finde die beste Übereinstimmung

Schlussfolgerung

Zusammenfassend ist dies eine Supertrend-Indikator-Handelsstrategie, die auf dem BankNifty 5-Minuten-Chart basiert. Sie nutzt den Supertrend-Indikator, um die Trendrichtung zu bestimmen und kombiniert Handelssitzungen und Risikomanagementregeln zum Handel. Im Vergleich zu komplexen quantitativen Strategien hat diese Strategie einfache und klare Regeln, die leicht zu verstehen und umzusetzen sind. Als Beispielstrategie bietet sie eine Grundlage und Richtung für zukünftige Optimierung und Verbesserung. Durch kontinuierliche Verfeinerung und Verbesserung wird gehofft, dass die Strategie zu einer zuverlässigen und profitablen quantitativen Handelsstrategie werden kann.


/*backtest
start: 2023-11-28 00:00:00
end: 2023-12-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("BankNifty 5min Supertrend Based Strategy, 09:15 Entry with Date Range and Risk Management")

// Session and date range input variables
session = input("0915-1510", "Session", group="Indian Session Time")
start_date = input(title="Start Date", defval=timestamp("01 Jan 2022 00:00:00"), group="Backtest Specific Range")
end_date = input(title="End Date", defval=timestamp("01 Dec 2023 23:59:59"))
atrPeriod = input(50, "ATR Length", group="SuperTrend Setting")
factor = input.float(3.0, "Factor", step=0.1)

useDelay = input(true, "Use Delay?", group="Delay at Session Start")
Delay = useDelay ? input(10, title="Delay N numbers of candle", group="Delay at Session Start") : na

useDelay_stopLoss = input(true, "Use Stoploss Points?", group="Risk Management")
stopLoss = useDelay_stopLoss ? input(100, "Stop Loss Points", group="Risk Management"): na

useDelay_stopLossPerc1 = input(true, "Use Stoploss Trail?", group="Risk Management")
stopLossPerc1 =useDelay_stopLossPerc1 ? input.float(0.1, "Stop Loss Trail%", step=0.1,maxval = 1, group="Risk Management"): na
// Check if current time is within the specified session and date range
inSession = true

[supertrend, direction] = ta.supertrend(factor, atrPeriod)

// Wait for 3 candles to form at the start of every session
var candlesFormed = 0
if inSession and not inSession[1]
    candlesFormed := 1
else if inSession and candlesFormed > 0
    candlesFormed := candlesFormed + 1
else
    candlesFormed := 0


//

// Only enter trades if 3 candles have formed at the start of the session
entryce = (ta.change(direction) < 0) or (candlesFormed >= Delay and direction < 0)
exitce = ta.change(direction) > 0
entrype = (ta.change(direction) > 0) or (candlesFormed >= Delay and direction > 0)
exitpe = ta.change(direction) < 0
var entryPrice = 0.0
if entryce and inSession
    // Enter long trade
    onePercent = strategy.position_avg_price *stopLossPerc1
    entryPrice := close
    strategy.entry("My Long Entry Id", strategy.long, comment="long" )
    // Set stop loss at x% below entry price
    strategy.exit("My Long Exit Id", "My Long Entry Id", stop=(entryPrice - stopLoss),trail_points=onePercent )
    
if entrype and inSession
    onePercent1 = strategy.position_avg_price *stopLossPerc1
    entryPrice := close
    // Enter short trade
    strategy.entry("My Short Entry Id", strategy.short, comment="short")
    // Set stop loss at x% above entry price
    strategy.exit("My Short Exit Id", "My Short Entry Id", stop=(entryPrice + stopLoss),trail_points=onePercent1)

// Close all trades at end of session
if not inSession and strategy.opentrades > 0
    strategy.close_all()

// Plot Supertrend with changing colors
plot(supertrend, title="Supertrend", color=direction == 1 ? color.red : color.green, linewidth=2)





Mehr