レレデック DEC 戦略

作者: リン・ハーンチャオチャン開催日:2023年10月31日11時47分
タグ:

img

概要

レレデック戦略は,レレデック指標で疲労パターンを検出することによってトレンド逆転を特定する.主要なレレデック疲労が現れる場合,長行し,小規模なレレデック疲労が現れる場合,短行する.この戦略は中長期取引に適しています.

戦略の論理

レレデック指標は,いくつかのバーで閉じる価格と開く価格の関係を分析することによって,地元の極点の価格を特定します.

戦略の基本的な論理は

  1. メジャーレレデック指標 (maj) をパラメータバーカウント (maj_qual) とバックバック期 (maj_len) を使用して計算する.

  2. メジャーレレデックが連続して maj_qualバーを超え,バーの高値が過去 maj_lenバーの最高値を超えると,長信号を生成するメジャーレレデックアップサイド疲労が特定されます.

  3. パラメーターバーカウント (min_qual) とバックバック期間 (min_len) を使ってマイナー Leledec インディケーター (min) を計算する.

  4. 小規模なレレデックが連続してmin_qualバーを下回り,バーの低値が過去min_lenバーの最低値を下回ると,短信号を生成する小規模なレレデックダウンサイド疲労が特定されます.

レレデック指標の論理によると,疲労パターンは潜在的な極点とトレンド逆転を表し,したがって取引信号です.

利点分析

  • 戦略はトレンド識別の強力な能力を持っています.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)
 





もっと