La estrategia de Leledec identifica inversiones de tendencia mediante la detección de patrones de agotamiento en el indicador de Leledec.
El indicador Leledec identifica los puntos extremos locales de precios, analizando la relación entre los precios de cierre y de apertura en varias barras.
La lógica central de la estrategia es la siguiente:
Calcule el indicador principal de Leledec (maj) utilizando los parámetros de conteo de barras (maj_qual) y período de búsqueda (maj_len).
Cuando el Leledec mayor se rompe por encima de las barras maj_qual consecutivamente, y el máximo de la barra excede el máximo más alto sobre las barras maj_len pasadas, se identifica un agotamiento ascendente de Leledec mayor que genera una señal larga.
Calcule el indicador Leledec menor (min) utilizando los parámetros de conteo de barras (min_qual) y período de búsqueda (min_len).
Cuando el Leledec menor se rompe por debajo de las barras min_qual consecutivamente, y el mínimo de la barra está por debajo del mínimo más bajo de las barras min_len anteriores, se identifica un agotamiento a la baja de Leledec menor que genera una señal corta.
Según la lógica del indicador Leledec, los patrones de agotamiento representan puntos extremos potenciales e inversiones de tendencia, de ahí las señales de negociación.
La estrategia tiene fuertes capacidades en la identificación de tendencias.
Flexibilidad para adaptarse a los diferentes plazos y condiciones del mercado mediante ajustes de parámetros.
Puede utilizar el Leledec mayor solo o incorporar el Leledec menor para señales más completas.
Sensibilidad personalizable a través del recuento de barras y los parámetros del período de observación.
Potencial de señales falsas, requiere validación utilizando otros indicadores.
Optimización de parámetros necesaria para diferentes productos y marcos de tiempo.
Se basa principalmente en patrones de candlestick, puede perder oportunidades durante las oscilaciones de precios a corto plazo.
Necesito ver cuerpos reales de barras de señal para inversiones de tendencia fallidas.
Optimizar las combinaciones de parámetros para una mejor adaptabilidad.
Incorpore otros indicadores como el volumen, las medias móviles, etc. para filtrar las señales.
Implementar el stop loss para controlar la bajada en las operaciones individuales.
Incorporar indicadores a corto plazo para captar oportunidades de las oscilaciones menores.
Prueba en diferentes productos para encontrar el ambiente óptimo.
Optimizar las estrategias de gestión de dinero como el tamaño de la posición, el riesgo por operación, etc.
La estrategia de Leledec detecta las inversiones de tendencia mediante la identificación de patrones extremos en el indicador de Leledec. Es una tendencia efectiva siguiendo la metodología. Si bien es ventajosa para evaluar las tendencias, se necesita una mayor optimización, validación adicional de señales y una gestión adecuada del riesgo para la rentabilidad a largo plazo. En general, la estrategia de Leledec proporciona una adición valiosa a la caja de herramientas de un comerciante.
/*backtest start: 2023-09-01 00:00:00 end: 2023-09-30 23:59:59 period: 2h basePeriod: 15m 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/ // © Joy_Bangla //@version=4 strategy("A Strategy for Leledec", shorttitle ="Leledec Strategy", overlay=true, commission_value=0.075, initial_capital=10000, default_qty_type = strategy.percent_of_equity, default_qty_value = 10) maj = input(true, "Major Leledec Exhausion Bar :: Show") min=input(false, "Minor Leledec Exhausion Bar :: Show") leledcSrc = input(close, "Major Leledec Exhausion Bar :: Source") maj_qual = input(6, "Major Leledec Exhausion Bar :: Bar count no") maj_len = input(30, "Major Leledec Exhausion Bar :: Highest / Lowest") min_qual=input(5, "Minor Leledec Exhausion Bar :: Bar count no") min_len=input(5, "Minor Leledec Exhausion Bar :: Bar count no") bindexSindex = input(1, "bindexSindex") closeVal = input(4, "Close") lele(qual, len) => bindex = 0 sindex = 0 bindex := nz(bindex[bindexSindex], 0) sindex := nz(sindex[bindexSindex], 0) ret = 0 if close > close[closeVal] bindex := bindex + 1 bindex if close < close[closeVal] sindex := sindex + 1 sindex if bindex > qual and close < open and high >= highest(high, len) bindex := 0 ret := -1 ret if sindex > qual and close > open and low <= lowest(low, len) sindex := 0 ret := 1 ret return = ret return major = lele(maj_qual, maj_len) minor=lele(min_qual,min_len) plotchar(maj ? major == -1 ? high : na : na, char='•', location=location.absolute, color=color.red, transp=0, size=size.large) plotchar(maj ? major == 1 ? low : na : na, char='•', location=location.absolute, color=color.lime, transp=0, size=size.large) plotchar(min ? (minor==1?high:na) : na, char='x', location=location.absolute, color=color.red, transp=0, size=size.small) plotchar(min ? (minor==-1?low:na) : na, char='x', location=location.absolute, color=color.lime, transp=0, size=size.small) leledecMajorBullish = major==1?low:na leledecMajorBearish = major==-1?high:na leledecMinorBullish = minor==1?low:na leledecMinorBearish = minor==-1?high:na buySignalBasedOnMajorLeledecOnly = major==1?low:na sellSignalBasedOnMajorLeldecOnly = minor==-1?high:na // === INPUT BACKTEST RANGE === fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12) fromDay = input(defval = 1, title = "From Day", type = input.integer, minval = 1, maxval = 31) fromYear = input(defval = 2018, title = "From Year", type = input.integer, minval = 2017, maxval = 2030) thruMonth = input(defval = 12, title = "Thru Month", type = input.integer, minval = 1, maxval = 11) thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 30) thruYear = input(defval = 2030, title = "Thru Year", type = input.integer, minval = 2017, maxval = 2030) // === INPUT SHOW PLOT === showDate = input(defval = true, title = "Show Date Range", type = input.bool) // === FUNCTION EXAMPLE === start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window window() => time >= start and time <= finish ? true : false // create function "within window of time" if (window()) strategy.entry("buy", strategy.long, when=buySignalBasedOnMajorLeledecOnly) strategy.entry("sell", strategy.short, when=sellSignalBasedOnMajorLeldecOnly)