이중 이동 평균 크로스오버 전략

저자:차오장, 날짜: 2023-11-21 11:34:09
태그:

img

전반적인 설명

이중 이동 평균 크로스오버 전략은 트렌드를 따르는 전형적인 전략입니다. 그것은 서로 다른 기간의 두 이동 평균을 계산하고 트렌드의 방향과 동력을 파악하기 위해 트레이딩 신호로 크로스오버를 사용합니다.

전략 논리

이 전략은 주로 두 개의 이동 평균을 기반으로 한다. 첫 번째 이동 평균은 짧은 기간을 가지고 있으며 가격 변화에 더 빠르게 반응할 수 있다. 두 번째 이동 평균은 더 긴 기간을 가지고 있으며 약간의 소음을 필터링할 수 있다. 단기 이동 평균이 장기 이동 평균을 넘어서면 구매 신호로 간주된다. 단기 이동 평균이 장기 이동 평균을 넘어서면 판매 신호로 간주된다.

구체적으로,이 전략은 10 기간 기하급수적 이동 평균 (가격1) 및 20 기간 기하급수적 이동 평균 (가격2) 을 계산합니다. 현재 바의 오픈 및 클로즈 가격이 두 이동 평균보다 높으면 구매 신호가 생성됩니다. 오픈 및 클로즈 가격이 두 이동 평균보다 낮다면 판매 신호가 생성됩니다.

이 디자인은 트렌드가 형성되기 시작하면 더 일찍 진입하고 트렌드를 따라갈 수 있습니다. 트렌드가 역전되면 위험을 효과적으로 제어하기 위해 시장에서 일찍 빠져 나갈 수도 있습니다.

장점

  • 트렌드를 일찍 파악하고 강한 트렌드를 따라가십시오
  • 이중 MA 크로스오버 소음 필터
  • 오픈 및 클로즈 가격의 두 번 확인은 비효율적인 거래를 감소시킵니다.

위험성

  • 윙사와 역거래에 유연합니다.
  • 자주 교차 신호가 나타날 수 있습니다.
  • 큰 매개 변수 조정 공간은 과장 조정으로 이어질 수 있습니다

강화

  • 다양한 매개 변수 집합을 테스트하여 최적을 찾습니다.
  • 한계 손실 크기에 스톱 손실을 추가합니다
  • 나쁜 트레이드를 줄이기 위해 필터를 추가합니다
  • 신호를 확인하기 위해 다른 지표를 조합합니다.

요약

이 전략은 비교적 간단하고 실용적이며, 듀얼 MA 크로스오버로 트렌드를 포착하여 근본적인 양성 전략으로 만들어집니다. 그러나 다른 시장 체제에 대한 몇 가지 위험이 있으며 추가 최적화가 필요합니다. 더 견고하게 만들기 위해 매개 변수, 정지, 필터 등을 향상시킬 여지가 있습니다.


/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//study(title="MA River CC v1", overlay = true)
strategy("MA River CC v1", overlay=true)
src = input(close, title="Source")

price = request.security(syminfo.tickerid, timeframe.period, src)
ma1 = input(10, title="1st MA Length")
type1 = input("EMA", "1st MA Type", options=["SMA", "EMA"])

ma2 = input(20, title="2nd MA Length")
type2 = input("EMA", "2nd MA Type", options=["SMA", "EMA"])

price1 = if (type1 == "SMA")
    sma(price, ma1)
else
    ema(price, ma1)
    
price2 = if (type2 == "SMA")
    sma(price, ma2)
else
    ema(price, ma2)


//plot(series=price, style=line,  title="Price", color=black, linewidth=1, transp=0)
plot(series=price1, style=line,  title="1st MA", color=blue, linewidth=2, transp=0)
plot(series=price2, style=line, title="2nd MA", color=green, linewidth=2, transp=0)


buy_entry = (open>price1 and open>price2) and (close>price1 and close>price2)  
sell_entry = (open<price1 and open<price2) and (close<price1 and close<price2)
buy_close = sell_entry
sell_close = buy_entry
//longCondition = crossover(price1, price2)    
if(buy_entry)
    strategy.entry("Long", strategy.long)
    
if(sell_entry)
    strategy.entry("Short", strategy.short)

strategy.close("Long" , when=buy_close)
strategy.close("Short",when=sell_close)



더 많은