적응형 가중치 추세 추종 전략(VIDYA 다중 지표 조합 시스템)

EMA CMO MA
생성 날짜: 2024-12-05 15:07:47 마지막으로 수정됨: 2024-12-05 15:07:47
복사: 0 클릭수: 404
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

적응형 가중치 추세 추종 전략(VIDYA 다중 지표 조합 시스템)

개요

이 전략은 VIDYA (변수 지수 동적 평균) 지표에 기반한 트렌드 추적 거래 시스템이다. 이 전략은 동적으로 조정하는 무게를 통해 시장의 변동에 적응하고, 더 정확한 트렌드 식별과 거래 신호를 생성하기 위해 氏 운동 지표 (CMO) 와 표준 차 (StDev) 두 가지 계산 방법을 결합한다. 시스템은 전통적인 이동 평균에 기반한 자기 적응 장치를 도입하여 시장 상황에 따라 자동으로 민감도를 조정할 수 있다.

전략 원칙

전략의 핵심은 VIDYA 지표이며, 계산 과정은 다음과 같은 몇 가지 중요한 단계를 포함합니다.

  1. 매개 변수 설정을 통해 기본 주기 (기본 21호기) 와 매끄러운 계수 alpha를 결정한다
  2. CMO 또는 StDev를 유동률 계산 방법으로 도입
  3. 동적 가중치 k값을 사용하여 가격 변화에 대한 VIDYA의 감수성을 조정합니다.
  4. VIDYA 라인이 위쪽으로 지나면 다중 신호가 발생하고 아래쪽으로 지나면 공백 신호가 발생

이 전략은 사용자가 CMO 또는 표준 차이가 변동률 계수를 계산하는 것을 선택할 수 있게 해 전략의 유연성을 증가시킨다. CMO 모드는 9주기를 고정적으로 사용하며, 표준 차이가 기본주기와 일치한다.

전략적 이점

  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!")