Diese Strategie erzeugt Handelssignale auf der Grundlage des goldenen Kreuzes und des toten Kreuzes der gleitenden Durchschnitte. Sie beinhaltet drei gleitende Durchschnitte mit verschiedenen Parameter-Einstellungen - kurzfristig, mittelfristig und langfristig. Durch den Vergleich der Höhenbeziehung zwischen diesen drei MAs bestimmt sie den bullish/bearish Zustand des Marktes und erzeugt Handelssignale.
Die Strategie legt drei gleitende Durchschnittslinien fest, nämlich einen kurzfristigen einfachen gleitenden Durchschnitt, einen mittelfristigen gewichteten gleitenden Durchschnitt und einen langfristigen exponentiellen gleitenden Durchschnitt.
Wenn die kurzfristige SMA-Linie die mittelfristige WMA-Linie nach oben überschreitet und der Schlusskurs ebenfalls höher als die WMA-Linie ist, zeigt dies, dass der Markt nach oben umkehrt und ein bullisches Signal bildet. Wenn die kurzfristige SMA unter die mittelfristige WMA überschreitet oder der Schlusskurs niedriger als die WMA ist, gibt sie ein bärisches Signal. Daher beurteilt diese Strategie den bullischen/bärenhaften Zustand des Marktes, indem sie die Höhe und den Crossover zwischen den drei MA vergleicht.
Die Strategie beinhaltet drei MAs von kurz-, mittelfristigen und langfristigen, die auf Marktveränderungen in verschiedenen Zyklen reagieren und die Genauigkeit der Trends verbessern können. Insbesondere hat die mittelfristige WMA einen besseren Effekt, um Marktlärm zu filtern und falsche Signale effektiv zu vermeiden. Darüber hinaus sendet die Strategie nur lange Signale, wenn die bullischen Signale von SMA und Schlusskurs eine hohe Konsistenz erreichen, was Whipsaws verhindert und jeden Einstieg effizient gewährleistet.
Die Strategie hat das Risiko falscher Signale. Wenn die kurzfristige SMA falsche Signale erzeugt, können aufgrund der strikten Abhängigkeit der Strategie von der SMA-Linie unnötige Verluste verursacht werden. Außerdem ist die Strategie für Parameter empfindlich. Wenn Parameter falsch unter den Bereichsmärkten gesetzt werden, können viele falsche Trades ausgelöst werden.
Um solche Risiken zu vermeiden, wird empfohlen, die MA-Längen anzupassen, die Handelsbedingungen angemessen zu lockern und einen Stop-Loss festzulegen, um einen einzelnen Verlust zu begrenzen.
Die Strategie kann aus folgenden Gesichtspunkten optimiert werden:
Einbeziehung mehrer Arten von MAs wie KC zur Bildung eines Indikatorportfolios zur Verbesserung der Genauigkeit
Fügen Sie Volumenfaktoren wie Breakout mit hohem Volumen hinzu
Kombination von Volatilitätsindikatoren zur Vermeidung von Fehlschlägen auf unruhigen Märkten
Einsatz von maschinellem Lernen zur Schulung und Optimierung von Parametern
Die Strategie bestimmt den Marktbullish/Bearish-Status basierend auf der Crossover- und Höhenbeziehung zwischen drei MA und den Schlusskurs. Durch die Kombination von MA unterschiedlicher Begriffe kann sie Trends effektiv entdecken und die Signale sind von hoher Qualität. Mit einer ordnungsgemäßen Einstellung der Parameter und der Einführung mehrerer Hilfsindikatoren kann die Strategie in Bezug auf Relevanz und Stabilität weiter verbessert werden.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Candle Close Strategy KHANH 11/11/2023", overlay=true, initial_capital=100, commission_type=strategy.commission.percent, commission_value=0.0000005, default_qty_type=strategy.percent_of_equity, default_qty_value=100) len1 = input.int(1, title="SMA #1 Length", minval=1) src1 = input(close, title="SMA Source #1") out1 = ta.sma(src1, len1) plot(out1, title="SMA #1", color=close >= out1 ? color.rgb(120, 123, 134, 100) : color.rgb(120, 123, 134, 100), linewidth=1) len2 = input.int(20, title="HMA #2 Length", minval=1) src2 = input(close, title="HMA Source #2") out2 = ta.hma(src2, len2) plot(out2, title="HMA #2", color=close >= out2 ? color.rgb(253, 255, 254, 100) : color.rgb(255, 255, 255, 100), linewidth=1) len3 = input.int(25, title="EMA #3 Length", minval=1) src3 = input(close, title="EMA Source #3") out3 = ta.ema(src3, len3) plot(out3, title="EMA #3", color=close >= out3 ? color.blue : color.blue, linewidth=1) // Define the long condition longCondition = (out1 > out2 and close > out2) // Define the short condition shortCondition = (out1 < out2 or close < out2) // Entry conditions if (longCondition) strategy.entry("Long",strategy.long) else if (shortCondition) strategy.entry("Short", strategy.short) // Trade channel plot PeriodLookBack = input(55, title="Period Look Back") xHighest55 = request.security(syminfo.tickerid, timeframe.period, ta.highest(PeriodLookBack)) xLowest55 = request.security(syminfo.tickerid, timeframe.period, ta.lowest(PeriodLookBack)) plot(xHighest55[1], color=color.red, title="HH") plot(xLowest55[1], color=color.green, title="LL") //@version=5 //indicator("Custom Moving Averages", shorttitle="CMA", overlay=true) shortLength = input(defval=40, title="Short Length") longLength = input(defval=80, title="Long Length") // Sử dụng khung thời gian của biểu đồ đang sử dụng thay vì cố định là "D" shortTopBorder = request.security(syminfo.tickerid, timeframe.period, ta.highest(high, shortLength)) shortBottomBorder = request.security(syminfo.tickerid, timeframe.period, ta.lowest(low, shortLength)) longTopBorder = request.security(syminfo.tickerid, timeframe.period, ta.highest(high, longLength)) longBottomBorder = request.security(syminfo.tickerid, timeframe.period, ta.lowest(low, longLength)) shortAverageLine = (shortTopBorder + shortBottomBorder) / 2 longAverageLine = (longTopBorder + longBottomBorder) / 2 plot(shortAverageLine, color=color.new(#fc0000, 0)) plot(longAverageLine, color=color.new(#01ff27, 0))