이중 이동 평균 추세 추종 전략


생성 날짜: 2023-11-14 16:56:21 마지막으로 수정됨: 2023-11-14 16:56:21
복사: 0 클릭수: 384
1
집중하다
1166
수행원

이중 이동 평균 추세 추종 전략

개요

이중 이동 평균선 트렌드 추적 전략은 가격의 이중 지수 이동 평균을 계산하여 빠른 선과 느린 선을 형성하고 두 선의 교차 형태에 따라 가격 경향을 판단하여 트렌드 추적 거래를 구현한다. 이 전략은 트렌드 추적을 기반으로 한 정량 거래 전략에 속한다.

전략 원칙

이 전략은 먼저 가격의 쌍 지수 이동 평균을 계산합니다. 빠른 선과 느린 선이 포함됩니다. 빠른 선의 파라미터는 4주기이고 느린 선의 파라미터는 8주기입니다. 두 선이 교차하면 구매 및 판매 신호가 발생합니다. 빠른 선이 아래에서 느린 선을 통과하면 구매 신호가 발생하며, 빠른 선이 위에서 아래에서 느린 선을 통과하면 판매 신호가 발생합니다.

우위 분석

이 전략은 첫째, 가격 추세에 따라 거래할 수 있으며, 트랜잭션 비용을 피할 수 있다. 둘째, 이중 이동평균선은 가격의 일부 잡음을 필터링하여 가격 추세를 원활하게 파악할 수 있다. 둘째, 이 전략의 파라미터는 최적화 유연하며, 이동평균선 주기 및 MACD 파라미터는 다양한 품종과 파라미터에 맞게 조정할 수 있다. 마지막으로, 전략 논리는 간단하고 명확하며, 이해하기 쉽고 구현할 수 있으며, 거래량을 측정하는 알고리즘 설계에 적합하다.

위험 분석

이 전략은 파라미터 최적화에 의존하며, 만약 파라미터가 적절하게 설정되지 않는다면, 많은 잘못된 신호를 생성할 것이다. 게다가, 쌍 이동 평균선은 지연성이 있으며, 가격 전환 지점을 놓칠 수 있다. 게다가, 트렌드 거래는 상승을 추격하고 하락을 죽이는 패턴을 형성하기 쉽다. 또한, 거래 품종의 유동성과 수수료는 전략 수익에도 영향을 미칩니다. 위험을 줄이기 위해, 적절한 최적화를 통해, 다른 지표와 결합하여 포지션 크기를 제어할 수 있다.

최적화 방향

이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.

  1. 이진 이동 평균의 주기 변수를 최적화하여 최적의 변수 조합을 찾습니다.

  2. RSI, KD 등과 같은 다른 지표 필터 신호를 추가하여 신호 품질을 향상시킵니다.

  3. 트렌드 반전 시 적시에 손실을 막는 전략을 강화합니다.

  4. 시장 상황에 따라 역동적으로 포지션 크기를 조정하고 위험을 통제합니다.

  5. 다른 거래 품종의 매개 변수에 대해 최적화

  6. 기계 학습과 같은 고급 전략과 결합하여 전략 효과를 향상시킵니다.

요약하다

이 전략은 전체적으로 두 개의 이동평균선을 기반으로 한 간단한 트렌드 추적 전략이다. 전략의 아이디어는 명확하고, 구현하기 쉽고, 변수를 조정하는 유연하며, 양적 거래의 입문 전략으로 적합하다. 그러나 이 전략에는 추격 하락, 신호 지연 등의 문제가 있으며, 위험을 제어하고 안정성을 높이기 위해 추가 최적화가 필요합니다.

전략 소스 코드
/*backtest
start: 2023-10-14 00:00:00
end: 2023-11-13 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 12/11/2017
// The SMI Ergodic Indicator is the same as the True Strength Index (TSI) developed by 
// William Blau, except the SMI includes a signal line. The SMI uses double moving averages 
// of price minus previous price over 2 time frames. The signal line, which is an EMA of the 
// SMI, is plotted to help trigger trading signals. Adjustable guides are also given to fine 
// tune these signals. The user may change the input (close), method (EMA), period lengths 
// and guide values.
// You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect...
//
// WARNING:
// - For purpose educate only
////////////////////////////////////////////////////////////
strategy(title="SMI Ergodic Oscillator")
fastPeriod = input(4, minval=1)
slowPeriod = input(8, minval=1)
SmthLen = input(3, minval=1)
TopBand = input(0.5, step=0.1)
LowBand = input(-0.5, step=0.1)
reverse = input(false, title="Trade reverse")
// hline(0, color=gray, linestyle=dashed)
// hline(TopBand, color=red, linestyle=line)
// hline(LowBand, color=green, linestyle=line)
xPrice = close
xPrice1 = xPrice - xPrice[1]
xPrice2 = abs(xPrice - xPrice[1])
xSMA_R = ema(ema(xPrice1,fastPeriod),slowPeriod)
xSMA_aR = ema(ema(xPrice2, fastPeriod),slowPeriod)
xSMI = xSMA_R / xSMA_aR
xEMA_SMI = ema(xSMI, SmthLen)
pos = iff(xEMA_SMI < xSMI, -1,
	   iff(xEMA_SMI > xSMI, 1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )  
plot(xSMI, color=green, title="Ergotic SMI")
plot(xEMA_SMI, color=red, title="SigLin")