Diese Strategie zielt darauf ab, Extreme des Chande Momentum Oszillators mit extremer Verteilungserkennung in 1-Minuten-Zeitrahmen vor allem für Bitcoin und Kryptowährungen zu erkennen.
Nach umfangreichen Recherchen über den Chande-Impuls-Oszillator beschloss ich, eine Strategie zu entwickeln, die die normalen Verteilungsperzentilniveaus verwendet, um Einträge zu schneiden. Dies wiederum kann über aufeinanderfolgende Tage im 1-Minuten-Zeitrahmen schöne Gewinne erzielen, wobei das Endziel darin besteht, eine stärkere Version dieser Strategie auf einem Bot auszuführen und etwas Geld zu drucken. Die Strategie ist eng definiert, kann aber auch gelockert werden, um mehr Trades zu tätigen, was eine höhere Stichprobengröße und ein besseres Sharpe-Verhältnis ermöglicht.
Die Strategie prüft, ob sich der Chande-Wert in einem extremen Perzentil befindet, basierend auf den letzten ein paar hundert Chande-Werten - wenn dies der Fall ist, wird eine Position eröffnet.
Keine Stop-Loss oder Take-Profit ist in der Schaukel noch implementiert, aber dies wird die nächste Ergänzung sein, um wirklich Verluste zu minimieren und potenzielle Gewinne zu verstärken.
Jedes flüssige Krypto-Paar auf den niedrigeren Zeitrahmen wird mit dieser Strategie ein gutes Ergebnis erzielen.
Wir haben auch eine kostenlose 15M und 1H Strategie zur Verfügung.
Die Strategie berechnet zunächst den Chande-Momentumsoszillator, der auf der Veränderung zwischen dem Ende der aktuellen Periode und dem Ende der vorherigen Periode basiert.
Es zeichnet dann die Chande-Werte über einen bestimmten Lookback-Zeitraum (Standard 425-Perioden) auf und berechnet die verschiedenen Perzentilniveaus. Wenn der aktuelle Chande-Wert ein voreingestelltes extremes Perzentil erreicht (Standard 1% für Kauf, 99% für Verkauf), löst es ein langes/kurzes Eingangssignal aus. Die Ausgangssignale werden ausgelöst, wenn der Chande-Wert das normale Perzentil erreicht (Standard 97,5% und 2,5%).
Auf diese Weise kann die Strategie extreme Ausbrüche des Chande-Wertes erfassen, so dass sie plötzliche Trendbewegungen erfassen kann.
Das Risikomanagement sollte sich auf die Verwendung von Stops, die Normalisierung extremer Parameter und das Filtern von Signalen mit dem Trend konzentrieren.
Die Strategie kann in mehreren Aspekten optimiert werden:
Hinzufügen von Stop-Loss/Profit-Taking, um Verluste pro Handel auf angemessenen Niveaus zu kontrollieren.
Optimieren von Parametern durch Anpassung von kurzen/langen Lookbacks für verschiedene Märkte.
Fügen Sie Filterbedingungen mit Trendindikatoren wie MA hinzu, um falsche Signale gegen den Gesamttrend zu entfernen.
Kombinieren Sie mehrere Zeitrahmen und verwenden Sie einen höheren TF zur Beurteilung der Trendrichtung und einen niedrigeren TF für den Einstieg.
Die Robustheit der Parameter für verschiedene Produkte prüfen und für mehr Sorten anpassen.
Einführung von maschinellem Lernen zur dynamischen Optimierung von Parametern und Filtern.
Insgesamt handelt es sich um eine Strategie, die extreme Werte des Chande-Impuls-Oszillators nutzt, um Trendbewegungen zu erfassen. Ihre einfache Logik und effiziente Ausführung machen sie sehr geeignet, um schnell von Burst-Trends zu profitieren. Gleichzeitig ist die Kontrolle des Risikos, die Vermeidung von Überoptimierung und die mehrdimensionale Optimierung erforderlich, um sie an alle Marktregime anzupassen. Zusammenfassend bietet sie einen effektiven Ansatz für den Handel mit Marktausbrüchen, der weitere Forschung und Anwendung wert ist.
/*backtest start: 2023-10-13 00:00:00 end: 2023-11-12 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Chande Minute Swinger", overlay=true) //Chande length = input(9, minval=1) src = close momm = change(src) f1(m) => m >= 0.0 ? m : 0.0 f2(m) => m >= 0.0 ? 0.0 : -m m1 = f1(momm) m2 = f2(momm) sm1 = sum(m1, length) sm2 = sum(m2, length) percent(nom, div) => 100 * nom / div chandeMO = percent(sm1-sm2, sm1+sm2) //Parameters to change lengthLookback = 425 //425 golden number buyPercentile = 1 sellPercentile = 99 linePercentileLow = 2.5 linePercentileHigh = 97.5 buy = percentile_nearest_rank(chandeMO, lengthLookback, buyPercentile) exitBuy= percentile_nearest_rank(chandeMO, lengthLookback, linePercentileHigh) sell = percentile_nearest_rank(chandeMO, lengthLookback, sellPercentile) exitSell = percentile_nearest_rank(chandeMO, lengthLookback, linePercentileLow) chandeMA = sma(chandeMO, 9) //sma for potential other strategies implementing cross / trend //Entry conditions closeLongCondition = chandeMO > exitBuy ? true : false closeShortCondition = chandeMO < exitSell ? true : false longCondition = chandeMO < buy shortCondition = chandeMO > sell if (longCondition) strategy.entry("long", strategy.long) if (shortCondition) strategy.entry("short", strategy.short) //Introducing the closes and a stoploss will minimise loss and bring up the sharpe ratio //Current settings are enabled for maximum potential but big risk //strategy.close("long", when=(closeLongCondition == true)) //strategy.close("short", when=(closeShortCondition == true))