Leledec DEC Strategi

Penulis:ChaoZhang, Tanggal: 2023-10-31 11:47:00
Tag:

img

Gambaran umum

Strategi Leledec mengidentifikasi pembalikan tren dengan mendeteksi pola kelelahan dalam indikator Leledec. Strategi ini cocok untuk perdagangan jangka menengah hingga panjang.

Logika Strategi

Indikator Leledec mengidentifikasi titik harga ekstrim lokal. Hal ini dilakukan dengan menganalisis hubungan antara harga tutup dan terbuka di beberapa bar.

Logika inti dari strategi ini adalah:

  1. Hitung indikator Leledec utama (maj) menggunakan parameter bar count (maj_qual) dan periode lookback (maj_len).

  2. Ketika major Leledec pecah di atas bar maj_qual secara berturut-turut, dan tinggi bar melebihi tinggi tertinggi selama bar maj_len sebelumnya, kelelahan upside Leledec utama diidentifikasi yang menghasilkan sinyal panjang.

  3. Hitung indikator minor Leledec (min) menggunakan parameter bar count (min_qual) dan periode lookback (min_len).

  4. Ketika minor Leledec pecah di bawah bar min_qual berturut-turut, dan bar terendah berada di bawah terendah di atas bar min_len sebelumnya, keletihan minor Leledec downside diidentifikasi yang menghasilkan sinyal pendek.

Menurut logika indikator Leledec, pola kelelahan mewakili titik ekstrem potensial dan pembalikan tren, maka sinyal perdagangan.

Analisis Keuntungan

  • Strategi ini memiliki kemampuan yang kuat dalam identifikasi tren. Leledec dapat secara efektif mendeteksi titik ekstrem lokal.

  • Fleksibilitas dalam beradaptasi dengan kerangka waktu dan kondisi pasar yang berbeda melalui pengaturan parameter.

  • Dapat menggunakan Leledec utama sendiri atau menggabungkan Leledec kecil untuk sinyal yang lebih komprehensif.

  • Sensitivitas yang dapat disesuaikan melalui jumlah bar dan parameter periode lookback.

Analisis Risiko

  • Potensi sinyal palsu, membutuhkan validasi menggunakan indikator lain.

  • Optimasi parameter diperlukan untuk produk dan kerangka waktu yang berbeda.

  • Terutama bergantung pada pola candlestick, mungkin kehilangan peluang selama osilasi harga jangka pendek.

  • Perlu melihat tubuh nyata dari bar sinyal untuk pembalikan tren gagal.

Optimalisasi

  • Mengoptimalkan kombinasi parameter untuk kemampuan beradaptasi yang lebih baik.

  • Masukkan indikator lain seperti volume, moving average dll untuk menyaring sinyal.

  • Terapkan stop loss untuk mengendalikan penurunan pada perdagangan tunggal.

  • Masukkan indikator jangka pendek untuk menangkap peluang dari osilasi kecil.

  • Uji pada produk yang berbeda untuk menemukan lingkungan yang optimal.

  • Mengoptimalkan strategi manajemen uang seperti ukuran posisi, risiko per perdagangan dll.

Kesimpulan

Strategi Leledec menangkap pembalikan tren dengan mengidentifikasi pola ekstremum dalam indikator Leledec. Ini adalah tren yang efektif mengikuti metodologi. Meskipun menguntungkan dalam menilai tren, pengoptimalan lebih lanjut, validasi sinyal tambahan, dan manajemen risiko yang tepat diperlukan untuk profitabilitas jangka panjang. Secara keseluruhan, strategi Leledec memberikan tambahan yang berharga untuk toolkit trader.


/*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)
 





Lebih banyak