DEC戦略


作成日: 2023-10-31 11:47:00 最終変更日: 2023-10-31 11:47:00
コピー: 0 クリック数: 726
1
フォロー
1617
フォロワー

DEC戦略

概要

レイレイDEC戦略は,レイレイDEC指標の尽き形を識別することによって,市場トレンドの逆転のタイミングを判断する.主要なレイレイDECの尽き形が現れたら,多行し,次要レイレイDECの尽き形が現れたら,空行する.この戦略は,主に中長線取引に適用される.

戦略原則

レイリーDEC指標は,価格の局所的極限点を識別するために使用される.この点は,ドーガンK線の閉盘価格と開盤価格の関係を統計することによって,そのポイントが潜在的極限点であるかどうかを判断する.

この戦略の核心的な論理は:

  1. 主要レレ DEC指標 (((maj) を計算し,パラメータはbar数 (((maj_qual) と検索範囲 (((maj_len) を求めます.

  2. 主リレーDECが連続して上方K線を突破し,K線の最高値が以前のmaj_len根K線の最高値を超えると,主リレーDECが上方まで尽き,多信号が発生する.

  3. 計算する次要レレ DEC指数 ((min),パラメータはbar数 ((min_qual) と検索範囲 ((min_len) 〜である.

  4. 連続して下行してmin_qual根K線を突破し,このK線の最低値が前行してmin_len根K線の最低値より低いときは,下行して下行してDECが尽きると考えられ,空白信号が生成される.

レイレイDEC指標の原理に従って,尽き形は,その点の近くに極値点とトレンドの逆転点がある可能性を示し,したがって取引信号を生成する.

優位分析

  • この戦略は強いトレンド判断能力を有する.レレーDEC指標は,価格の局所的極限点を効果的に識別することができる.

  • 異なるパラメータの組み合わせにより,異なる周期および市場環境に柔軟に適応できます.

  • 主リレーDEC信号は単独で使用できますが,次リレーDEC信号と組み合わせてより全面的かつ正確な判断を実現することもできます.

  • 異なるバー数と検索範囲のパラメータを設定し,戦略の感度調整できます.

リスク分析

  • 他の指標と同様に,レレーDEC指標も偽信号が発生し,他の指標と組み合わせて検証する必要がある.

  • 異なる周期と品種に対応するためにパラメータを最適化する必要があります.パラメータの設定が不適切である場合,頻繁に取引または欠落の問題が発生する可能性があります.

  • この戦略は主にK線形状に基づいているため,短期的な価格変動の機会を逃す可能性があります.

  • レーレーDEC信号を突破するK線実体部分に注目し,トレンド反転の失敗を防ぎます.

最適化の方向

  • パラメータの組み合わせを最適化して,パラメータの適応性を高める. 動的最適化パラメータを考慮することができる.

  • 他の指標と組み合わせたフィルタリングを行う.例えば,エネルギー指標,移動平均など,信号の信頼性を高める.

  • 単一損失をコントロールするストップ・ローズ戦略に参加する.

  • 短期的な指数と組み合わせて,短期的な価格変動の機会を捉える.

  • 取引の種類をテストし,最適の取引環境を探します.

  • ポジション管理,ポジション管理などの資金管理戦略の最適化

要約する

レイリーDEC戦略は,レイリーDEC指標の極限形状を捕捉し,潜在的トレンド反転点を判断する優れたトレンド追跡戦略である.この戦略は,市場トレンドを判断する優位性を持っているが,長期的に安定した収益性を保つために,深層の最適化,他の指標によるフィルタリング検証,そしてよいリスク管理を必要とする.全体的に,レイリーDEC戦略は,私たちに別の価値ある取引ツールを提供します.

ストラテジーソースコード
/*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)