
La estrategia de recuperación de la recuperación de la línea de paridad es una estrategia que combina los indicadores técnicos y la forma del precio al mismo tiempo, y realiza múltiples operaciones de compras en los puntos de resistencia de soporte. La estrategia utiliza el indicador de línea de paridad para identificar la dirección de la tendencia del mercado, y ayuda a determinar los puntos de reversión con el indicador de forma basado en el valor máximo del precio, en combinación con los puntos altos y bajos previos para determinar las posiciones clave de soporte y resistencia.
La estrategia se basa en los siguientes pasos para determinar el momento de la operación:
Utiliza el indicador Alligator de tres líneas para determinar la dirección de la tendencia. Cuando la línea de precio rompe las líneas labial del indicador, se considera que se ha producido una señal de ruptura más fuerte.
El indicador utiliza el modelo de pico-trough para identificar el momento en que el precio se invierte en la zona de sobreventa y sobrecompra. Cuando se rompe el punto máximo de una dirección de pico-trough, se juzga como una posible señal de reversión.
Los puntos de entrada específicos de la operación de reversión, combinados con los puntos de soporte y resistencia. Haga más caídas cuando el precio se acerca al soporte o resistencia de la fase anterior.
El uso del indicador de la línea media de la EMA ayuda a determinar la dirección de la tendencia a largo plazo. Por ejemplo, en situaciones de convulsiones, la operación a corto plazo se basa en la inversión de salto aéreo, mientras que en situaciones de tendencia se basa en la operación de tendencia.
El uso de un método móvil de detención de pérdidas para controlar las pérdidas individuales.
La estrategia tiene las siguientes ventajas:
La combinación de múltiples señales de indicadores mejora la precisión del juicio.
El uso de la resistencia de soporte clave para la inversión es una operación de alta probabilidad.
El método de suspensión móvil permite limitar la pérdida individual.
La estrategia también tiene los siguientes riesgos:
En la combinación de varios indicadores, la frecuencia de operaciones puede ser alta y se debe prestar atención al control de los costos de las transacciones.
La falla de los puntos clave es el mayor riesgo, y las pérdidas pueden ser considerables si el precio no se invierte cerca de los puntos de soporte o resistencia previstos.
En momentos de fuerte volatilidad en el mercado, los paros móviles pueden ser excedidos, lo que genera pérdidas mayores.
La estrategia puede ser optimizada en los siguientes aspectos:
Optimización de las ponderaciones de varios indicadores para encontrar la combinación óptima de parámetros.
Aumentar los algoritmos de aprendizaje automático para ayudar a determinar la tasa de éxito de los puntos clave.
Se incluye un indicador de volumen de transacciones para evitar que los precios fluctúen fuertemente pero el volumen de transacciones sea insuficiente.
Optimizar el modelo de pérdidas móviles para reducir al máximo la probabilidad de pérdidas innecesarias, al tiempo que se garantiza la efectividad de las pérdidas.
En resumen, la estrategia de recuperación de la recuperación de la línea de equilibrio es una estrategia técnica típica que utiliza múltiples indicadores para juzgar al mismo tiempo, como la línea de equilibrio, la forma del precio y el nivel de resistencia al soporte. Tiene la ventaja de una alta precisión de juicio y una alta probabilidad de operación, pero también debe tener en cuenta el riesgo de que se rompan los puntos clave y los paros móviles.
/*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
// ...