리소스 로딩... 로딩...

전략에 따른 적응형 가중 추세 (VIDYA 다중 지표 시스템)

저자:차오장, 날짜: 2024-12-05 15:07:47
태그:EMACMOMA

img

전반적인 설명

이 전략은 VIDYA (변수 지수 동적 평균) 지표에 기반한 트렌드 다음 거래 시스템이다. 이 전략은 더 정확한 트렌드 식별 및 거래 신호 생성을 달성하기 위해 Chande의 모멘텀 오시레일러 (CMO) 및 표준 편차 (StDev) 계산 방법을 결합하여 가중을 동적으로 조정하여 시장 변동성에 적응합니다. 시스템은 전통적인 이동 평균 위에 적응 메커니즘을 도입하여 시장 조건에 따라 민감도를 자동으로 조정합니다.

전략 원칙

전략의 핵심은 VIDYA 지표입니다. 계산 과정에는 다음의 주요 단계가 포함됩니다.

  1. 기본 기간 (디폴트 21) 및 완화 계수 알파를 설정
  2. 변동성 계산 방법으로 CMO 또는 StDev을 포함함
  3. 가격 변화에 대한 VIDYA의 감수성을 조정하기 위해 동적 무게 k를 사용
  4. VIDYA가 상향을 넘을 때 긴 신호를 생성하고 아래로 넘을 때 짧은 신호를 생성합니다.

이 전략은 사용자들이 변동성 계수 계산을 위해 CMO 또는 표준 편차를 선택할 수 있도록 해 유연성을 높인다. CMO 모드는 고정된 9주기 주기를 사용하지만 StDev 모드는 기본 기간과 일관성을 유지한다.

전략적 장점

  1. 강한 적응력: 동적 무게 조정으로 다른 시장 환경에서 좋은 성능을 유지
  2. 안정적 신호: 전통적인 이동 평균에 비해 잘못된 신호를 더 잘 필터합니다.
  3. 조정 가능한 매개 변수: 다양한 시장 특성에 따라 최적화를 위해 여러 개의 조정 가능한 매개 변수를 제공합니다.
  4. 이중 계산 방법: CMO와 StDev 변동성 계산을 지원하여 전략 적응성을 높입니다.
  5. 사용자 친화적: 명확한 전략 논리와 확실한 신호, 실용적인 조작에 편리합니다.

전략 위험

  1. 트렌드 의존성: 변동 시장에서 빈번한 잘못된 신호를 생성 할 수 있습니다.
  2. 매개 변수 민감도: 다른 매개 변수 조합이 전략 성과에 상당한 영향을 미칩니다.
  3. 지연: 이동 평균 유형 지표로서 고유 지연이 존재합니다.
  4. 시장 적응력: 특정 특정 시장 환경에서 실적이 떨어질 수 있습니다.
  5. 금전 관리: 손해를 막는 메커니즘의 부재는 상당한 인출을 초래할 수 있습니다.

전략 최적화 방향

  1. 변동성 필터를 도입: 높은 변동성 환경에서 신호 생성 규칙을 조정
  2. 트렌드 확인 지표 추가: 신호 신뢰성을 향상시키기 위해 다른 기술 지표와 결합
  3. 자금 관리 개선: 동적 스톱 로스 및 포지션 관리 메커니즘 설계
  4. 매개 변수 선택 최적화: 다른 시장 주기에 대한 자동 매개 변수 최적화 방법을 개발
  5. 시장 환경 평가 강화: 시장 조건에 따라 전략 매개 변수를 동적으로 조정

요약

VIDYA 전략은 혁신적인 적응형 무게 메커니즘을 통해 비교적 신뢰할 수있는 트렌드 다음 솔루션을 제공합니다. 단순성과 사용 편의성을 유지하면서 전략은 동적 조정으로 시장 변화에 적응력을 향상시킵니다. 일부 고유 한 제한이 있음에도 불구하고 제공된 최적화 방향은 전략 안정성과 신뢰성을 더욱 향상시킬 수 있습니다. 이중 계산 방법은 다른 시장 환경에서 적용을위한 더 큰 유연성을 제공합니다.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-04 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © GriffinJames


//@version=5
strategy("VIDYA Strategy", overlay=true, initial_capital=25000)

// Inputs
src = input(close, title="Source")
pds = input.int(21, title="Length")
fixCMO = input.bool(true, title="Fixed CMO Length (9)?")
select = input.bool(true, title="Calculation Method: CMO/StDev?")
alpha = 2 / (pds + 1)
momm = ta.change(src)

// Functions to calculate MOM
f1(m) => m >= 0.0 ? m : 0.0
f2(m) => m >= 0.0 ? 0.0 : -m

m1 = f1(momm)
m2 = f2(momm)
sm1 = fixCMO ? math.sum(m1, 9) : math.sum(m1, pds)
sm2 = fixCMO ? math.sum(m2, 9) : math.sum(m2, pds)

percent(nom, div) => 100 * nom / div
chandeMO = na(percent(sm1 - sm2, sm1 + sm2)) ? 0 : percent(sm1 - sm2, sm1 + sm2)

// Select calculation method
k = select ? math.abs(chandeMO) / 100 : ta.stdev(src, pds)

// Calculate VIDYA
var float VIDYA = na
VIDYA := na(VIDYA[1]) ? src : alpha * k * src + (1 - alpha * k) * VIDYA[1]

// Conditions for long and short
col12 = VIDYA > VIDYA[1]
col32 = VIDYA < VIDYA[1]

// Plot VIDYA with dynamic colors
color2 = col12 ? color.new(color.blue, 0) : col32 ? color.new(color.maroon, 0) : color.new(color.blue, 0)
plot(VIDYA, "VAR", color=color2, linewidth=2)

// Long and Short Strategy
if (col12)
    strategy.entry("Go Long", strategy.long)
if (col32)
    strategy.entry("Go Short", strategy.short)

// Alert for VIDYA color change
alertcondition(ta.cross(VIDYA, VIDYA[1]), title="Color ALARM!", message="VIDYA has changed color!")


관련

더 많은