
Die Strategie nutzt die wahre Reichweite (True Range) und den gewichteten Moving Average (WMA) zur Erstellung eines überlaufenden Indikators, um Trends zu beurteilen. Gleichzeitig verfügt sie über eine Pyramide mit mehreren Positionen und mehreren Stop-Loss-Mechanismen, die darauf abzielen, einen stabilen Gewinn zu erzielen.
Die Strategie berechnet zunächst die Auf- und Abwärtswellenlänge (sube) und die Abwärtswellenlänge (baja) und berechnet anschließend die WMA für die Schnelllinie (corto) und die Langlinie (largo) bzw. die Differenz zwischen der Schnelllinie und der Langlinie. Die WMA berechnet erneut den Indikator (ind). Wenn der Indikator auf 0 fällt, erzeugt er ein Kaufsignal, wenn er auf 0 fällt, erzeugt er ein Verkaufsignal.
Nach dem Börsengang wird mit der Strategie 5 Positionen vorbereitet, um die Pyramide nach dem Gleichgewicht ((einfach) zu erhöhen. Gleichzeitig wird ein Stop-Loss-Mechanismus eingerichtet, danach muss bei der Eröffnung der Position beurteilt werden, ob die aktuelle Schwankung unter der Stop-Line liegt, um das Risiko zu kontrollieren.
Die Strategie integriert Mechanismen wie über die Zeitspanne zu urteilen, Pyramiden zu erhöhen und mehrere Stop-Losses, um Risiken effektiv zu kontrollieren und nach stabilen Gewinnen zu streben.
Durch die Kombination von schnellen und langsamen Linien kann ein Trendbeurteilungssystem erstellt werden, das effektiv Marktlärm filtert und Trendwendepunkte identifiziert. Die Pyramide-Hochlage kann in der Anfangsphase des Trends mehr Gewinne erzielen, und ein Mehrfachstop-Mechanismus kann einzelne Verluste effektiv kontrollieren.
Das Hauptrisiko dieser Strategie besteht darin, dass ein unerwartetes Ereignis einen schnellen Kursumkehr verursachen kann, der die Stop-Loss-Cutoff auslöst und zu Verlusten führt. Darüber hinaus beeinträchtigt die falsche Einstellung der Parameter die Strategie-Stabilität.
Die Risiken einer Marktumkehr können durch eine angemessene Lockerung der Stop-Loss-Linie begegnet werden. Optimierte Parameter-Sätze, Anpassung der Periodiparameter und der Anzahl der Positionen können die Strategie-Stabilität verbessern.
Die Strategie kann in folgenden Bereichen optimiert werden:
Erhöhung der statistischen Kennzahlen, die in Kombination mit Parametern zur Änderung von Kennzahlen wie Volatilität und Transaktionsvolumen verwendet werden, um die Strategie anpassungsfähiger zu machen.
Erhöhung der Machine-Learning-Modell-Beschlüsse, Unterstützung von Deep-Learning-Modellen wie LSTMs zur Steigerung der Strategie-Genauigkeit.
Optimierung der Positionsmanagement-Mechanismen, um die Positionserhöhung in Fluktuationsproportion zu korrigieren und die Positionserhöhung zu rationalisieren.
In Kombination mit einem Futures Hedging-Modell wird die Risikokontrolle durch Futures-Arbitrage weiter gesteuert.
Diese Strategie ist insgesamt eine auf realen Wellenlängen basierende Strategie für die Übergangsperiode, mit einer Pyramidenpositionierung und einem Mehrfachstop-Mechanismus, um das Risiko effektiv zu kontrollieren und nach einem stabilen Gewinn zu streben. Sie ist eine sehr praktische, quantitative Handelsstrategie. Allerdings muss auf die Umkehrung der Entwicklung und die Optimierung der Parameter geachtet werden.
/*backtest
start: 2023-01-10 00:00:00
end: 2024-01-16 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/
// © MaclenMtz
//@version=5
strategy("[MACLEN] Rangos", shorttitle="Rangos [https://t.me/Bitcoin_Maclen]", overlay=false )
//------WINDOW----------
i_startTime = input(defval = timestamp("01 Jan 2022 00:00 -0700"), title = "Start Time", group = "Backtest Window")
i_endTime = input(defval = timestamp("31 Dec 2025 00:00 -0700"), title = "End Time")
window = true
//-----------------------------
sube = close>close[1] ? ta.tr : 0
baja = close<close[1] ? ta.tr : 0
corto = input(10)
largo = input(30)
suavizado = input(10)
fastDiff = ta.wma(sube, corto) - ta.wma(baja,corto)
slowDiff = ta.wma(sube, largo) - ta.wma(baja, largo)
ind = ta.wma(fastDiff - slowDiff, suavizado)
iColor = ind>0 ? color.green : ind<0 ? color.red : color.black
plot(ind, color=iColor)
plot(0, color=color.white)
long = ind[1]<ind and ind[2]<ind[1] and ind<0
short = ind[1]>ind and ind[2]>ind[1] and ind>0
plotshape(long and not long[1], style = shape.xcross, color=color.green, location=location.bottom, size=size.tiny)
plotshape(short and not short[1], style = shape.xcross, color=color.red, location=location.top, size=size.tiny)
//Contratos
contrato1 = input(50000)/(16*close)
c1 = contrato1
c2 = contrato1
c3 = contrato1*2
c4 = contrato1*4
c5 = contrato1*8
//cap_enopentrade = strategy.opentrades == 1 ? c1: strategy.opentrades == 2 ? c1+c2: strategy.opentrades == 3 ? c1+c2+c3: strategy.opentrades == 4 ? c1+c2+c3+c4: strategy.opentrades == 5 ? c1+c2+c3+c4+c5 : 0
openprofit_porc = math.round((close-strategy.position_avg_price)/strategy.position_avg_price * 100,2)
porc_tp = input.float(6.5)
safe = input(-6)
//----------------Strategy---------------------------
if strategy.opentrades == 0
strategy.entry('BUY1', strategy.long, qty=c1, when = long and not long[1] and window)
if strategy.opentrades == 1
strategy.entry('BUY2', strategy.long, qty=c2, when = long and not long[1] and window and openprofit_porc<safe)
if strategy.opentrades == 2
strategy.entry('BUY3', strategy.long, qty=c3, when = long and not long[1] and window and openprofit_porc<safe)
if strategy.opentrades == 3
strategy.entry('BUY4', strategy.long, qty=c4, when = long and not long[1] and window and openprofit_porc<safe)
if strategy.opentrades == 4
strategy.entry('BUY5', strategy.long, qty=c5, when = long and not long[1] and window and openprofit_porc<safe)
min_prof = strategy.openprofit>0
strategy.close_all(when=short and min_prof)
plot(openprofit_porc)