이중 봉투 EMA 시스템을 기반으로 한 적응형 트렌드 감지 전략

BULL BEAR EMA SMA RSI SIGNAL Trend
생성 날짜: 2025-02-18 15:06:49 마지막으로 수정됨: 2025-02-18 15:06:49
복사: 0 클릭수: 330
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

이중 봉투 EMA 시스템을 기반으로 한 적응형 트렌드 감지 전략

개요

이 전략은 이중 지수 이동 평균 (EMA) 에 기반한 혁신적인 트렌드 탐지 시스템입니다. 이 전략은 가격 움직임의 다차원적 특성을 분석하여 다공간 세력 대립을 실시간으로 계산하여 시장 추세의 변화와 지속성을 식별합니다. 이 전략의 가장 큰 특징은 시장 상황에 따라 신호 강도를 조정할 수 있는 자기 적응성입니다.

전략 원칙

전략의 핵심 원칙은 복잡한 EMA 포괄적 계산을 통해 시장의 공중 힘을 측정하는 것입니다. 구체적으로:

  1. 오픈 가격과 클로징 가격을 사용하여 다음 두 개의 EMA 연계 시스템을 구축합니다.
  2. 수학적으로 계산하여 다목력 (bull) 과 공수력 (bear) 지표를 얻습니다.
  3. 트렌드 확인을 위한 보조 지표로 신호선을 계산합니다.
  4. 다중원력이 공중원력을 초과할 때 다중원 신호를 생성하고, 반대로 공중원 신호를 생성한다

전략적 이점

  1. 자기 적응성 - 전략은 시장의 변동에 따라 민감도를 자동으로 조정할 수 있습니다.
  2. 신호 안정성 - 여러 지표를 통해 확인, 가짜 신호를 줄여
  3. 리스크 관리가 잘 되어 있습니다. 내장된 자금 관리 시스템으로 거래 당 사용된 자금 비율을 제한합니다.
  4. 시각화 효과 - 독립된 디스플레이 패널이 지표를 명확하게 표시합니다.
  5. 매개 변수 유연성 - 시장 특성에 따라 주기 매개 변수를 조정할 수 있습니다.

전략적 위험

  1. 트렌드 리버스 위험 - 급격한 변동 시장에서 신호 지연이 발생할 수 있습니다
  2. 자금 관리 위험 - 초기 자금과 거래 비율을 합리적으로 설정해야 합니다.
  3. 시장 적응성 위험 - 다른 시장 환경에 따라 변수를 조정해야 합니다.
  4. 기술 실현 위험 - 계산 과정의 안정성과 정확성을 보장해야 합니다.

전략 최적화 방향

  1. 시장 변동율 필터를 추가하여 높은 변동 동안 신호 감수성을 조정합니다.
  2. 보조 확인 시스템으로 통환량 지표 도입
  3. 자금 관리 시스템을 최적화하고, 동적 포지션 제어에 추가
  4. 트렌드 강도 필터를 증가시켜 신호 품질을 향상시킵니다.
  5. 적응형 매개변수 최적화 시스템 개발

요약하다

이것은 과학적인 계산 방법에 기반한 트렌드 추적 전략이며, 첨단 기술 지표 설계와 엄격한 위험 통제를 통해 시장 추세를 효과적으로 포착합니다. 전략의 핵심 장점은 합리적인 매개 변수 최적화 및 위험 관리로 다양한 시장 환경에서 안정적인 성능을 유지할 수 있는 자율성과 신뢰성입니다.

전략 소스 코드
/*backtest
start: 2024-02-19 00:00:00
end: 2024-11-14 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//  This work is licensed under a Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) 
//  https://creativecommons.org/licenses/by-nc-sa/4.0/
//  © alexgrover
//
//  Original post: 
//  https://alpaca.markets/learn/andean-oscillator-a-new-technical-indicator-based-on-an-online-algorithm-for-trend-analysis/

//@version=5
strategy(title="Andean Oscillator [Strategy]",
     shorttitle="AndeanOsc_Strategy",
     overlay=false,              // Zobraziť sa môže v samostatnom okne
     initial_capital=10000,      // Počiatočný kapitál
     default_qty_type=strategy.percent_of_equity,
     default_qty_value=100,      // Použiť 100% z účtu na jeden obchod
     pyramiding=0)               // Nenavyšovať pozície

//------------------------------------------------------------------------------
//Inputs
//------------------------------------------------------------------------------
length     = input.int(50, "Length")
sig_length = input.int(9, "Signal Length")

//------------------------------------------------------------------------------
//Výpočet Andean Oscillatora
//------------------------------------------------------------------------------
var float alpha = 2.0 / (length + 1)

// Premenné musia byť deklarované ako `var` pre zachovanie stavu
var float up1 = 0.
var float up2 = 0.
var float dn1 = 0.
var float dn2 = 0.

C = close
O = open

// Výpočet EMA obálok
up1 := nz(math.max(C, O, up1[1] - (up1[1] - C) * alpha), C)
up2 := nz(math.max(C * C, O * O, up2[1] - (up2[1] - C * C) * alpha), C * C)

dn1 := nz(math.min(C, O, dn1[1] + (C - dn1[1]) * alpha), C)
dn2 := nz(math.min(C * C, O * O, dn2[1] + (C * C - dn2[1]) * alpha), C * C)

// Býčia zložka a medvedia zložka
bull   = math.sqrt(dn2 - dn1 * dn1)
bear   = math.sqrt(up2 - up1 * up1)

// Signál = EMA z max(bull, bear)
signal = ta.ema(math.max(bull, bear), sig_length)

//------------------------------------------------------------------------------
//Jednoduchá LOGIKA STRATÉGIE (iba demonštrácia)
//------------------------------------------------------------------------------
// Príklad: 
// - Ak je bull > bear, vstúpime do long (býčia sila väčšia ako medvedia)
// - Ak je bear > bull, vstúpime do short (medvedia sila väčšia ako býčia)
//
// S pyramiding=0 sa otvorí vždy iba jedna pozícia – ak príde opačný signál, 
// TradingView zatvorí starú a otvorí novú.

if bull > bear
    strategy.entry("Long", strategy.long, comment="Bull > Bear")

if bear > bull
    strategy.entry("Short", strategy.short, comment="Bear > Bull")

//------------------------------------------------------------------------------
// Plotovanie (na posúdenie v samostatnom paneli)
//------------------------------------------------------------------------------
plot(bull,   "Bullish Component",  color=#089981)
plot(bear,   "Bearish Component",  color=#f23645)
plot(signal, "Signal",             color=#ff9800)