삼중 공명 포착 전략

WT CRSI LSDD
생성 날짜: 2025-10-09 14:09:21 마지막으로 수정됨: 2025-10-09 14:09:21
복사: 0 클릭수: 213
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

삼중 공명 포착 전략 삼중 공명 포착 전략

3개의 지표는 2개의 K선 안에 동시에 신호를 내야 합니다. 그렇지 않으면 대화가 없습니다.

이것은 일반적인 다중 지표 전략이 아닙니다. WaveTrend + Connors RSI + 선형 회귀 편향의 조합은 창 동기화 메커니즘에 있습니다. 모든 구매 신호는 2K 선의 범위 내에서 나타나야하며 개별 신호는 직접 무시됩니다.

전통적인 전략은 각 지표의 독립적인 판단으로 노이즈가 발생하거나 동시에 많은 기회를 놓치게 된다. 이 전략은 균형점을 찾는다: K 선의 오류 허용 창은 신호의 관련성을 보장하면서도 너무 엄격한 동기화 요구 사항을 피한다.

웨이브 트렌드 설정-48 초매도 라인, 표준 RSI보다 더 민감하다

WT의 길이는 10주기, 초상도선-48, 초상도선-48로 설정되어 있다. 이 파라미터 조합은 전통적인 RSI의 30/70보다 더 급진적이며, 가격 반전 신호를 더 일찍 포착할 수 있다. WT의 장점은 가격 위치와 변동성을 결합하여, 변동적인 상황에서 단순한 RSI보다 더 신뢰할 수 있다는 것이다.

중요한 것은 WT의 계산 방식입니다:*편향된 EMA), 이 공식은 자연적으로 변동률 조정 기능을 갖는다. 시장의 변동이 심할 때 분모가 커지고, WT 값은 상대적으로 안정되어 일반 RSI가 높은 변동 동안의 부정확성 문제를 피한다.

코너스 RSI 트리플 검증, 2080 값이 설정되어 있습니다

CRSI는 일반 RSI가 아닌 가격 RSI, 연속 하락 RSI 및 가격 변화 백분율 순위를 혼합합니다. 20의 초과 판매 경계는 전통적인 30보다 더 급진적이지만 CRSI의 3번 검증 메커니즘은 가짜 신호의 가능성을 낮춘다.

6주기의 RSI 길이는 신호의 민감성을 높이기 위해 짧게 설정되어 있습니다. 15분 수준에서 6주기는 1.5시간의 가격 기억과 같습니다. 이는 단기 오버셀을 포착할 수 있고 과도하게 지연되지 않습니다. 이 파라미터는 BTC와 같은 24시간 거래되는 품종에 특히 효과적입니다.

선형 회귀 편향 LSDD, 20주기 포착 트렌드 회전

LSDD = 현재 가격 - 선형 회귀 값, LSDD에 0 축을 통과하면 가격이 하향 트렌드 라인에서 벗어나는 것을 나타냅니다. 20 주기의 설정은 15 분 차트에서 5 시간을 커버하여 중·단기 트렌드 변화를 효과적으로 식별합니다.

이 지표의 정교함은 단순한 트렌드를 따르는 것이 아니라 트렌드 편차를 측정하는 데 있습니다. 가격이 계속 하락한 후 회귀선 위로 이탈하기 시작하면 종종 반전의 시작을 예고합니다. WT와 CRSI의 과매매 신호를 결합하여 “과매 + 트렌드 반전”의 이중 확인을 형성합니다.

30%의 지분, 1배의 피라미드

이 전략은 순수 다목적으로 설계되었으며, 매번 30%의 자금을 입점할 때마다 1번의 입점을 허용한다. 이러한 설정은 암호화폐의 장기적인 상승 추세에 적합하며, 입점 통제를 통해 위험을 관리한다. 30%의 단일 입장은 충분한 수익을 얻을 수 있으며, 단편 거래의 과도한 위험을 피할 수 있다.

