이 전략은 빠른 이동 평균과 느린 이동 평균의 교차를 기반으로 한 간단한 거래 전략이다. 그것은 이동 평균의 금색 사각지대를 사용하여 구매 및 판매 신호를 발산한다. 빠른 이동 평균 상에서 느린 이동 평균을 통과 할 때, 더 많은 것을하고, 빠른 이동 평균 아래에서 느린 이동 평균을 통과 할 때, 공백을 만든다. 이 전략은 다른 주기 이동 평균 사이의 교차를 사용하여 가격 경향의 전환점을 포착하여 주식 거래를 구현하는 것을 목표로 한다.
이 전략은 주로 빠른 엑스포네이셔얼 모빙 어드레즈 (EMA) 와 느린 심플 모빙 어드레즈 (SMA) 의 교차를 거래 신호로 사용한다. 먼저 빠른 EMA와 느린 SMA를 계산하고, 빠른 EMA 주기를 13로 설정하고, 느린 SMA 주기를 30으로 설정한다. 그 다음, 빠른 EMA 상에서 느린 SMA를 통과할 때, 멀티 신호를 발송한다. 빠른 EMA 아래에서 느린 SMA를 통과할 때, 빈 신호를 발송한다.
구체적으로, 전략은 maFast과 maSlow 변수를 통해 빠른 EMA와 느린 SMA를 계산한다. 그 다음, 그것은 구매와 판매의 시간을 판단하기 위해 enterLong과 exitLong 변수를 정의한다. maFast> maSlow, 즉 빠른 EMA 위에 느린 SMA를 통과하면, enterLong=true를 설정하고, 멀티 신호를 발송한다.
이렇게, 단기 가격 상승 추세가 장기 추세보다 강할 때, 빠른 EMA는 상향으로 서서히 SMA를 통과하여 구매 신호를 생성한다. 단기 가격 하향 추세가 장기 추세보다 강할 때, 빠른 EMA는 상향으로 서서히 SMA를 통과하여 판매 신호를 생성한다. 다른 주기 가격 추세의 전환을 포착하여 상대적으로 낮은 시점에 구매하고 상대적으로 높은 시점에 판매 할 수 있다.
이 이동 평균 크로스 전략은 다음과 같은 장점이 있습니다.
간단하고, 이해하기 쉽고, 구현하기 쉽다. 이동 평균은 일반적으로 사용되는 효과적인 기술 지표이며, 그 교차 원칙은 간단하고 직관적입니다. 이것은 전략이 거래자가 이해하기 쉽고 적용되도록합니다.
유연성이 높으며, 사용자 정의 가능한 매개 변수. 전략은 빠른 EMA와 느린 SMA의 주기 수를 사용자 정의 할 수 있으며, 다른 시장에 따라 매개 변수를 조정하여 전략의 적응성을 향상시킬 수 있습니다.
신뢰할 수 있는 거래 신호. 이동 평균은 시장 소음을 효과적으로 필터링 할 수 있으며, 그것의 교차는 비교적 신뢰할 수있는 거래 신호를 생성 할 수 있습니다.
다른 시장 환경에 적용한다. 이 전략은 트렌드 시장과 정리 시장에 적용되며, 매개 변수를 조정함으로써 다른 상황에 적응할 수 있다.
다른 지표 조합과 쉽게 사용할 수 있다. 이동 평균 교차 전략은 RSI와 같은 다른 기술 지표와 더 강력한 전략을 형성하기 위해 유연하게 결합 할 수 있다.
이 전략에는 몇 가지 위험도 있습니다.
더 많은 산발적인 신호를 생성한다. 시장의 추세가 불명확할 때, 이동 평균은 여러 번 교차할 수 있으며, 이는 자주 구매 신호를 발생시키고 거래 비용을 증가시키고 점유 지점을 잃게 한다.
흔들리는 시장에서 쉽게 갇힐 수 있다. 시장이 회수 흔들리는 상태일 때, 이동 평균은 불확실한 교차 신호가 더 많이 나타날 수 있으며, 가짜 거래 신호를 유발할 수 있다.
매개 변수 선택의 어려움. 이동 평균 주기 매개 변수의 선택은 전략 효과에 큰 영향을 미치며, 최적 매개 변수를 선택하는 방법은 많은 반복 테스트를 필요로 한다.
신호가 지연된다. 이동 평균 자체는 지연성이 있기 때문에 교차 신호가 늦어지는 경우가 많으며, 최적의 진입 시기를 놓칠 수도 있다.
손해 중지 전략은 완벽하지 않다. 이 전략은 손해 중지 논리가 없으며, 더 큰 손실을 초래할 수 있다.
이 이동 평균 교차 전략은 다음의 몇 가지 측면에서 최적화 될 수 있습니다:
RSI와 같은 다른 기술 지표 필터 신호를 추가하면 가짜 신호를 줄일 수 있습니다. RSI가 높을 때 더 많이하지 않고, RSI가 낮을 때 공백을 두지 않습니다.
복합 이동 평균을 추가하여 3개 이상의 다른 기간의 이동 평균을 사용하여 신호를 확인 할 수 있습니다. 예를 들어 50 일선에 가입하면 다중 시장에서 단기간에 중장기간에 중장기간에 중장기간에 중장기간에 착용합니다.
패러블 라인 SAR와 같은 손실을 막는 전략을 추가하면 위험을 제시간으로 차단할 수 있다. 또한 시장의 변동률에 따라 적응하는 이동적 손실을 설정할 수 있다.
최적화 매개 변수, 워크 포워드 분석 및 머신 러닝과 같은 방법을 사용하여 매개 변수를 최적화하여 다른 시장 환경에 더 적합하게 만듭니다.
시간표 조작, K선 개체 방향 등 형태 판단을 추가하면 신호 품질을 향상시키고 불필요한 역전 포지션을 줄일 수 있다.
거래량과 같은 양력 지표가 결합되면 가짜 돌파구를 피할 수 있다. 양력 확인은 신호를 더 신뢰할 수 있다.
이동 평균 횡단 전략은 간단하면서도 실용적인 양적 거래 전략이다. 그것은 빠른 EMA와 느린 SMA의 횡단을 사용하여 거래 신호를 생성한다. 이 전략은 구현하기 쉽고, 다른 기술 지표와 함께 쉽게 사용할 수 있다. 그러나, 그것은 또한 빈번한 거래, 흔들리는 시장에서 쉽게 잡힐 수 있는 등의 몇 가지 단점도 있다. 몇 가지 매개 변수와 규칙을 최적화하면 이 전략의 실용성과 수익성을 향상시킬 수 있다.
/*backtest
start: 2023-08-26 00:00:00
end: 2023-09-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title="Moving Average Cross EMA SMA", overlay=true, initial_capital=10000, currency='USD',default_qty_type=strategy.percent_of_equity,default_qty_value=100)
// Based on strategy by lsills @ https://www.tradingview.com/script/oI8loEZ8-Moving-Average-Cross-Strategy/
// Strategy has several logic alternatives - comment out the undesired logic sections below, only 1 logic section can be active
// === GENERAL INPUTS ===
// short Ema
maFastSource = input(defval = close, title = "Fast EMA Source")
maFastLength = input(defval = 13, title = "Fast EMA Period", minval = 1)
// long Sma
maSlowSource = input(defval = close, title = "Slow SMA Source")
maSlowLength = input(defval = 30, title = "Slow SMA Period", minval = 1)
// longer Sma
maSlowerSource = input(defval = close, title = "Slower SMA Source")
maSlowerLength = input(defval = 30, title = "Slower SMA Period", minval = 1)
// === SERIES SETUP ===
/// a couple of ma's..
maFast = ema(maFastSource, maFastLength)
maSlow = sma(maSlowSource, maSlowLength)
maSlower = vwma(maSlowerSource, maSlowerLength)
rsi = rsi(maSlowerSource, maSlowerLength)
// === PLOTTING ===
fast = plot(maFast, title = "Fast MA", color = red, linewidth = 2, style = line, transp = 30)
slow = plot(maSlow, title = "Slow MA", color = green, linewidth = 2, style = line, transp = 30)
slower = plot(maSlower, title = "Slower MA", color = teal, linewidth = 2, style = line, transp = 30)
// === LOGIC === Basic - simply switches from long to short and vice-versa with each fast-slow MA cross
enterLong = maFast> maSlow
exitLong = maSlow> maFast
// === LOGIC === Complex 1 - switches from long to short and vice-versa with each fast-slow MA cross but additional conditions must be met
//enterLong = variance(maFast,maSlowLength) < 0.6 and close[0] > maFast and crossover(maFast, maSlow) and 1.1* maSlow > maSlower and rsi>rsi[2]
//exitLong = variance(maFast,maSlowLength) < 0.6 and close[0] < maSlow and crossover(maSlow, maFast) and maSlow/1.1 < maSlower and rsi<rsi[2]
// === LOGIC === Complex 2- switches from long to short and vice-versa with each fast-slow MA cross but additional conditions must be met
//enterLong = maFast> maSlow and 1.1* maSlow > maSlower and rsi>rsi[1] and close > close[3] //and close > close[2]
//exitLong = maSlow> maFast and maSlow/1.1 < maSlower and rsi<rsi[1] and close < close[3] // and close < close[2]
// Entry //
strategy.entry(id="Long Entry", long=true, when=enterLong)
strategy.entry(id="Short Entry", long=false, when=exitLong)
// === FILL ====
fill(fast, slow, color = maFast > maSlow ? green : red)