Diese Strategie verwendet die Crossover-Signale zwischen dem 50-Perioden Smoothed Moving Average (SMMA) und dem 20-Perioden Simple Moving Average (SMA) zur Bestimmung von Ein- und Ausstiegen. Sie erzeugt Kaufsignale, wenn die schnelle SMA-Linie über die langsame SMMA-Linie überschreitet, und Verkaufssignale, wenn die SMA unter die SMMA überschreitet. Zur gleichen Zeit setzt die Strategie feste Gewinn- und dynamische Stop-Loss-Level fest, um Gewinne zu erzielen und das Risiko zu kontrollieren.
Versuche Kombinationen verschiedener Parameter (Zykluszeiten, Filterkriterien usw.) zur Ermittlung des Optimums.
Einbeziehen Sie andere Faktoren wie Lautstärken, um Signale zu filtern.
Verwenden Sie Tools zur Optimierung von Parametern, um optimale Parameter zu finden.
Überlegen Sie, ob Sie auch andere Take-Profit-Methoden wie Trailing Stop oder Profit-Ratio-basierte Exits integrieren.
Berechnung des dynamischen Stop-Loss-Bereichs auf der Grundlage der Marktvolatilität.
Diese Strategie hat eine relativ einfache Logik, die Trendrichtungen über doppelte gleitende Durchschnitte erfasst. Die flexible Verwendung von festen Take-Profit und dynamischen Stop-Loss für die Gewinnentnahme und Risikokontrolle schafft ein Gleichgewicht zwischen Risiko und Belohnung. Eine weitere Parameter- und Logikoptimierung kann diese Strategie an eine breitere Palette von Marktbedingungen anpassen.
/*backtest start: 2023-01-26 00:00:00 end: 2024-02-01 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("50 SMMA and 20 SMA Crossover with TP and SL", overlay=true) // Define 50 SMMA smma50 = sma(close, 50) // Define 20 SMA sma20 = sma(close, 20) // Plotting the SMMA and SMA plot(smma50, color=color.blue, title="50 SMMA") plot(sma20, color=color.red, title="20 SMA") // Initialize TP and SL variables tp = 150 var float sl_price = na // Buy Signal buySignal = crossover(sma20, smma50) strategy.entry("Buy", strategy.long, when = buySignal) strategy.exit("Take Profit/Stop Loss", from_entry="Buy", profit=tp, loss=sl_price) // Sell Signal sellSignal = crossunder(sma20, smma50) strategy.entry("Sell", strategy.short, when = sellSignal) strategy.exit("Take Profit/Stop Loss", from_entry="Sell", profit=tp, loss=sl_price) // Update stop loss level on every crossover if (buySignal or sellSignal) sl_price := close[bar_index + 1] // Plot Stop Loss level plotshape(series=sl_price != na, title="Stop Loss Level", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)