탈퇴 조건은 똑같이 엄격하다: WT 오버바이 ((>48) AND CRSI 오버바이 ((>80) AND LSDD 트로피, 세 가지 조건이 동시에 충족되어야 한다. 이 디자인은 추세 거래의 무결성을 보장하고 조기 출구를 방지한다.

15분 BTC 리테크 최적화, 하지만 시장 상황에 주의해야 한다

이 전략은 BTC의 15분 수준에서 재검토를 잘 수행했지만, 모든 시장 환경에서 효과가 있다는 것을 의미하지는 않습니다. 가로 수평의 흔들림 시장에서, 삼중 확인조차도 더 많은 가짜 신호를 일으킬 수 있습니다. 이 전략은 명확한 추세 특성이있는 시장 환경에 가장 적합합니다.

위험 팁: 역사적인 회전은 미래의 수익을 의미하지 않으며, 암호화폐 시장의 변동성이 매우 높으며, 자본 손실 위험이 있습니다. 실제 거래 전에 충분한 종이 거래 검증을 수행하고, 전체 포지션을 엄격하게 제어하는 것이 좋습니다.

전략 소스 코드
/*backtest
start: 2024-10-09 00:00:00
end: 2025-10-07 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT","balance":500000}]
*/

//@version=5
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © alescha13
// WT + CRSI + Linear Regression Long-only Strategy
// Description: 
// This long-only trading strategy combines WaveTrend (WT), 
// Connors RSI (CRSI), and a Linear Regression Slope (LSDD) trend filter.
// Signals are generated only when all three indicators align within a defined window.
// Exits occur when all indicators turn bearish.
// Backtested on BTC with 15-minute timeframe.

strategy("WT + CRSI + Linear Regression Long-only © alescha13", 
     overlay=true, 
     initial_capital=10000, 
     default_qty_type=strategy.percent_of_equity, 
     default_qty_value=30, 
     pyramiding=1, 
     calc_on_every_tick=false, 
     process_orders_on_close=true)

// =====================
// Inputs
// =====================
wtLength        = input.int(10, "WT Length")
wtOversold      = input.int(-48, "WT Oversold Level")
wtOverbought    = input.int(48, "WT Overbought Level")

crsiRSILength   = input.int(6,  "CRSI RSI Length")
crsiOversold    = input.int(20, "CRSI Oversold Level")
crsiOverbought  = input.int(80, "CRSI Overbought Level")

lsddLen         = input.int(20, "Linear Regression Length")

windowSize      = input.int(2, "Window size (bars) for all signals", minval=1)

// =====================
// Helper: CRSI Function
// =====================
updown(s) =>
    isEqual = s == s[1]
    isGrowing = s > s[1]
    ud = 0.0
    ud := isEqual ? 0 : isGrowing ? (nz(ud[1]) <= 0 ? 1 : nz(ud[1]) + 1) : (nz(ud[1]) >= 0 ? -1 : nz(ud[1]) - 1)
    ud

crsiFunc(src, lenrsi) =>
    lenupdown = 2
    lenroc = 100
    rsi = ta.rsi(src, lenrsi)
    updownrsi = ta.rsi(updown(src), lenupdown)
    percentrank = ta.percentrank(ta.roc(src, 1), lenroc)
    math.avg(rsi, updownrsi, percentrank)

// =====================
// WaveTrend (WT) Calculation
// =====================
ap  = (high + low + close) / 3.0
esa = ta.ema(ap, wtLength)
d   = ta.ema(math.abs(ap - esa), wtLength)
ci  = (ap - esa) / (0.015 * d)
wt  = ta.ema(ci, 3)

wtBull = ta.crossover(wt, wtOversold)
wtBear = wt > wtOverbought

// =====================
// CRSI Calculation
// =====================
crsiValue = crsiFunc(close, crsiRSILength)
crsiBull  = crsiValue < crsiOversold
crsiBear  = crsiValue > crsiOverbought

// =====================
// Linear Regression LSDD Calculation
// =====================
slope = ta.linreg(close, lsddLen, 0)
lsdd = close - slope
lsddBull = ta.crossover(lsdd, 0)
lsddBear = lsdd < 0

// =====================
// Window Logic (Synchronize Signals)
// =====================
var int wtBarIndex   = na
var int crsiBarIndex = na
var int lsddBarIndex = na

if wtBull
    wtBarIndex := bar_index
if crsiBull
    crsiBarIndex := bar_index
if lsddBull
    lsddBarIndex := bar_index

buySignal = false
if not na(wtBarIndex) and not na(crsiBarIndex) and not na(lsddBarIndex)
    maxBar = math.max(wtBarIndex, crsiBarIndex, lsddBarIndex)
    minBar = math.min(wtBarIndex, crsiBarIndex, lsddBarIndex)
    if (maxBar - minBar) <= windowSize
        buySignal := true
        wtBarIndex := na
        crsiBarIndex := na
        lsddBarIndex := na

finalLong = buySignal

// =====================
// Exit Logic
// =====================
sellSignal = wtBear and crsiBear and lsddBear

// =====================
// Entries / Exits
// =====================
if finalLong
    strategy.entry("Long", strategy.long, comment="Long Entry")

if sellSignal
    strategy.close("Long", comment="Long Exit")

// =====================
// Background Color for Signals
// =====================
bgcolor(finalLong ? color.new(color.green, 85) : na)
bgcolor(sellSignal ? color.new(color.red, 85) : na)

// =====================
// Plots
// =====================
plot(wt, color=color.new(color.blue, 0), title="WT")
plot(crsiValue, color=color.new(color.purple, 0), title="CRSI")
plot(lsdd, color=color.new(color.orange, 0), title="LSDD")

plotshape(finalLong, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)

// =====================
// Alerts
// =====================
alertcondition(finalLong, title="Long Alert", message="WT + CRSI + LSDD Long Signal")
alertcondition(sellSignal, title="Exit Alert", message="WT + CRSI + LSDD Exit Signal")