Dies ist eine sehr klassische gleitende durchschnittliche Golden Cross Death Cross Strategie. Die Strategie verwendet zwei gleitende Durchschnitte, TENKAN und KIJUN, mit unterschiedlichen Zeiträumen, um goldenes Kreuz und Todeskreuzsignale für lange und kurze Trades zu bilden.
Die Strategie basiert hauptsächlich auf einer japanischen Aktientechnischen Analysemethode namens Ichimoku Kinko Hyo, bei der mehrere gleitende Durchschnitte wie die TENKAN- und KIJUN-Linien zur Bestimmung der Markttrendrichtung verwendet werden.
Zunächst ist die TENKAN-Linie eine 9-tägige Linie, die den kurzfristigen Trend darstellt; die KIJUN-Linie ist eine 26-tägige Linie, die den mittelfristigen Trend darstellt. Wenn die TENKAN-Linie über die KIJUN-Linie kreuzt, wird ein Kaufsignal generiert. Wenn die TENKAN-Linie unter die KIJUN-Linie fällt, wird ein Verkaufssignal generiert. Dies bildet die klassische gleitende Durchschnitts-Goldene Kreuz- und Todeskreuz-Strategie.
Zweitens führt die Strategie auch die Senkou Span A (SSA) -Linie und die Senkou Span B (SSB) -Linie ein. Die SSA-Linie ist der Durchschnitt der TENKAN- und KIJUN-Linien, während die SSB-Linie ein gleitender Durchschnitt über 52 Tage ist. Zusammen bilden sie die
Schließlich untersucht diese Strategie, um gefälschte Signale zu filtern, auch die Position des Preises im Vergleich zur Chikou-Spanne (der Schlusskurs mit einer Verzögerung von 26 Tagen)
Dies ist eine sehr typische gleitende Durchschnittsstrategie.
Die Verwendung von zwei gleitenden Durchschnitten für verschiedene Zeiträume erlaubt es, kurz- und mittelfristige Trendrichtungen gleichzeitig zu beurteilen.
Langfristige Trends werden mit den Kumo-Bändern ermittelt, um langfristige Bärenmärkte zu vermeiden.
Der Preisvergleich mit der verzögerten Chikou-Linie filtert viele falsche Signale aus und reduziert unnötige Trades.
Durch die geschickte Nutzung verschiedener Funktionen gleitender Durchschnitte kann diese Strategie den Trends in kurzen, mittleren und langen Zeitrahmen folgen.
Zu den wichtigsten Risiken dieser Strategie gehören:
Bei schwebenden Durchschnittsstrategien werden in der Regel viele falsche Signale erzeugt. Häufiger Handel durch ungenaue Parameter kann zu Verlusten führen.
Diese Strategie konzentriert sich stark auf die technischen Aspekte, ohne die Grundlagen zu berücksichtigen.
Es ist kein Stop-Loss-Mechanismus enthalten. Sobald die Marktrichtungsbeurteilung falsch ist, können sich Verluste ansammeln.
Daher benötigen wir fortschrittlichere gleitende Durchschnittssysteme, geeignete Stop-Loss-Regeln oder ergänzende fundamentale Signale, um diese Strategie weiter zu verfeinern und Risiken zu verringern.
Diese Strategie kann auch in folgenden Bereichen verbessert werden:
Suche nach stabileren und effizienteren Parametersätzen durch mehr Backtests.
Hinzufügen von Stop-Loss-Regeln. Ein angemessener Stop-Loss hilft, maximale Verluste effektiv zu kontrollieren.
Ergänzen Sie grundlegende Signale wie die Revisionen der Gewinnschätzungen, die Einblicke in die Aussichten eines Unternehmens enthalten.
Optimierung der Preisvergleichsstrategie der Chikou-Linie mit stabileren Lösungen.
Einbeziehen Sie Aktienwahlsignale. Punktefaktoren wie PE-Ratio und ROE können minderwertige Aktien filtern.
Dies ist eine sehr typische und praktische gleitende Durchschnittsstrategie. Durch die gleichzeitige Überwachung von kurz-, mittelfristigen und langfristigen Trends, unter Verwendung verschiedener Funktionen von gleitenden Durchschnitten, erzeugt es Handelssignale mit solider Performance. Wir können es durch Parameter-Tuning, Hinzufügen von Stop Loss, Aktienwahl usw. weiter verbessern. Insgesamt ist dies eine vielversprechende quantitative Strategie, die der Forschung und Verfolgung würdig ist.
/*backtest start: 2022-11-28 00:00:00 end: 2023-12-04 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © mdeous //@version=4 strategy( title="Ichimoku Kinko Hyo Strategy", shorttitle="Ichimoku Strategy", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=1000, currency="USD", commission_type=strategy.commission.percent, commission_value=0.0 ) // // SETTINGS // // Ichimoku int TENKAN_LEN = input(title="Tenkan-Sen Length", defval=9, minval=1, step=1) int KIJUN_LEN = input(title="Kijun-Sen Length", defval=26, minval=1, step=1) int SSB_LEN = input(title="Senkou Span B Length", defval=52, minval=1, step=1) int OFFSET = input(title="Offset For Chikou Span / Kumo", defval=26, minval=1, step=1) // Strategy int COOLDOWN = input(title="Orders Cooldown Period", defval=5, minval=0, step=1) bool USE_CHIKOU = input(title="Use Imperfect Chikou Position Detection", defval=false) // // HELPERS // color _red = color.red color _blue = color.blue color _lime = color.lime color _fuchsia = color.fuchsia color _silver = color.silver color _aqua = color.aqua f_donchian(_len) => avg(lowest(_len), highest(_len)) // // ICHIMOKU INDICATOR // float tenkan = f_donchian(TENKAN_LEN) float kijun = f_donchian(KIJUN_LEN) float ssa = avg(tenkan, kijun) float ssb = f_donchian(SSB_LEN) plot(tenkan, title="Tenkan", color=_silver) plot(close, title="Chikou", offset=-OFFSET+1, color=_aqua) _ssa = plot(ssa, title="SSA", offset=OFFSET-1, color=_lime) _ssb = plot(ssb, title="SSB", offset=OFFSET-1, color=_red) fill(_ssa, _ssb, color=ssa > ssb ? _lime : _fuchsia, transp=90) // // STRATEGY // // Check if price is "above or below" Chikou (i.e. historic price line): // This detection is highly imperfect, as it can only know what Chikou position // was 2*offset candles in the past, therefore if Chikou crossed the price // line in the last 2*offset periods it won't be detected. // Use of this detection is disabled by default, float _chikou_val = close[OFFSET*2+1] float _last_val = close[OFFSET+1] bool above_chikou = USE_CHIKOU ? _last_val > _chikou_val : true bool below_chikou = USE_CHIKOU ? _last_val < _chikou_val : true // Identify short-term trend with Tenkan bool _above_tenkan = min(open, close) > tenkan bool _below_tenkan = max(open, close) < tenkan // Check price position compared to Kumo bool _above_kumo = min(open, close) > ssa bool _below_kumo = max(open, close) < ssb // Check if Kumo is bullish or bearish bool bullish_kumo = ssa > ssb bool bearish_kumo = ssa < ssb // Correlate indicators to confirm the trend bool bullish_trend = _above_tenkan and _above_kumo and bullish_kumo bool bearish_trend = _below_tenkan and _below_kumo and bearish_kumo // Build signals bool buy1 = (close > open) and ((close > ssa) and (open < ssa)) // green candle crossing over SSA bool buy2 = bullish_kumo and bearish_kumo[1] // bullish Kumo twist bool sell1 = (close < open) and ((close < ssb) and (open > ssb)) // red candle crossing under SSB bool sell2 = bearish_kumo and bullish_kumo[1] // bearish Kumo twist bool go_long = below_chikou and (bullish_trend and (buy1 or buy2)) bool exit_long = above_chikou and (bearish_trend and (sell1 or sell2)) // // COOLDOWN // f_cooldown() => _cd_needed = false for i = 1 to COOLDOWN by 1 if go_long[i] _cd_needed := true break _cd_needed go_long := f_cooldown() ? false : go_long // // ORDERS // strategy.entry("buy", strategy.long, when=go_long) strategy.close_all(when=exit_long) // // ALERTS // alertcondition( condition=go_long, title="Buy Signal", message="{{exchange}}:{{ticker}}: A buy signal for {{strategy.market_position_size}} units has been detected (last close: {{close}})." ) alertcondition( condition=exit_long, title="Sell Signal", message="{{exchange}}:{{ticker}}: A sell signal for {{strategy.market_position_size}} units has been detected (last close: {{close}})." )