A estratégia Leledec identifica reversões de tendência através da detecção de padrões de exaustão no indicador Leledec.
O indicador Leledec identifica pontos extremos locais de preços, analisando a relação entre os preços de fechamento e de abertura em várias barras.
A lógica central da estratégia é a seguinte:
Calcule o principal indicador Leledec (maj) usando os parâmetros contagem de barras (maj_qual) e período de revisão (maj_len).
Quando o Leledec maior se rompe acima das barras maj_qual consecutivamente, e o máximo da barra excede o máximo mais alto sobre as barras maj_len passadas, é identificado um esgotamento ascendente do Leledec maior que gera um sinal longo.
Calcular o indicador Leledec menor (min) utilizando os parâmetros contagem de barras (min_qual) e período de observação (min_len).
Quando o Leledec menor ultrapassa os bares min_qual consecutivamente, e o mínimo da barra está abaixo do mínimo mais baixo das barras min_len anteriores, é identificado um esgotamento de Leledec menor que gera um sinal curto.
De acordo com a lógica do indicador Leledec, os padrões de exaustão representam pontos extremos potenciais e inversões de tendência, daí os sinais de negociação.
A estratégia tem fortes capacidades de identificação de tendências.
Flexibilidade na adaptação a diferentes prazos e condições de mercado através de ajustes de parâmetros.
Pode utilizar o Leledec maior sozinho ou incorporar o Leledec menor para sinais mais abrangentes.
Sensibilidade personalizável através de parâmetros de contagem de barras e período de observação.
Potencial de falsos sinais, requer validação utilizando outros indicadores.
Optimização de parâmetros necessária para diferentes produtos e prazos.
Baseia-se principalmente em padrões de velas, pode perder oportunidades durante oscilações de preços de curto prazo.
Preciso de ver corpos reais de barras de sinal para reversões de tendência falhadas.
Otimizar combinações de parâmetros para melhor adaptabilidade.
Incorporar outros indicadores como volume, médias móveis, etc. para filtrar sinais.
Implementar stop loss para controlar a queda em operações individuais.
Incorporar indicadores de curto prazo para captar oportunidades de pequenas oscilações.
Teste em diferentes produtos para encontrar o ambiente ideal.
Otimizar as estratégias de gestão de fundos, como o dimensionamento das posições, o risco por negócio, etc.
A estratégia Leledec detecta reversões de tendência identificando padrões extremos no indicador Leledec. É uma tendência eficaz seguindo a metodologia. Embora vantajosa na avaliação de tendências, é necessária uma otimização adicional, validação de sinal adicional e gerenciamento de risco adequado para rentabilidade a longo prazo.
/*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)