Стратегия Leledec определяет обратные тенденции путем обнаружения моделей истощения в индикаторе Leledec. Она длится, когда появляется основное истощение Leledec, и становится короткой, когда появляется незначительное истощение Leledec. Стратегия подходит для средне- и долгосрочной торговли.
Индикатор Leledec определяет местные крайние точки цены, анализируя взаимосвязь между закрытыми и открытыми ценами на нескольких барах.
Основная логика стратегии заключается в следующем:
Вычислить основный показатель Leledec (maj) с использованием параметров bar count (maj_qual) и lookback period (maj_len).
Когда главный леледек превышает maj_qual bars последовательно, и высота бары превышает самый высокий уровень за прошлые maj_len bars, определяется главный Leledec upside exhaustion, который генерирует длинный сигнал.
Вычислить незначительный показатель Leledec (min) с использованием параметров bar count (min_qual) и lookback period (min_len).
Когда незначительная величина Leledec превышает минимум_qual bars последовательно, а низкий уровень бары находится ниже самого низкого уровня за предыдущие минимум_len bars, определяется незначительная низкая величина Leledec, которая генерирует короткий сигнал.
Согласно логике индикатора Leledec, модели истощения представляют собой потенциальные крайние точки и обратные тенденции, отсюда и торговые сигналы.
Стратегия обладает сильными возможностями в определении тенденций.
Гибкость при адаптации к различным временным рамкам и рыночным условиям посредством настройки параметров.
Могут использовать главный Leledec в одиночку или включать младший Leledec для более полных сигналов.
Настраиваемая чувствительность с помощью параметров количества штрихов и периода просмотра.
Потенциал ложных сигналов требует проверки с использованием других показателей.
Оптимизация параметров необходима для различных продуктов и временных рамок. Неправильные параметры могут вызвать переоценку или пропущенные сделки.
В основном опирается на моделей свечей, может пропустить возможности во время краткосрочных колебаний цен.
Нужно следить за реальными телами сигнальных строк для неудачных переворотов тренда.
Оптимизируйте комбинации параметров для лучшей адаптации.
Включите другие показатели, такие как объем, скользящие средние и т. Д., Чтобы отфильтровать сигналы.
Используйте стоп-лосс для контроля снижения на одиночных сделках.
Включайте краткосрочные индикаторы, чтобы поймать возможности от незначительных колебаний.
Испытания на различных продуктах для поиска оптимальной среды.
Оптимизировать стратегии управления деньгами, такие как размещение позиций, риск на одну сделку и т.д.
Стратегия Леледек отслеживает изменение тренда путем выявления экстремальных моделей в индикаторе Леледек. Это эффективная тенденция, следующая за методологией. Хотя она выгодна для оценки тенденций, для долгосрочной прибыльности необходима дальнейшая оптимизация, дополнительная проверка сигналов и надлежащее управление рисками.
/*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)