
Eine Strategie, die sowohl technische Indikatoren als auch Preisformel kombiniert, um mehrere Short-Operationen an Unterstützungswiderstandspunkten durchzuführen. Die Strategie verwendet die Gleichgewichtsindikatoren, um die Richtung des Markttrends zu identifizieren, und hilft bei der Bestimmung von Wendepunkten mit Hilfe von Formbildzeichen, die auf den Preis-Höchstwerten basieren, um die wichtigen Unterstützungs- und Widerstandspositionen in Verbindung mit den Höhen und Tiefen der Vorphase zu bestimmen.
Die Strategie beurteilt den Zeitpunkt des Einsatzes in folgenden Schritten:
Der Triple-Even-Alligator-Indikator wird verwendet, um die Richtung des Trends zu bestimmen. Wenn die Preislinie die Lip Lines des Indikators durchbricht, wird ein stärkeres Durchbruchsignal angenommen.
Der Peak-Trough-Modell-Indikator wird verwendet, um zu identifizieren, wann der Preis in den Überkauf-Überverkaufszonen umgekehrt ist. Wenn der Peak-Trough in eine bestimmte Richtung überschritten wird, wird dies als mögliches Umkehrsignal beurteilt.
Die spezifischen Einstiegspunkte für die Umkehroperation in Kombination mit den Unterstützungs- und Widerstandspunkten werden beurteilt. Wenn der Preis nahe an den vorherigen Unterstützungs- oder Widerstandspunkten liegt, wird ein zusätzlicher Shorting durchgeführt.
Die Verwendung von EMA-Gehaltsindikatoren hilft bei der Bestimmung der Richtung des langfristigen Trends. Zum Beispiel werden kurzfristige Operationen in einem bewegten Umlauf mit einem Sprung umgedreht, während in einem Trend ein kurzer Umlauf mit einem Bewegungsbewegungsbewegungsbewegungsbewegungs beherrscht wird.
Die Einzelschäden werden mit mobilen Stop-Loss-Methoden kontrolliert.
Die Strategie hat folgende Vorteile:
Die Daten werden von der Zentrale der Zentralregierung der Provinz, der Zentralregierung der Provinz, der Zentralregierung der Provinz und der Zentralregierung der Provinz verbreitet.
Die Umkehrung mit Hilfe der Widerstandsfähigkeit der Schlüsselstütze ist ein hochwahrscheinlicher Vorgang.
Der Einsatz einer mobilen Stop-Loss-Methode beschränkt den Einzelschaden.
Die Strategie birgt auch folgende Risiken:
In der Mehrindikator-Palette kann die Frequenz der Transaktionen hoch sein und die Kosten für Transaktionen müssen kontrolliert werden.
Die größte Gefahr besteht bei einem Ausfall der Schlüsselposition, und die Verluste können relativ groß sein, wenn der Preis nicht in der Nähe der erwarteten Unterstützungs- oder Widerstandspunkte umkehrt.
In Zeiten starker Marktschwankungen kann der mobile Stop-Loss überschritten werden, was zu einer Vergrößerung der Verluste führt.
Diese Strategie kann in folgenden Bereichen optimiert werden:
Optimierung der Gewichte für mehrere Indikatoren, um die optimale Kombination von Parametern zu finden.
Die Erhöhung der Maschinellehrungs-Algorithmen, um die Erfolgsrate der Schlüsselpositionen zu bestimmen.
Die Einführung von Volumenindikatoren verhindert, dass die Preise stark schwanken, während die Transaktionsmenge nicht ausreicht.
Optimierung der mobilen Stop-Loss-Modelle, um die Wahrscheinlichkeit von unnötigen Stop-Losses zu minimieren, während die Effektivität der Stop-Loss-Effizienz gewährleistet wird.
Zusammenfassend kann gesagt werden, dass die Linear Rebound Capture Strategy eine typische Technikstrategie ist, die mehrere Indikatoren wie die Linear, die Preisform und die Resistenz der Unterstützung zur gleichen Zeit nutzt. Sie hat die Vorteile einer hohen Entscheidungsgenauigkeit und einer hohen Operationswahrscheinlichkeit, muss aber auch auf das Risiko achten, dass die Schlüsselpositionen versagen und die Bewegungsstopps durchbrochen werden. Die Wirksamkeit der Strategie kann durch die kontinuierliche Optimierung von Mehrere-Indikator-Gewichten, die Anwendung von Machine Learning und die Messung der Handelsmenge zu einem gewissen Grad verbessert werden.
/*backtest
start: 2022-12-21 00:00:00
end: 2023-12-27 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/
// © vhurtadocos
//@version=5
strategy('Estrategia EMA Resistencia Soporte', shorttitle='Estrategia EMA RESISTENCIA Y SOPORTE', overlay=true, margin_long=100, margin_short=100, pyramiding = 10 )
//INICIO DE CONDICIONES BASICAS
/// Alligator
smma(src, length) =>
smma = 0.0
sma_1 = ta.sma(src, length)
smma := na(smma[1]) ? sma_1 : (smma[1] * (length - 1) + src) / length
smma
lipsLength = input(title='🐲 Lips Length', defval=5)
teethLength = input(title='🐲 Teeth Length', defval=8)
jawLength = input(title='🐲 Jaw Length', defval=13)
lipsOffset = input(title='🐲 Lips Offset', defval=3)
teethOffset = input(title='🐲 Teeth Offset', defval=5)
jawOffset = input(title='🐲 Jaw Offset', defval=8)
lips = smma(hl2, lipsLength)
teeth = smma(hl2, teethLength)
jaw = smma(hl2, jawLength)
// Fractals
n = input.int(title='📌 Period', defval=2, minval=2)
upFractal = high[n + 2] < high[n] and high[n + 1] < high[n] and high[n - 1] < high[n] and high[n - 2] < high[n] or high[n + 3] < high[n] and high[n + 2] < high[n] and high[n + 1] == high[n] and high[n - 1] < high[n] and high[n - 2] < high[n] or high[n + 4] < high[n] and high[n + 3] < high[n] and high[n + 2] == high[n] and high[n + 1] <= high[n] and high[n - 1] < high[n] and high[n - 2] < high[n] or high[n + 5] < high[n] and high[n + 4] < high[n] and high[n + 3] == high[n] and high[n + 2] == high[n] and high[n + 1] <= high[n] and high[n - 1] < high[n] and high[n - 2] < high[n] or high[n + 6] < high[n] and high[n + 5] < high[n] and high[n + 4] == high[n] and high[n + 3] <= high[n] and high[n + 2] == high[n] and high[n + 1] <= high[n] and high[n - 1] < high[n] and high[n - 2] < high[n]
dnFractal = low[n + 2] > low[n] and low[n + 1] > low[n] and low[n - 1] > low[n] and low[n - 2] > low[n] or low[n + 3] > low[n] and low[n + 2] > low[n] and low[n + 1] == low[n] and low[n - 1] > low[n] and low[n - 2] > low[n] or low[n + 4] > low[n] and low[n + 3] > low[n] and low[n + 2] == low[n] and low[n + 1] >= low[n] and low[n - 1] > low[n] and low[n - 2] > low[n] or low[n + 5] > low[n] and low[n + 4] > low[n] and low[n + 3] == low[n] and low[n + 2] == low[n] and low[n + 1] >= low[n] and low[n - 1] > low[n] and low[n - 2] > low[n] or low[n + 6] > low[n] and low[n + 5] > low[n] and low[n + 4] == low[n] and low[n + 3] >= low[n] and low[n + 2] == low[n] and low[n + 1] >= low[n] and low[n - 1] > low[n] and low[n - 2] > low[n]
plotshape(title='📌 Up-Fractal', series=upFractal, style=shape.triangleup, location=location.abovebar, offset=-2, color=color.new(color.olive, 0), text="R")
plotshape(title='📌 Down-Fractal', series=dnFractal, style=shape.triangledown, location=location.belowbar, offset=-2, color=color.new(color.maroon, 0), text="S", textcolor = color.new(color.maroon,0))
// Resistance, Support
showRS = input(title='⤒⤓ Show Res-Sup', defval=true)
lengthRS = input(title='⤒⤓ Res-Sup Length', defval=13)
highRS = ta.valuewhen(high >= ta.highest(high, lengthRS), high, 0)
lowRS = ta.valuewhen(low <= ta.lowest(low, lengthRS), low, 0)
plot(title='⤒ Resistance', series=showRS and highRS ? highRS : na, color=highRS != highRS[1] ? na : color.olive, linewidth=1, offset=0)
plot(title='⤓ Support', series=showRS and lowRS ? lowRS : na, color=lowRS != lowRS[1] ? na : color.maroon, linewidth=1, offset=0)
// EMA de 8 períodos
ema8 = ta.ema(close, 8)
plot(title='ema8', series=ema8, color=color.new(#dbef41, 0), offset=0)
// EMA de 21 períodos
ema21 = ta.ema(close, 21)
plot(title='ema21', series=ema21, color=color.new(#e12c0c, 0), offset=0)
// EMA de 50 períodos
ema50 = ta.ema(close, 50)
plot(title='ema50', series=ema50, color=color.new(#3419de, 0), offset=0)
// EMA de 200 períodos
ema200 = ta.ema(close, 200)
plot(title='ema200', series=ema200, color=color.new(#f6f6f4, 0), offset=0)
// Definiciones originales...
// ... (incluyendo tus definiciones de Alligator, Fractals, etc.)
// Guardamos el último soporte y resistencia
var float lastSupport = na
var float lastResistance = na
// Detectando un nuevo soporte y resistencia
newSupportDetected = low == lowRS
if newSupportDetected
lastSupport := low
// Lógica de entrada y salida
// Condiciones de entrada basadas en soportes recién formados
longCondition = low == lowRS
if longCondition
strategy.entry("Long", strategy.long)
// Salida (take profit) cuando detectamos una nueva resistencia después de entrar en una posición long
newResistanceDetected = high == highRS
if newResistanceDetected and strategy.position_size > 0
strategy.close("Long")
// Agregar una condición para el stop loss
longStopLossPrice = close * 0.95
if strategy.position_size > 0 and close <= longStopLossPrice
strategy.close("Long")
// Pintamos los soportes y resistencias
plotshape(longCondition, style=shape.triangledown, location=location.belowbar, color=color.red)
plotshape(newResistanceDetected, style=shape.triangleup, location=location.abovebar, color=color.green)
// Resto del código para plotear las EMAs y fractales
// ...