Стратегия Leledec DEC

Автор:Чао ЧжанДата: 31-10-2023 11:47:00
Тэги:

img

Обзор

Стратегия Leledec определяет обратные тенденции путем обнаружения моделей истощения в индикаторе Leledec. Она длится, когда появляется основное истощение Leledec, и становится короткой, когда появляется незначительное истощение Leledec. Стратегия подходит для средне- и долгосрочной торговли.

Логика стратегии

Индикатор Leledec определяет местные крайние точки цены, анализируя взаимосвязь между закрытыми и открытыми ценами на нескольких барах.

Основная логика стратегии заключается в следующем:

  1. Вычислить основный показатель Leledec (maj) с использованием параметров bar count (maj_qual) и lookback period (maj_len).

  2. Когда главный леледек превышает maj_qual bars последовательно, и высота бары превышает самый высокий уровень за прошлые maj_len bars, определяется главный Leledec upside exhaustion, который генерирует длинный сигнал.

  3. Вычислить незначительный показатель Leledec (min) с использованием параметров bar count (min_qual) и lookback period (min_len).

  4. Когда незначительная величина 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)
 





Больше