Diese Strategie erzeugt Handelssignale, indem sie die Überschneidungen zwischen dem 5-tägigen exponentiellen gleitenden Durchschnitt (EMA) und dem 20-tägigen einfachen gleitenden Durchschnitt (SMA) berechnet.
Doppel-exponentielle gleitende Durchschnitte sind weit verbreitete technische Indikatoren. Die 5-tägige EMA repräsentiert die jüngsten Preistrends, während die 20-tägige SMA mittelfristige Preisbewegungen zeigt. Wenn die kurzfristige MA über die längerfristige MA überschreitet, signalisiert dies einen Aufbruch und einen Aufwärtstrend, was auf ein gutes Timing für einen Long hinweist. Im Gegenteil, ein Abwärts-Crossover impliziert eine mögliche Preisumkehr und sollte den Ausstieg aus den Positionen in Betracht ziehen.
Diese Strategie setzt 5-Tage-EMA und 20-Tage-SMA als Handelssignale fest. Sie geht lang, wenn die 5-Tage-EMA über die 20-Tage-SMA geht und schließt die Position, wenn die Kursänderung 5% oder -5% erreicht. Sie überprüft auch, ob TII positiv ist und steigt, um die Signalzuverlässigkeit zu bestätigen.
Die detaillierten Schritte sind:
Diese Strategie nutzt das goldene Crossover zwischen zwei MAs und hat folgende Vorteile:
Im Allgemeinen hat diese Strategie einfache Regeln, nutzt ausgereifte technische Indikatoren wie MA-Crossovers und verfügt über relativ umfassende Risikokontrollmessungen.
Diese Strategie birgt noch einige Risiken:
Es werden folgende Verbesserungen vorgeschlagen:
Es gibt also Raum für weitere Optimierungen.
Diese Strategie kann in folgenden Aspekten verbessert werden:
Optimieren Sie die MA-Parameter, indem Sie Kombinationen von kürzerer/längerer EMA und SMA testen, um das optimale Paar zu finden.
Fügen Sie andere Indikatoren wie MACD, KDJ hinzu, um falsche Signale zu filtern.
Einsatz von Algorithmen des maschinellen Lernens, um bessere Parameter durch Modellierung historischer Daten und Statistiken zu finden.
Einrichtung einer dynamischen Stop-Loss-/Take-Profit-Regelung auf der Grundlage von Marktvolatilität und Instrumenteneigenschaften zur besseren Risikokontrolle.
Erweitern Sie diese Strategie auf andere Produkte wie Forex, Kryptowährungen.
Durch die oben genannten Verbesserungen können die Stabilität und Rentabilität dieser Strategie erheblich verbessert werden.
Zusammenfassend ist dies eine leicht verständliche und umsetzbare Dual-MA-Crossover-Strategie. Sie nutzt MA-Signale und verwendet TII, um Fehler zu filtern. Sie steuert Risiken durch Stop-Loss/Take-Profit. Die Strategie eignet sich für Anfänger und bietet auch viel Raum für Optimierungen. Weitere Verbesserungen bei Parameter-Tuning, Signalfilterung und dynamischem Stop-Loss können sie in eine praktische und leistungsstarke Handelsstrategie umwandeln.
/*backtest start: 2024-01-02 00:00:00 end: 2024-02-01 00:00:00 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA-SMA Crossover Strategy", shorttitle="EMA-SMA Cross", overlay=true) // Define the moving averages ema5 = ta.ema(close, 5) sma20 = ta.sma(close, 20) smaVolume10 = ta.sma(volume, 50) majorLength = input(60, title="Major Length") minorLength = input(30, title="Minor Length") src = input(close, title="Source") smaValue = ta.sma(src, majorLength) positiveSum = 0.0 negativeSum = 0.0 for i = 0 to minorLength - 1 price = na(src[i]) ? 0 : src[i] avg = na(smaValue[i]) ? 0 : smaValue[i] positiveSum := positiveSum + (price > avg ? price - avg : 0) negativeSum := negativeSum + (price > avg ? 0 : avg - price) tii = 100 * positiveSum / (positiveSum + negativeSum) // Buy condition: 5 EMA crosses above 20 SMA buyCondition = ta.crossover(ema5, sma20) and tii > 0 and tii >= tii[1] //and volume > smaVolume10 // // Track entry price var entryPrice = 0.0 if (buyCondition) entryPrice := close // Calculate percentage change from entry price priceChange = close / entryPrice - 1 // Plotting the moving averages on the chart plot(ema5, color=color.blue, title="5 EMA") plot(sma20, color=color.red, title="20 SMA") // Highlighting buy signals and exit signals on the chart // plotshape(series=buyCondition, title="Buy Signal", location=location.belowbar, color=color.green, size=size.small, style=shape.labelup, text="Buy") // Strategy entry and exit if (buyCondition) strategy.entry("Buy", strategy.long) // Exit conditions if (strategy.opentrades > 0) if (priceChange >= 0.05 or priceChange <= -0.05) strategy.close("Buy")