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

Uhl MA를 기반으로 하는 적응형 이동 평균 크로스오버 전략

저자:차오장, 날짜: 2023-09-19 22:06:42
태그:

전반적인 설명

Uhl MA 시스템은 전통적인 MA 시스템의 결함을 극복하기 위해 설계된 적응형 이동 평균 크로스오버 시스템이다. 이 시스템은 빠른 이동 평균과 느린 이동 평균을 사용하여 거래 신호를 생성하며, 느린 MA는 안드레아스 울이 원래 제안한 수정된 MA (CMA) 이며 빠른 MA는 수정된 트렌드 단계 (CTS) 이다. 또한 수정된 MA를 기반으로합니다. 시스템은 더 신뢰할 수있는 거래 신호를 달성하기 위해 MA 매개 변수를 적응적으로 조정합니다.

원칙 분석

이 전략의 핵심은 Uhl MA와 CTS 라인의 계산에 있다. Uhl MA 라인은 전통적인 SMA에 대한 향상이며, 변동 (VAR) 및 역사적 제곱 편차 (SECMA) 를 사용하여 SMA와 이전 CMA 사이의 가중을 적응적으로 조정한다. VAR이 SECMA보다 작을 때 SMA에 더 많은 무게가 부여되며, 그렇지 않으면 CMA에 더 많은 무게가 부여된다. 이것은 약간의 소음을 필터링하고 더 부드러운 MA를 생성하는 데 도움이됩니다. CTS 라인은 SRC 가격에 기반한 유사한 적응 계산을 사용합니다.

크로스오버 논리는 전통적인 MA 시스템과 동일합니다. CTS가 Uhl MA 위에 넘어가면 구매 신호가 생성되고, 아래로 넘어가면 판매 신호가 생성됩니다. 이것은 적응적인 MA 거래 시스템을 형성합니다.

이점 분석

전통적인 MA 크로스오버 시스템과 비교하면 이 전략의 가장 큰 장점은 적응적 MAs의 사용이며, 이는 약간의 소음을 필터하고 범위 제한 시장에서 더 신뢰할 수있는 신호를 생성 할 수 있습니다. 적응적 크로스오버는 죽은 십자가와 황금 십자가에 비해 잘못된 신호를 감소시킵니다. 또한 빠르고 느린 MA 조합은 일부 트렌드 거래 기회를 잡을 수 있습니다. 백테스트 결과에서 우리는 명백한 트렌드를 가진 자산의 우수한 성능을 볼 수 있습니다.

위험 분석

이 전략의 주요 위험은 범위 시장에서 잘못된 신호가 증가하기 때문에 MAs는 본질적으로 추세를 따르는 지표입니다. 이것은 주로 CMA의 적응 계산으로 인해 통합에서 가격 범위로 회전하여 불필요한 신호를 생성합니다. 적절한 매개 변수 조정 또한 큰 도전입니다. 부적절한 매개 변수는 좋은 거래를 놓치고 잘못된 신호를 증가시킬 수 있습니다.

최적화 제안

잠재적인 최적화는 다음과 같습니다.

  1. 예를 들어 다른 지표를 사용하여 다양한 시장에서 동결을 피하기 위해 CMA 계산을 개선하십시오.

  2. 유전자 알고리즘과 같은 다변형 최적화 알고리즘을 통해 매개 변수를 최적화합니다.

  3. 단일 트레이드 손실을 통제하기 위해 스톱 로스를 도입합니다.

  4. 변동성 측정, RFM 지수 등과 같은 통합에서 과도한 거래를 피하기 위해 다른 지표를 사용하는 필터를 추가합니다.

  5. 포지션 사이즈, 위험 메트릭을 포함한 위험 관리를 최적화하여 전반적인 위험을 더 잘 제어합니다.

결론

Uhl MA 시스템은 매우 혁신적인 적응성 MA 크로스오버 전략이다. 전통적인 전략에 비해 역동적인 MA는 잘못된 신호를 줄이고 추세를 더 잘 파악하는 데 도움이 된다. 그러나 범위 시장에는 한계가 있다. 계산 방법론의 추가 개선과 필터를 추가하는 것은 큰 잠재력을 가지고 있다. 한편, 매개 변수 조정 및 위험 통제 또한 중요합니다. 전반적으로, Uhl MA 전략은 더 추가 탐색 가치가 좋은 잠재력과 연구 가치를 가지고 있다.

[/trans]


/*backtest
start: 2023-01-01 00:00:00
end: 2023-06-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © alexgrover

//@version=4
strategy("Uhl MA System - Strategy Analysis")
length = input(100),mult = input(1.),src = input(close)
//----
out = 0., cma = 0., cts = 0.
Var = variance(src,length)           ,sma = sma(src,length)
secma = pow(nz(sma - cma[1]),2)      ,sects = pow(nz(src - cts[1]),2) 
ka = Var < secma ? 1 - Var/secma : 0 ,kb = Var < sects ? 1 - Var/sects : 0
cma := ka*sma+(1-ka)*nz(cma[1],src)  ,cts := kb*src+(1-kb)*nz(cts[1],src)
//----
if crossover(cts,cma)
    strategy.entry("Buy", strategy.long)
if crossunder(cts,cma)
    strategy.entry("Sell", strategy.short)
//----
cap = 50000
eq = strategy.equity
rmax = 0.
rmax := max(eq,nz(rmax[1]))
//----
css = eq > cap ? #0cb51a : #e65100
a = plot(eq,"Equity",#2196f3,2,transp=0)
b = plot(rmax,"Maximum",css,2,transp=0)
fill(a,b,css,80)

더 많은