Diese Strategie verwendet True Range und den gewichteten gleitenden Durchschnitt (WMA), um einen Querschnittszeitrahmenindikator für das Trendbeurteilen zu erstellen. Gleichzeitig verfügt sie über einen Pyramiden-Positionsakkumulationsmechanismus mit mehreren Stop-Loss-Mechanismen, um stabile Gewinne zu erzielen.
Die Strategie berechnet zunächst die Amplitude nach oben (sube) und die Amplitude nach unten (baja), und berechnet dann die WMA des schnellen Linienzyklus (corto) und des langsamen Linienzyklus (largo) beziehungsweise. Die Differenz zwischen den schnellen und langsamen Linien wird erneut durch WMA berechnet, um den Indikator (ind) zu erhalten. Wenn der Indikator über 0 geht, wird ein Kaufsignal generiert. Wenn er unter 0 geht, wird ein Verkaufssignal generiert.
Nach dem Markteintritt setzt die Strategie 5 Positionen vor, die sich in einer Pyramiden- (verdoppelten) Art und Weise ansammeln. Gleichzeitig wird ein Stop-Loss-Mechanismus eingerichtet, so dass die nachfolgend eröffneten Positionen beurteilt werden, ob der aktuelle schwebende Gewinn unter der Stop-Loss-Linie liegt, um Risiken zu kontrollieren.
Die Strategie integriert Mechanismen wie Kreuzzyklus-Urteil, Pyramiden-Positionsakkumulation und mehrfache Stop-Losses, die Risiken wirksam kontrollieren und stabile Gewinne erzielen können.
Durch die Kombination von schnellen und langsamen Linien wird ein Trendbeurteilungssystem erstellt, das Marktlärm effektiv filtern und Trendwendepunkte identifizieren kann. Pyramidenpositionen können am Anfang des Trends mehr profitieren, und mehrere Stop-Loss-Mechanismen können einen einzelnen Verlust effektiv kontrollieren.
Das Hauptrisiko dieser Strategie ist die Möglichkeit eines plötzlichen Ereignisses, das eine schnelle Umkehr des Marktes verursacht, die eine Stop-Loss-Schnittgrenze auslöst und Verluste verursacht.
Das Risiko einer Umkehr des Marktes kann durch eine angemessene Lockerung der Stop-Loss-Linie abgewendet werden.
Die Strategie kann in folgenden Aspekten optimiert werden:
Erhöhung der statistischen Indikatoren für die Beurteilung, Verwendung von Indikatoren wie Volatilität und Volumen zur Korrektur von Parametern und Anpassung der Strategie.
Erhöhen Sie das Modell des maschinellen Lernens für das Urteilen, verwenden Sie LSTM und andere Deep Learning-Modelle, um das Urteilen zu unterstützen und die Strategiegenauigkeit zu verbessern.
Optimierung der Positionsmanagementmechanismen, Anpassung der Positionserhöhung an den variablen Gewinnprozentsatz, um das Positionswachstum vernünftiger zu gestalten.
Einbeziehung von Futures-Hedging-Modellen zur weiteren Kontrolle von Risiken durch Spot- und Futures-Arbitrage.
Zusammenfassend ist dies eine Kreuzzyklus-Trendstrategie, die auf True Range-Indikatoren mit Pyramiden-Positionsakkumulation und mehreren Stop-Loss-Mechanismen basiert, die Risiken effektiv kontrollieren und stabile Gewinne erzielen können.
/*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)