
Diese Strategie basiert auf einem Bollinger Bands-Indikator, kombiniert mit einem Momentum-Indikator, um eine Bollinger Bands-Rückkehr und einen Momentum-Breakout zu erzielen. Die Strategie besteht darin, wenn der Preis die Mittellinie unterhalb des Bollinger Bands durchbricht, zu verkaufen, wenn der Preis die Mittellinie oberhalb des Bollinger Bands durchbricht, und die Stop-Loss-Stopp-Situation zu verfolgen, um die Position nach Erreichen des Ziel-Loss-Loss-Verhältnisses auszugleichen.
Diese Strategie verwendet die Brin-Band-Mittellinie sma als Mittellinie, wobei die Bandbreite durch die Parametermult*Stdev-Dynamik-Anpassung: Wenn der Preis die mittlere Linie von unten durchbricht, wird der Preis aufgestockt, was bedeutet, dass er mehr macht. Wenn der Preis die mittlere Linie von oben durchbricht, wird der Preis aufgestockt, was bedeutet, dass er weniger macht. Wenn er mehr macht, wird ein Stop-Loss-Parameter festgelegt, um die Gewinne zu verfolgen und das Risiko zu kontrollieren.
Die Berechnung des Brinbands erfolgt durch die Parameter length und mult, wobei length die Periode der Mittellinie bestimmt, und mult die Größe der Bandbreite. EnterLong und enterShort bestimmen den Zeitpunkt des Durchbruchs, und exitLong und exitShort berechnen den Stop-Loss-Preis basierend auf dem Einstiegspreis und dem Ziel-Stop-Loss-Verhältnis.
Diese Strategie kombiniert die Mittellinienregression und die Dynamik-Indikatoren, um den Trend in der Anfangsphase des Trends schrittweise zu erfassen. Im Vergleich zur einfachen Mittellinienverfolgung erhöht die Dynamik-Beurteilung auf Basis der Brin-Bandbreite und kann einige falsche Durchbrüche filtern. Die Stop-Loss-Einstellung basiert direkt auf der Berechnung des Einstiegspreises, ohne manuelle Intervention.
Die Strategie kann durch Anpassung der Brin-Medial-Periode, der Bandbreitenparameter und der Stop-Loss-Range optimiert werden, um sie besser an unterschiedliche Marktbedingungen anzupassen.
Diese Strategie integriert die Vorteile der Brin-Band-Regression und der Dynamik-Indikatoren, kann bei der Entwicklung zu Beginn des Trends schrittweise zu erfassen, kann durch Parameter-Anpassung an die verschiedenen Phasen des Marktes angepasst werden, ist eine eher allgemeine Durchbruch-System. Die Stop-Loss-Einstellungen direkt von der Preisberechnung reduzieren die künstliche Intervention. Die Strategie gibt es auch einige Raum für Verbesserungen, wie zum Beispiel die Aufnahme von mehr Hilfsentscheidung Indikatoren, die in der nachfolgenden Forschung und Optimierung weiter verbessert werden.
/*backtest
start: 2023-11-13 00:00:00
end: 2023-11-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("BURATINO", overlay=true)
// Входные параметры
length = input(20, minval=1, title="Length")
mult = input(2.0, minval=0.1, maxval=5, title="Multiplier")
target_percent = input(0.5, minval=0.1, title="Target Percent")
stop_loss_percent = input(95, minval=0.1, title="Stop Loss Percent")
// Расчет полос Боллинджера
basis = sma(close, length)
dev = mult * stdev(close, length)
upper = basis + dev
lower = basis - dev
// Переворот снизу вверх через среднюю линию Боллинджера для открытия лонга
enterLong = cross(close, basis) and close[1] < basis[1]
// Переворот сверху вниз через среднюю линию Боллинджера для открытия шорта
enterShort = cross(basis, close) and close[1] > basis[1]
// Закрытие лонга после роста цены на указанный процент или падения на указанный процент
exitLong = close >= strategy.position_avg_price * (1 + (target_percent / 100)) or close <= strategy.position_avg_price * (1 - (stop_loss_percent / 100))
// Закрытие шорта после падения цены на указанный процент или роста на указанный процент
exitShort = close <= strategy.position_avg_price * (1 - (target_percent / 100)) or close >= strategy.position_avg_price * (1 + (stop_loss_percent / 100))
// Управление позициями и ограничениями на открытие противоположных позиций
strategy.entry("Long", strategy.long, when = enterLong and strategy.position_size == 0)
strategy.entry("Short", strategy.short, when = enterShort and strategy.position_size == 0)
strategy.close("Long", when = exitLong)
strategy.close("Short", when = exitShort)
// Визуализация полос Боллинджера
plot(basis, color=color.blue, title="Basis")
plot(upper, color=color.red, title="Upper")
plot(lower, color=color.green, title="Lower")