
Die Strategie nutzt einfache Moving Average (SMA) -Kreuzsignale, Graphik-Identifizierung und Stop-Loss-Anpassungen an der Volatilität, um Marktein- und -Ausgangspunkte zu ermitteln. Die Strategie kombiniert auch Risikomanagement und präzise Positionsberechnungsmethoden, um die Trading-Performance zu optimieren, indem die Risikoprozentsätze und die Risikobereitschaft für jeden Handel festgelegt werden. Die Strategie erzeugt T- und TTT-Signallabels, die den Händlern eine zusätzliche visuelle Bestätigung bieten, wenn der Preis 22 SMA-Zyklen überschreitet.
Die Kernprinzipien der Strategie basieren auf einer Kombination aus mehreren technischen Analysemethoden, um die Zuverlässigkeit von Handelssignalen zu erhöhen. Die Strategie beruht auf den folgenden Schlüsselkomponenten:
Moving Average-Kreuzung: Ein Kauf- und Verkaufssignal wird ausgelöst, wenn ein einfacher gleitender Durchschnitt (SMA) mit 13 und 5 Perioden gekreuzt wird. Ein Kaufsignal wird erzeugt, wenn ein schneller gleitender Durchschnitt (SMA) mit kürzeren Perioden einen langsamen gleitenden Durchschnitt (SMA) nach oben durchquert. Ein Verkaufssignal wird erzeugt, wenn ein schneller gleitender Durchschnitt einen langsamen gleitenden Durchschnitt nach unten durchquert.
Graphische FormerkennungDie Strategie integriert verschiedene Formen der Diagramm-Erkennung, darunter Bolling-Swallow-Formen, Bolling-Swallow-Formen, Bolling-Strahl, Bolling-Strahl, Bolling-Gravity-Line und Bolling-Gravity-Line. Diese Formen werden in verschiedenen Farben auf der Grafik angezeigt, um zusätzliche Bestätigung für Handelsentscheidungen zu liefern.
Stop-Loss mit SchwankungenDie Stop-Position wird durch die Multiplikation des benutzerdefinierten ATRs berechnet. Diese Methode macht die Stop-Position besser an die aktuelle Volatilität des Marktes angepasst.
Genaue PositionsberechnungDie Größe der Positionen wird auf der Grundlage des Anfangskapitals, des Risikos pro Handel und der Stop-Loss-Distanz berechnet, um eine einheitliche Risikokontrolle zu erreichen.
T- und TT-SignalsystemeDie Strategie beinhaltet auch ein visuelles Signalsystem, das T- und TT-Labels erzeugt, wenn der Preis eine 22-Zyklus-SMA durchschreitet. Diese Tags sind in verschiedenen Farben angezeigt, je nach Richtung des Durchschnitts und der Beziehung zwischen dem Schlusskurs und dem Eröffnungskurs, was eine zusätzliche Transaktionsbestätigung bietet.
Diese Strategie hat folgende wesentliche Vorteile:
Mehrfachbestätigung: Durch die Kombination von Moving Average Crossover, Graphikform und T/TT Signal System, bietet mehrschichtige Transaktionsbestätigung, um das Risiko von Falschsignalen zu verringern.
Dynamische RisikomanagementDie Strategie kann die Schutzmaßnahmen automatisch an die Marktvolatilität anpassen, indem sie die Stop-Position anhand des ATR-Indikators anpasst. Sie bietet einen breiteren Stop-Raum bei größeren Schwankungen und einen engeren Stop bei kleineren Schwankungen.
Genaueres VerwaltenDurch die Berechnung von Positionspositionen auf Basis von Risikoprozentsätzen wird sichergestellt, dass das Risiko für jeden Handel einheitlich ist und die gleiche Risikobereitschaft beibehalten wird, unabhängig von der Volatilität des Marktes.
Visualisierung von HandelssignalenStrategie: Intuitive Anzeige von Pivot-Chart-Formen und T/TT-Signalen auf den Charts, die es Händlern ermöglichen, potenzielle Handelsmöglichkeiten schnell zu erkennen.
Benutzerdefinierte RisikoparameterEs ist möglich, die wichtigsten Parameter wie die Risikoprozentsatz pro Handel, die Retour-Risiko-Ratio und die ATR-Multiplikatoren an die persönlichen Risikopräferenzen anzupassen, um die Strategie an unterschiedliche Handelsstile und Marktbedingungen anzupassen.
Obwohl die Strategie so umfassend konzipiert ist, bestehen folgende potenzielle Risiken:
Durchschnittliche QuerverzögerungDer Moving Average ist ein nachlässiger Indikator, der zu spät eintritt, wenn sich der Trend umkehrt, wodurch die anfängliche Kursentwicklung verpasst wird. Die Lösung besteht darin, die Reaktionsgeschwindigkeit zu erhöhen, indem man andere führende Indikatoren kombiniert oder den Moving Average-Zyklus verkleinert.
Risiko von schnellen MarktschwankungenDer Preis kann die vorgegebene Stop-Loss-Leistung überschreiten, wodurch die tatsächlichen Verluste höher als erwartet sind. Erwägen Sie die Verwendung eines garantierten Stop-Loss-Auftrags oder die Erhöhung des ATR-Multipliziers, um diesem zu begegnen.
ÜberhändlerrisikenHäufige Gleichgewichtskreuzungen können zu übermäßigen Handel führen, insbesondere in den Horizontalmärkten. Falschsignale können durch das Hinzufügen von zusätzlichen Filtern (z. B. Trendstärken) reduziert werden.
ParameterempfindlichkeitStrategie-Performance: Die Strategie-Performance ist hochsensibel für die Parameterwahl (z. B. Moving Average-Perioden, ATR-Perioden und Multiplikatoren). Eine gründliche Rückmessung und Parameteroptimierung ist erforderlich, um die optimalen Einstellungen für einen bestimmten Markt zu finden.
Falsche Identifizierung der GraphikEs wird empfohlen, die Diagrammform als Hilfsbestätigung und nicht als primäres Handelssignal zu verwenden.
Die Strategie kann auf der Grundlage von Code-Analysen in folgende Richtungen optimiert werden:
Trendfilter hinzufügenDie Einführung von Trendstärke-Indikatoren (z. B. ADX oder MACD) als zusätzliche Filter, um nur in der Richtung des bestätigten Trends zu handeln und falsche Signale im Quermarkt zu vermeiden. Dies verbessert die Handelsqualität und die Erfolgsrate.
Bestätigung der vollständigen TransaktionenDie Strategie beinhaltet die Hinzufügung von Handelsvolumen-Analysen, die eine Erhöhung des Handelsvolumens bei der Signalerzeugung erfordern, was die Signalzuverlässigkeit erhöht, insbesondere im Breakout- und Inversionmodus.
Implementierung adaptiver ParameterEntwicklung von Anpassungsmechanismen, die die Moving Average-Zyklen und ATR-Multiplikatoren automatisch an die Marktbedingungen anpassen. So werden beispielsweise längere Moving Average-Zyklen und größere ATR-Multiplikatoren in sehr volatilen Märkten verwendet.
Hinzufügen eines ZeitfiltersUm einen Zeitfilter für den Handel zu implementieren, vermeiden Sie bekannte Zeiten mit geringer oder hoher Volatilität, wie zum Beispiel die Öffnung des Marktes oder die Veröffentlichung wichtiger Wirtschaftsdaten.
Eintrittslogik geändertDie Kombination von Preisverhaltensmustern und Unterstützungs-/Widerstandsebenen zur Optimierung der Einstiegspunkte, anstatt nur auf eine lineare Kreuzung zu vertrauen, verbessert die Einstiegsgenauigkeit und reduziert die Gleitpunkte.
Mehrfache ZeitrahmenanalyseDas Ziel ist es, mehrere Zeitrahmen zu bestätigen, um sicherzustellen, dass die Handelsrichtung mit den Trends in den höheren Zeitrahmen übereinstimmt, wodurch Rückschlaggeschäfte verringert und die Gewinnrate erhöht wird.
Teilweise GewinnabsperrungEs ist eine Strategie, die einen Teil des Gewinns bei Erreichen eines bestimmten Ziels blockiert, während der Stop-Loss zu einem Ausgleichspunkt oder einer kleinen Gewinnposition verschoben wird, um den bereits erzielten Gewinn zu schützen.
Die Strategie bietet den Händlern einen strukturierten Handelsrahmen. Trotz der Risiken von Gleichgewichtsverzögerungen und Parameter-Sensitivität können empfohlene Optimierungsmaßnahmen, wie z. B. die Hinzufügung von Trendfiltern, die Integration von Handelsvolumen und die Analyse mehrerer Zeiträume, durch die Implementierung von empfohlenen Optimierungsmaßnahmen erheblich verbessert werden. Die Strategie eignet sich insbesondere für langfristige Händler, die eine systematische Methode suchen und auf das Risikomanagement achten.
/*backtest
start: 2024-04-03 00:00:00
end: 2025-04-02 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BNB_USDT"}]
*/
//@version=5
strategy("Smart Trade By Amit Roy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Input Settings
riskPercent = input.float(3, title="Risk Percentage per Trade (%)", minval=0.1, step=0.1)
rewardRatio = input.float(3, title="Risk-Reward Ratio", minval=1.0)
capital = input.float(10000, title="Starting Capital ($)", minval=1)
atrMultiplier = input.float(1.5, title="ATR Multiplier for Stop Loss")
show_TT = input.bool(true, title = "Show T and TT")
show_sma = input.bool(true, title = "Show SMA")
// ATR Calculation for Volatility-based Stop-Loss
atrLength = input.int(14, title="ATR Length")
atrValue = ta.atr(atrLength)
stopLossDistance = atrValue * atrMultiplier
takeProfitDistance = stopLossDistance * rewardRatio
// Position Sizing Calculation
riskAmount = capital * (riskPercent / 100)
positionSize = riskAmount / stopLossDistance
// Simple Moving Averages
fastMA = ta.sma(close, 13)
slowMA = ta.sma(close, 5)
// Entry and Exit Conditions using Simple Moving Averages
longCondition = ta.crossover(fastMA, slowMA)
shortCondition = ta.crossunder(fastMA, slowMA)
// Candlestick Patterns Functions
isBullishEngulfing() => (open[1] > close[1] and close > open and close >= open[1] and close[1] >= open and close - open > open[1] - close[1])
isBearishEngulfing() => (close[1] > open[1] and open > close and open >= close[1] and open[1] >= close and open - close > close[1] - open[1])
isHammer() => (((high - low) > 3 * (open - close)) and ((close - low) / (.001 + high - low) > 0.6) and ((open - low) / (.001 + high - low) > 0.6))
isInvertedHammer() => (((high - low) > 3 * (open - close)) and ((high - close) / (.001 + high - low) > 0.6) and ((high - open) / (.001 + high - low) > 0.6))
isBullishHarami() => (open[1] > close[1] and close > open and close <= open[1] and close[1] <= open and close - open < open[1] - close[1])
isBearishHarami() => (close[1] > open[1] and open > close and open <= close[1] and open[1] <= close and open - close < close[1] - open[1])
// Color Bars for Candlestick Patterns
barcolor(isBullishEngulfing() ? color.rgb(0, 102, 255) : na)
barcolor(isHammer() ? (#1f0cef) : na)
barcolor(isBullishHarami() ? color.rgb(0, 93, 214) : na)
barcolor(isBearishEngulfing() ? color.rgb(255, 196, 0) : na)
barcolor(isBearishHarami() ? color.rgb(251, 255, 0) : na)
barcolor(isInvertedHammer() ? color.rgb(247, 0, 247) : na)
// Calculate SMA for Visualization
sma_22 = ta.sma(close, 22)
lineColor = close > sma_22 ? color.green : color.green
plot(show_sma ? sma_22 : na, color=lineColor, linewidth=1)
// Determine T and TT Labels based on Conditions
candleCrossG = ta.crossover(close, sma_22)
candleCrossR = ta.crossunder(close, sma_22)
// Plot T and TT labels
redT = candleCrossG and close < open
greenTT = candleCrossG and close > open and close > sma_22
greenT = candleCrossR and close > open
redTT = candleCrossR and close < open
plotshape(series=redT ? show_TT : na, title="Red-T", color=na, style=shape.labeldown, location=location.abovebar, size=size.small, textcolor=color.red, text="T")
plotshape(series=greenTT ? show_TT : na, title="Green-TT", color=na, style=shape.labelup, location=location.belowbar, size=size.tiny, textcolor=color.green, text="TT")
plotshape(series=greenT ? show_TT : na, title="Green-T", color=na, style=shape.labelup, location=location.belowbar, size=size.small, textcolor=color.green, text="T")
plotshape(series=redTT ? show_TT : na, title="Red-TT", color=na, style=shape.labeldown, location=location.abovebar, size=size.tiny, textcolor=color.red, text="TT")
// Place Trades Based on Conditions
if (longCondition)
strategy.entry("उड़ाओ ", strategy.long, qty=positionSize)
strategy.exit("Take Profit", from_entry="Long", limit=close + takeProfitDistance, stop=close - stopLossDistance)
if (shortCondition)
strategy.entry("गिराओ", strategy.short, qty=positionSize)
strategy.exit("Take Profit", from_entry="Short", limit=close - takeProfitDistance, stop=close + stopLossDistance)
// Plotting Stop Loss and Take Profit Levels for Visualization
plot(longCondition ? close - stopLossDistance : na, color=na, title="Stop Loss", linewidth=1, style=plot.style_line)
plot(longCondition ? close + takeProfitDistance : na, color=na, title="Take Profit", linewidth=1, style=plot.style_line)
plot(shortCondition ? close + stopLossDistance : na, color=na, title="Stop Loss (Short)", linewidth=1, style=plot.style_line)
plot(shortCondition ? close - takeProfitDistance : na, color=na, title="Take Profit (Short)", linewidth=1, style=plot.style_line)