다중 지표 동적 추세 지속적 거래 전략

RSI CMO ATR HMA 趋势跟踪 动态止损 分批获利
생성 날짜: 2025-05-13 11:19:55 마지막으로 수정됨: 2025-05-13 11:19:55
복사: 1 클릭수: 377
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

다중 지표 동적 추세 지속적 거래 전략 다중 지표 동적 추세 지속적 거래 전략

개요

다중 지표 동적 트렌드 연속 거래 전략은 높은 확률의 트렌드 지속 설정을 식별하기 위한 강력한 재검토 도구입니다. 이 전략은 상대적으로 약한 지표 ((RSI), 드 동적 진동기 ((CMO) 와 실제 변동폭에 적응하는 실제 변동폭에 기반한 트래킹 스톱 로직 ((ATR) 을 교묘하게 결합하여 정확한 진입 지점을 감지하고 자동화된 수익 목표 ((1R, 2R, 3R) 와 스톱 레벨을 통해 위험을 관리합니다. 이 전략은 가격 행동과 동적 동력을 활용하여 트렌드 전환을 평가하여 트레이더가 명확한 출구와 함께 건전한 거래 장면을 테스트 할 수 있습니다.

전략 원칙

이 전략의 핵심은 여러 기술 지표의 조합을 통해 트렌드 전환점과 지속 가능한 기회를 식별하는 것입니다.

  1. 트렌드 확인 메커니즘헐 이동 평균 ((HMA) 을 사용하여 오프닝 가격과 오프닝 가격을 처리합니다. 각각 5주기 및 12주기를 사용하여 동력의 변화를 계산하고 트렌드 강도를 평가하기 위해 이러한 변화를 비교합니다.

  2. 동력 평가드 동력 진동기 ((CMO) 를 사용하여 과매매 및 과매매 조건을 식별합니다. 이 지표는 상위 변동량과 하향 동력의 차이와 총액의 비율을 계산하여 가격 동력을 측정합니다. CMO 값이 50보다 크면 RSI가 25보다 낮으면 구매 신호가 발생할 수 있음을 나타냅니다.

  3. 핵심 가격 수준 식별: 코드는 단순하지만 효과적인 논리를 사용하여 높은 점과 낮은 점들을 식별하고, 2개의 연속적인 주기의 최고 가격과 최저 가격을 비교하여 표준 차차 검사를 결합하여 이 점들의 유효성을 보장한다.

  4. 동적 손해 방지 시스템: ATR 기반의 적응적 추적 스톱 메커니즘은 스톱 거리를 곱하기 (기본값은 2) 를 통해 조정합니다. 이것은 스톱을 시장의 변동성에 따라 자동으로 조정할 수 있도록 해 주며, 변동이 큰 경우 더 느슨한 스톱을 제공하며, 변동이 적은 경우 더 긴밀한 스톱을 제공합니다.

  5. 트렌드 전환 탐지: 가격이 상승 또는 하락을 돌파 할 때, 트렌드 변수는 1에서 -1으로 또는 -1에서 1으로 변합니다. 이러한 전환은 거래 신호를 유발합니다.

  6. 위험 관리이 전략은 비율에 기반한 스톱로스 설정을 포함하고 있다. (기본적으로 2%) 그리고 리스크 곱에 기반한 분기 수익 메커니즘을 포함하고 있다. (1R, 2R, 3R) 이 모든 거래에 대한 리스크-비용 비율이 예측될 수 있도록 보장한다.

전략적 이점

이 전략 코드를 더 깊이 분석하면 다음과 같은 중요한 장점을 찾을 수 있습니다.

  1. 매우 적응력이 좋다ATR을 계산함으로써, 전략은 다양한 시장 변동 조건에 적응할 수 있으며, 이는 다양한 시간 프레임과 다양한 시장 환경에서 유효성을 유지할 수 있습니다.

  2. 다중확인전략은 단일 지표에 의존하는 것이 아니라 RSI, CMO 및 가격의 지지/저항 수준을 여러 번 확인하는 것을 결합하여 잘못된 신호의 가능성을 크게 줄입니다.

  3. 체계화된 위험 관리내장된 스톱로스 및 다단계 수익 메커니즘은 모든 거래가 엄격한 위험 관리 규칙을 준수하고 감정적 인 의사 결정의 위험을 피하도록 보장합니다.

  4. 매개 변수 최적화 공간전략: 전략은 감성 배수, ATR 주기 및 계산 방법과 같은 여러 가지 조정 가능한 매개 변수를 제공하여 거래자가 특정 시장 조건과 개인 위험 선호도에 따라 최적화 할 수 있습니다.

  5. 분배 수익 전략1R, 2R, 3R의 분기 수익 방식을 사용하여, 큰 추세를 잡기 위해 일부 포지션을 유지하면서 일부 수익을 잠금 할 수 있으며, 단기 수익과 장기 수익의 필요성을 균형 잡습니다.

  6. 융통성 있는 입학제도트렌드 전환의 정의는 명확하고 측정 가능하며, 주관적인 판단을 피하고, 전략의 실행을 보다 일관적이고 규율적으로 만듭니다.

전략적 위험

이 전략은 많은 장점이 있지만, 몇 가지 잠재적인 위험과 한계가 있습니다.

  1. 과대 최적화 위험변수의 유연성은 양날의 칼이며, 과도한 최적화는 전략이 역사적 데이터에서 잘 작동하지만 미래 시장 환경에서 잘 작동하지 않을 수 있습니다. 해결책은 여러 시간 프레임과 시장 조건에서 재검토하고 변수를 간결하게 유지합니다.

  2. 수평 시장 성과: 명확한 트렌드가 없는 가로수지 시장에서, 전략은 빈번한 가짜 브레이크 신호를 생성할 수 있으며, 이로 인해 연속적인 정지 손실이 발생할 수 있다. 해결책은 시장 환경 필터를 추가하여 가로수지 시장을 식별할 때 거래를 줄이거나 중지하는 것이다.

  3. 슬라이드 포인트와 거래 비용실물 거래에서는 슬라이드 포인트와 거래 비용이 전략의 실제 성과에 크게 영향을 미칠 수 있습니다. 특히 유동성이 낮은 시장에서. 해결책은 이러한 요소를 재검토에 포함하고 시장 가격 대신 제한 가격표를 사용하는 것을 고려하는 것입니다.

  4. 비정상적인 변동의 위험: 주요 뉴스 사건이나 블랙 스 사건 동안, 시장이 ATR의 예상 범위를 초과하여 극한 변동이 발생할 수 있으며, 이로 인해 중지 효과가 사라집니다. 해결책은 최대 중지 금액을 추가 보호로 설정하는 것입니다.

  5. 역사적인 변동성에 의존합니다.ATR은 역사적인 데이터에 기초하여 계산되며, 시장의 변동성이 급격히 증가하면, 전략이 적시에 조정될 수 없습니다. 해결책은 지수 이동 평균의 ATR 버전을 사용하여 시장 변화에 더 빠르게 적응하는 것을 고려하는 것입니다.

전략 최적화 방향

코드의 심층적인 분석을 바탕으로, 이 전략은 다음과 같은 방향으로 최적화될 수 있다:

  1. 시장 환경 필터링: 트렌드 강도 지표 (ADX와 같은) 또는 변동성 지표 (VIX와 같은) 를 도입하여 거래 신호를 필터링하고 전략에 적합한 시장 환경에서만 거래하십시오. 이것은 다른 전략이 다른 시장 환경에서 다르게 작동하기 때문에 시장 환경 필터링을 통해 전략의 전반적인 성능을 향상시킬 수 있습니다.

  2. 동적 변수 조정: 감수성 배수와 ATR 주기를 최근 시장의 변동성에 따라 자동으로 조정할 수 있도록 변수 자조 메커니즘을 구현한다. 이것은 고정된 변수가 모든 시장 조건에 적응할 수 없는 경우가 많기 때문에, 동적 변수가 전략의 안정성을 높일 수 있기 때문이다.

  3. 수량 확인: 거래량 분석을 통합하여 트렌드 신호를 확인하고 거래량이 지원되는 경우에만 거래에 진입한다. 거래량은 가격 변화의 원동력이며 거래량 확인을 추가하면 가짜 신호를 줄일 수 있다.

  4. 이윤 창출 전략을 최적화더 복잡한 수익 전략을 사용하는 것을 고려하십시오. 동적 수익 목표 또는 변동성에 기반한 이동 손실을 사용하여 트렌드를 더 잘 잡을 수 있습니다. 고정된 배수의 수익 목표가 트렌드의 지속적인 잠재력을 충분히 활용하지 못할 수 있기 때문입니다.

  5. 시간 필터: 하루 시간 필터를 추가하여 시장이 열리거나 닫히거나 유동성이 낮은 시간에 거래하는 것을 피하십시오. 특정 시장 시간에는 더 큰 변동성이 있거나 유동성이 낮아 시간 필터를 사용하면 이러한 불리한 시간을 피할 수 있습니다.

  6. 통합 기술 모드: 기존의 지표 이외에, 차트 패턴 인식이 추가 확인 도구로 통합 될 수 있습니다. 기술 패턴은 종종 시장 참가자의 정신 상태를 나타냅니다. 추가 입문 확인을 제공 할 수 있습니다.

  7. 자금 관리 최적화: 역사적인 재검토 결과를 바탕으로 더 고급 자금 관리 알고리즘을 개발하고, 전략의 최근 성과에 따라 역동적으로 포지션 크기를 조정한다. 효과적인 자금 관리는 전체 수익을 높이고 회수량을 줄일 수 있다.

요약하다

다중 지표 동적 트렌드 연속 거래 전략은 RSI, CMO 및 ATR 기반의 동적 중단 장치를 결합하여 트렌드 전환점을 효과적으로 식별하고 거래 위험을 관리하는 잘 설계된 거래 시스템입니다. 그것의 핵심 장점은 여러 확인 장치, 적응력있는 중단 시스템 및 체계화된 위험 관리 방법입니다. 이 전략은 추세 시장에서 우수한 성능을 보이지만 수평 시장에서는 어려움을 겪을 수 있습니다.

이 전략은 특히 시장 환경 필터링, 동적 파라미터 조정 및 거래량 확인을 통해 제안된 방향의 최적화를 통해 안정성과 적응력을 더욱 향상시킬 수 있습니다. 트렌드 지속 기회를 식별하는 체계화된 방법을 찾는 거래자에게는 고려할 가치가있는 전략 프레임워크이며 특히 위험 관리에 중점을 두어 일관된 거래 결과를 추구하는 거래자에게 적합합니다.

궁극적으로, 이 전략을 성공적으로 적용하는 것은 코드 자체에 의존하는 것이 아니라, 거래자의 시장에 대한 이해, 위험 관리 훈련, 그리고 지속적인 최적화에 대한 약속에 달려 있습니다. 정량 분석과 거래의 지혜를 결합하면 이 전략은 거래자의 도구 상자에 강력한 무기가 될 수 있습니다.

전략 소스 코드
/*backtest
start: 2024-05-13 00:00:00
end: 2025-05-11 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"DOGE_USDT"}]
*/

//@version=5
strategy("Seekho roj kamao Strategy", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

// === INPUTS ===
src =  input(hl2, title="Source")
Multiplier = input.float(2,title="Sensitivity (0.5 - 5)", step=0.1, defval=2, minval=0.5, maxval=5)
atrPeriods = input.int(14,title="ATR Length", defval=10)
atrCalcMethod= input.string("Method 1",title = "ATR Calculation Methods",options = ["Method 1","Method 2"])
stopLossVal  = input.float(2.0, title="Stop Loss Percent (0 for Disabling)", minval=0)

// === CALCULATIONS ===
percent(nom, div) => 100 * nom / div

src1 = ta.hma(open, 5)[1] 
src2 = ta.hma(close, 12)
momm1 = ta.change(src1)
momm2 = ta.change(src2)
f1(m, n) => m >= n ? m : 0.0
f2(m, n) => m >= n ? 0.0 : -m
m1 = f1(momm1, momm2)
m2 = f2(momm1, momm2)
sm1 = math.sum(m1, 1)
sm2 = math.sum(m2, 1)
cmoCalc = percent(sm1-sm2, sm1+sm2)

hh = ta.highest(2)
h1 = ta.dev(hh, 2) ? na : hh
hpivot = fixnan(h1)
ll = ta.lowest(2)
l1 = ta.dev(ll, 2) ? na : ll
lpivot = fixnan(l1)

rsiCalc = ta.rsi(close,9)
lowPivot =  lpivot  
highPivot =  hpivot

sup = rsiCalc < 25 and cmoCalc > 50  and lowPivot
res = rsiCalc > 75 and cmoCalc < -50  and highPivot

atr2 = ta.sma(ta.tr, atrPeriods)
atr = atrCalcMethod == "Method 1" ? ta.atr(atrPeriods) : atr2

up = src - (Multiplier * atr)
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up
dn = src + (Multiplier * atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.min(dn, dn1) : dn

trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend

buySignal = trend == 1 and trend[1] == -1
sellSignal = trend == -1 and trend[1] == 1

// === STRATEGY LOGIC ===
longCond = buySignal
shortCond = sellSignal

sl = stopLossVal > 0 ? stopLossVal / 100 : 0.02  // default to 2% if 0
tp1 = sl
tp2 = sl * 2
tp3 = sl * 3

if (longCond)
    strategy.entry("Long", strategy.long)
    strategy.exit("TP1", from_entry="Long", stop=close * (1 - sl), limit=close * (1 + tp1))
    strategy.exit("TP2", from_entry="Long", stop=close * (1 - sl), limit=close * (1 + tp2))
    strategy.exit("TP3", from_entry="Long", stop=close * (1 - sl), limit=close * (1 + tp3))

if (shortCond)
    strategy.entry("Short", strategy.short)
    strategy.exit("TP1", from_entry="Short", stop=close * (1 + sl), limit=close * (1 - tp1))
    strategy.exit("TP2", from_entry="Short", stop=close * (1 + sl), limit=close * (1 - tp2))
    strategy.exit("TP3", from_entry="Short", stop=close * (1 + sl), limit=close * (1 - tp3))