이중 이동 평균 트렌드 다음 전략은 두 개의 이동 평균을 사용하여 가격 트렌드를 결정하는 트렌드 다음 전략이다. 단기 및 장기 이동 평균이 같은 방향으로 정렬될 때 길고 짧은 신호를 생성한다. 단기 및 장기 트렌드가 일치할 때 입력하면 신뢰도가 증가한다.
이 전략은 트렌드 방향을 결정하기 위해 두 개의 이동 평균을 사용합니다. 논리는 다음과 같습니다.
짧은 기간 p1과 긴 기간 p2의 중간선을 계산합니다.
가격이 중간선 위에 있거나 아래에 있는지 결정하여 상하값을 생성합니다.
SMA를 사용하여 상승 및 하락 값을 매끄럽게 하여 트렌드 방향 트렌드와 trend_2를 결정합니다.
트렌드와 트렌드_2가 일치하면, 긴 신호나 짧은 신호를 생성합니다.
색으로 가득한 바는 시각적으로 추세를 나타냅니다.
단기 및 장기적인 트렌드가 일치할 때 거래를 합니다.
이중 이동 평균 비교는 핵심 논리를 만듭니다. 두 시간 프레임에서 트렌드 합의로 거래하면 잘못된 브레이크오웃이 감소합니다. 동의하는 트렌드는 높은 확신 움직임을 나타내고 엔트리에 대한 위험을 감소시킵니다.
이 전략의 주요 장점은 다음과 같습니다.
이중 이동 평균은 잘못된 파장을 줄이고 신뢰할 수 있는 입시 신호를 제공합니다.
두 개의 시간 프레임을 사용하는 것은 트렌드 결정에 더 나은 정확성을 제공합니다.
단기적 인 인기를 활용하면서 더 긴 트렌드를 포착합니다.
간단하고 이해하기 쉬운 논리 모든 거래자에게 적합합니다.
사용자 정의 가능한 이동 평균 기간은 모든 시장에 최적화를 허용합니다.
시각 바 컬러링은 직관적인 트렌드 방향을 제공합니다.
고려해야 할 몇 가지 위험:
잘못된 기간 설정은 과도한 위치 변경으로 인해 비용을 증가시킬 수 있습니다. 매개 변수를 최적화하거나 필터를 추가하십시오.
윙사 (Whipsaws) 는 시장이 이동 평균을 통해 변동할 때 발생합니다. 필터나 포지션 사이징 규칙을 추가합니다.
단기적 인 인퇴 를 놓칠 수 있다. 단기적 인 기간 이나 추가적 인 전략 을 고려 한다.
잘못된 스톱 로스 배치로 인해 트렌드가 갑자기 역전될 때 큰 손실이 발생할 수 있습니다.
근본적인 분석은 고려되지 않습니다. 신호를 적용 할 때 신중을 기하십시오.
전략을 개선할 수 있는 몇 가지 방법:
부피나 추진력 같은 추가 필터를 추가해서 윙사브를 피합니다.
시장 조건에 따라 적응하는 기간을 사용하십시오.
방향성을 위해 트렌드 강도에 기반한 위치 크기 규칙을 추가합니다.
손실을 제한하기 위해 후속 중지 또는 시간 출구와 같은 스톱 손실 모듈을 구현하십시오.
트렌드 정확성을 점수하고 입출동 논리를 개선하기 위해 기계 학습을 고려하십시오.
더 큰 트렌드에 대한 거래를 피하기 위해 수익, 이벤트와 같은 기본 요소를 포함합니다.
요약하자면, 이중 이동 평균 트렌드 다음 전략은 트렌드 식별에 대한 간단하고 실용적인 접근 방식을 제공합니다. 단기 및 장기적 관점을 결합함으로써 대부분의 트렌드 트레이더에 적합한 높은 신뢰성 입문 신호를 생성합니다. 위험은 존재하며 최적화, 위험 관리 및 재량으로 완화 될 수 있습니다. 전반적으로 이중 이동 평균 전략은 견고하고 고전적인 트렌드 다음 접근법으로 남아 있습니다.
/*backtest start: 2022-10-01 00:00:00 end: 2023-10-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 // My Tradingview Scripts : https://bit.ly/2HKtr7k strategy("UniDir Strategy", overlay=true, initial_capital=50000, default_qty_value=50000, default_qty_type=strategy.cash, slippage=3, commission_type=strategy.commission.percent, commission_value=0.075, pyramiding=0) p1=input(14) p2=input(21) Price = close mid = (highest(high, p1)+lowest(low, p1)) / 2 mid_2 = (highest(high, p2)+lowest(low, p2)) / 2 //Trend up = Price > mid ? 1 : 0 up_2 = Price > mid_2 ? 1 : 0 down = Price < mid ? 1 : 0 down_2 = Price < mid_2 ? 1 : 0 trend = sma(up, 2) == 1 ? 1 : sma(down, 2) == 1 ? -1 : nz(trend[1]) trend_2 = sma(up_2, 2) == 1 ? 1 : sma(down_2, 2) == 1 ? -1 : nz(trend_2[1]) dir1=trend==1 ? lime : red dir2=trend_2==1 ? lime : red dir_all=trend==1 and trend_2==1 ? lime : red top_p=plot(1) hi_p=plot(0.4) mid_p=plot(0.2) lo_p=plot(0) fill(hi_p,mid_p,color=dir1,transp=80) fill(lo_p,mid_p,color=dir2,transp=80) fill(top_p,hi_p,color=dir_all,transp=0) // Entry long_cond = trend==1 and trend_2==1 short_cond = trend==-1 and trend_2==-1 if long_cond strategy.entry("Long",strategy.long) if short_cond strategy.entry("Short",strategy.short)