이중 이동 평균선 트렌드 추적 전략은 가격의 이중 지수 이동 평균을 계산하여 빠른 선과 느린 선을 형성하고 두 선의 교차 형태에 따라 가격 경향을 판단하여 트렌드 추적 거래를 구현한다. 이 전략은 트렌드 추적을 기반으로 한 정량 거래 전략에 속한다.
이 전략은 먼저 가격의 쌍 지수 이동 평균을 계산합니다. 빠른 선과 느린 선이 포함됩니다. 빠른 선의 파라미터는 4주기이고 느린 선의 파라미터는 8주기입니다. 두 선이 교차하면 구매 및 판매 신호가 발생합니다. 빠른 선이 아래에서 느린 선을 통과하면 구매 신호가 발생하며, 빠른 선이 위에서 아래에서 느린 선을 통과하면 판매 신호가 발생합니다.
이 전략은 첫째, 가격 추세에 따라 거래할 수 있으며, 트랜잭션 비용을 피할 수 있다. 둘째, 이중 이동평균선은 가격의 일부 잡음을 필터링하여 가격 추세를 원활하게 파악할 수 있다. 둘째, 이 전략의 파라미터는 최적화 유연하며, 이동평균선 주기 및 MACD 파라미터는 다양한 품종과 파라미터에 맞게 조정할 수 있다. 마지막으로, 전략 논리는 간단하고 명확하며, 이해하기 쉽고 구현할 수 있으며, 거래량을 측정하는 알고리즘 설계에 적합하다.
이 전략은 파라미터 최적화에 의존하며, 만약 파라미터가 적절하게 설정되지 않는다면, 많은 잘못된 신호를 생성할 것이다. 게다가, 쌍 이동 평균선은 지연성이 있으며, 가격 전환 지점을 놓칠 수 있다. 게다가, 트렌드 거래는 상승을 추격하고 하락을 죽이는 패턴을 형성하기 쉽다. 또한, 거래 품종의 유동성과 수수료는 전략 수익에도 영향을 미칩니다. 위험을 줄이기 위해, 적절한 최적화를 통해, 다른 지표와 결합하여 포지션 크기를 제어할 수 있다.
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
이진 이동 평균의 주기 변수를 최적화하여 최적의 변수 조합을 찾습니다.
RSI, KD 등과 같은 다른 지표 필터 신호를 추가하여 신호 품질을 향상시킵니다.
트렌드 반전 시 적시에 손실을 막는 전략을 강화합니다.
시장 상황에 따라 역동적으로 포지션 크기를 조정하고 위험을 통제합니다.
다른 거래 품종의 매개 변수에 대해 최적화
기계 학습과 같은 고급 전략과 결합하여 전략 효과를 향상시킵니다.
이 전략은 전체적으로 두 개의 이동평균선을 기반으로 한 간단한 트렌드 추적 전략이다. 전략의 아이디어는 명확하고, 구현하기 쉽고, 변수를 조정하는 유연하며, 양적 거래의 입문 전략으로 적합하다. 그러나 이 전략에는 추격 하락, 신호 지연 등의 문제가 있으며, 위험을 제어하고 안정성을 높이기 위해 추가 최적화가 필요합니다.
/*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")