4개의 기하급수적인 이동 평균과 볼륨 전략

저자:차오장, 날짜: 2023-10-09 15:05:47
태그:

전반적인 설명

이 전략은 다양한 매개 변수 설정과 EOM 볼륨 지표를 결합하여 여러 시간 프레임에 걸쳐 동향을 결정하고 장기 및 단기 판단을 모두 갖춘 거래 전략을 구축합니다. 그것은 더 장기적인 트렌드 패턴을 발견하기 위해 다른 기간 이동 평균의 멀티 타임 프레임 공명을 활용하는 것을 목표로합니다.

전략 논리

이 전략은 다른 기간 매개 변수인 13, 21, 50 및 180을 가진 4 개의 EMA 그룹을 사용합니다. 이 4 개의 EMA는 가격 추세를 결정하고 장기 트렌드 패턴을 밝히기 위해 여러 시간 차원을 설정합니다.

이 전략은 트렌드를 확인하기 위해 EOM 볼륨 지표를 사용합니다. EOM은 거래량과 가격 변동 범위를 결합하여 구매 및 판매 압력을 효과적으로 측정합니다. 전략은 EOM이 0보다 높을 때 긴 조건과 EOM이 0보다 낮을 때 짧은 조건을 결정합니다.

이 전략에는 두 가지 옵션이 있습니다. 옵션 1은 짧은 EMA가 더 긴 EMA를 넘을 때 길고 짧은 EMA가 더 긴 EMA를 넘을 때 길게 닫습니다. 옵션 2는 짧은 EMA가 중간 EMA를 넘을 때 길고 짧은 EMA가 중간 EMA를 넘을 때 길게 닫습니다. 두 가지 옵션은 더 포괄적인 트렌드 확인을 허용합니다.

장점

  • 트렌드를 결정하기 위해 멀티 타임프레임 EMA를 사용하면 장기적인 트렌드 패턴을 밝혀낼 수 있습니다.
  • EOM 부피 지표는 일시적 인 인하로 인한 잘못된 신호를 피하여 구매/판매 압력을 효과적으로 측정합니다.
  • 두 가지 선택적 입력 방법은 더 포괄적인 경향 확인을 가능하게 합니다.
  • 계층 출구로 확장하면 단일 출구 노출이 감소합니다.

위험성

  • EMA는 지연이 있고 빠른 반전을 놓칠 수 있습니다.
  • 부피 표시기가 잘못된 신호를 줄 수 있습니다.
  • 다중 조건 기준은 명확하지 않은 항목을 만듭니다.
  • 계층 출구는 너무 기계적일 수 있습니다.

더 나은 기회

  • 최적의 매개 변수를 찾기 위해 더 많은 EMA 기간 조합을 테스트합니다.
  • 진입 확인을 위해 MACD와 같은 다른 지표를 추가하십시오.
  • 동적인 트레일링 스톱 로스를 채택하여 트렌드를 따르십시오.
  • 시장 조건에 따라 포지션 크기를 조정

요약

이 전략은 트렌드 추적 및 노이즈 제거를 달성하기 위해 멀티 타임프레임 EMA 트렌드 결정 및 볼륨 지표 필터링을 통합합니다. 다른 매개 변수 조합을 테스트하고 견고성을 더욱 향상시키기 위해 더 많은 지표를 추가하여 최적화 할 수있는 많은 공간이 있습니다. 한편, 동적 스톱 로스 및 위치 사이징 또한 성능을 크게 최적화 할 수 있습니다.


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SoftKill21

//@version=4
strategy("4x ema + volume", overlay=true,initial_capital = 1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent , commission_value=0.1 )

//ema x 4
ema1l=input(13)
ema2l=input(21)
ema3l=input(50)
ema4l=input(180)

ema1=ema(close,ema1l)
ema2=ema(close,ema2l)
ema3=ema(close,ema3l)
ema4=ema(close,ema4l)

long1 = close > ema1 and ema1 > ema2 and ema2> ema3 and ema3 > ema4
long2 = crossover(ema1,ema2) and crossover(ema1,ema3)

short1 = close < ema1 and ema1 < ema2 and ema2< ema3 and ema3 < ema4
short2= crossunder(ema1,ema2) and crossunder(ema1,ema3)


//eom
length = input(14, minval=1)
div = input(10000, title="Divisor", minval=1)
eom = sma(div * change(hl2) * (high - low) / volume, length)


option1=input(true)
option2=input(false)

if(option1)
    strategy.entry("long",1,when=long1 and eom>0)
    strategy.close("long",when=short1 and eom<0)
 
if(option2)
    strategy.entry("long",1,when=long2 and eom>0)
    strategy.close("long",when=short2 and eom<0)   

더 많은