DEC 전략


생성 날짜: 2023-10-31 11:47:00 마지막으로 수정됨: 2023-10-31 11:47:00
복사: 0 클릭수: 726
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

DEC 전략

개요

릴레이 DEC 전략은 릴레이 DEC 지표의 종식 형태를 식별하여 시장 추세가 역전되는 시점을 판단합니다. 주요 릴레이 DEC 종식 형태가 발생하면 더 많이하고, 하위 릴레이 DEC 종식 형태가 발생하면 공백합니다. 이 전략은 주로 중장선 거래에 적용됩니다.

전략 원칙

레이리 DEC 지표는 가격의 지역 극한점을 식별하기 위해 사용된다. K 선의 폐쇄 가격과 개방 가격의 관계를 통계하여 그 지점이 잠재적인 극한점인지 판단한다.

이 전략의 핵심 논리는 다음과 같습니다.

  1. 주요 릴레이 DEC 지표 ((maj) 를 계산하고, 파라미터는 bar 수 ((maj_qual) 이며, 범위를 찾아내기 ([[maj_len]]).

  2. 메인 릴레이 DEC가 연속적으로 상향으로 maj_qual 루트 K 라인을 뚫고 K 라인의 최고값이 이전 maj_len 루트 K 라인의 최고값을 초과하면 메인 릴레이 DEC가 상향으로 끝나는 것으로 간주되어 멀티 신호를 생성한다.

  3. 2차 릴레 DEC 지표 ((min) 를 계산하고, 파라미터는 bar 수 ((min_qual) 이며, 검색 범위는 ((min_len) 였다.

  4. 2차 래리 DEC가 연속적으로 아래로 min_qual 루트 K선을 뚫고, K선의 최저가 이전 min_len 루트 K선의 최저가보다 낮으면 2차 래리 DEC가 아래로 끝나는 것으로 간주되어, 공백 신호를 발생한다.

릴레이 DEC 지표의 원칙에 따라, 종식 형태는 그 지점 인근에 극한점과 트렌드 반전점이 있을 수 있음을 나타내고, 따라서 거래 신호를 생성한다.

우위 분석

  • 이 전략은 강력한 추세를 판단하는 능력을 갖는다. 릴레이 DEC 지표는 가격의 지역 극한점을 효과적으로 식별할 수 있다.

  • 다양한 매개 변수 조합을 통해 다양한 주기 및 시장 환경에 유연하게 적응할 수 있다.

  • 주요 릴레이 DEC 신호를 개별적으로 사용할 수 있으며, 부수적 릴레이 DEC 신호와 결합하여 보다 포괄적이고 정확한 판단을 할 수 있다.

  • 다른 바 카운트와 검색 범위 파라미터를 설정하여 정책의 민감도를 조정할 수 있습니다.

위험 분석

  • 다른 지표와 마찬가지로, 릴레이 DEC 지표도 가짜 신호가 발생할 수 있으며, 다른 지표와 결합하여 검증이 필요합니다.

  • 다른 주기 및 품종에 적응하기 위해 파라미터를 최적화해야 합니다. 파라미터를 적절하게 설정하지 않으면 빈번한 거래 또는 누락된 양표 문제가 발생할 수 있습니다.

  • 이 전략은 주로 K선 형태를 기반으로 하고 있으며, 단기 가격 변동에서 기회를 놓칠 수 있다.

  • 릴레이 DEC 신호를 뚫는 K선 엔티티 부분에 주의를 기울여야, 트렌드 반전이 실패를 방지한다.

최적화 방향

  • 최적화 파라미터 조합, 파라미터의 적응성을 높인다. 동적 최적화 파라미터도 고려할 수 있다.

  • 다른 지표와 결합하여 필터링을 수행하여 신호의 신뢰성을 향상시킵니다.

  • 단독 손실을 통제하기 위해 Stop Loss 전략에 참여하십시오.

  • 단기적 인 지표와 결합하여 단기적 인 가격 변동에서 기회를 잡습니다.

  • 다양한 거래 유형을 테스트하여 최적의 환경을 찾아보세요.

  • 포지션 규모, 포지션 관리 등과 같은 자금 관리 전략을 최적화하십시오.

요약하다

레일리 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)