리소스 로딩... 로딩...

GM-8 & ADX 이중 이동 평균 전략

저자:차오장, 날짜: 2024-04-30 15:50:57
태그:ADXEMA

img

전반적인 설명

GM-8 & ADX 이중 이동 평균 전략은 여러 가지 기술적 지표를 결합한 양적 거래 전략이다. GM-8 지표, ADX 지표 및 두 번째 EMA 지표를 활용하여 잠재적 인 구매 및 판매 신호를 식별합니다. GM-8 지표는 가격 트렌드를 결정하는 데 사용되며, ADX 지표는 트렌드 강도를 확인하는 데 사용되며 두 번째 EMA 지표는 트렌드 방향을 결정하는 데 도움을줍니다. 가격이 GM-8 이동 평균을 넘어서 ADX 지표가 한 임계 이상에있을 때 구매 및 판매 신호가 생성됩니다. 이 전략의 장점은 여러 지표의 조합으로 신호의 신뢰성을 향상시킵니다. 그러나 잘못된 신호 및 지연과 같은 특정 위험이 있습니다. 전략 최적화 방향에는 매개 변수 최적화, 스톱 손실 및 수익 최적화 등이 포함됩니다. 전반적으로 GM-8 & ADX 이중 이동 평균은 비교적 성숙하고 추가적인 연구와 가치가있는 양적 거래 전략입니다.

전략 원칙

GM-8 & ADX 이중 이동 평균 전략의 원칙은 다음과 같습니다.

  1. 가격 추세를 결정하기 위해 GM-8 지표를 계산합니다. 종료 가격이 GM-8 이동 평균 이상/하위를 넘으면 잠재적인 트렌드 반전을 나타냅니다.
  2. 추세 강도를 확인하기 위해 ADX 지표를 계산합니다. ADX 지표가 한 임계치 (예: 34) 를 넘으면 현재 추세가 강하고 진입이 고려 될 수 있음을 나타냅니다.
  3. 트렌드 방향 결정에 도움이 되는 두 번째 EMA 지표를 계산한다. 가격이 두 번째 EMA보다 높을 때 상승세를 보이는 경향이 있고 그렇지 않으면 하락세를 보이는 경향이 있다.
  4. GM-8, ADX, 그리고 두 번째 EMA를 종합적으로 고려하여 구매 및 판매 신호를 생성합니다.
    • 긴 신호: 현재 종료 가격은 GM-8 이동 평균을 넘어서고 GM-8과 두 번째 EMA보다 높으며 ADX는 문턱을 넘습니다.
    • 짧은 신호: 현재 종료 가격은 GM-8 이동 평균 아래로 넘어가 GM-8과 두 번째 EMA보다 낮으며 ADX는 문턱을 넘습니다.
  5. 일단 입력되면 출구 신호가 나타나기 전까지 위치를 유지합니다.
    • 긴 신호를 닫습니다. 현재 종료 가격은 GM-8 이동 평균 아래를 넘어서 GM-8보다 낮습니다.
    • 마감 시그널: 현재 마감 가격은 GM-8 이동 평균보다 높고 GM-8보다 높습니다.

전략적 장점

  1. 신호 신뢰성을 향상시키기 위해 여러 지표를 결합합니다. 이 전략은 트렌드 지표 (GM-8) 와 트렌드 강도 지표 (ADX) 와 트렌드 방향 지표 (EMA) 를 포괄적으로 고려하여 일부 잘못된 신호를 효과적으로 필터링 할 수 있습니다.
  2. 높은 유연성을 위해 조정 가능한 매개 변수: GM-8 기간, ADX 기간, ADX 임계, 두 번째 EMA 기간 등과 같은 이 전략의 다양한 매개 변수는 시장 특성과 개인 선호도에 따라 다양한 거래 스타일에 적응할 수 있습니다.
  3. 명확한 논리 및 구현하기 쉬운: 이 전략의 거래 논리는 비교적 간단하고 직설적이며 이해하기 쉽고 구현하기 쉽고 초보자 양적 거래자가 배우고 사용하는 데 적합합니다.

전략 위험

  1. 트렌드 인식 후속: GM-8 및 다른 트렌드 기반 지표는 본질적으로 트렌드 인식 후속을 초래할 수 있으며 최적의 입점 지점 또는 손실 증가로 이어질 수 있습니다.
  2. 빈번한 거래: 이 전략은 비교적 빈번한 구매 및 판매 신호를 생성하여 빈번한 거래로 이어질 수 있으며 거래 비용을 증가시킬 수 있으며 범위 제한 시장에서 성적이 좋지 않을 수 있습니다.
  3. 매개 변수 선택의 어려움: 이 전략은 여러 매개 변수를 포함하고 최적의 매개 변수 조합을 찾는 것은 많은 백테스팅과 분석 작업을 필요로하며 초보자에게는 어려울 수 있습니다.

전략 최적화 방향

  1. 더 많은 필터링 조건을 도입: GM-8, ADX 및 EMA 외에도 신호 품질을 더욱 향상시키기 위해 거래량, 변동성 등 기타 보조 지표가 추가 될 수 있습니다.
  2. 진입 및 출출 시기를 최적화: 단일 거래 위험을 줄이고 전반적인 수익성을 향상시키기 위해 점진적 위치 구축 및 점진적 수익 취득 및 중단 손실 방법을 도입하는 것을 고려하십시오.
  3. 동적으로 매개 변수를 조정합니다. 시장 조건의 변화에 따라 동적으로 전략 매개 변수를 조정합니다. 예를 들어 트렌드 시장에서 더 긴 GM-8 기간과 범위 시장에서 더 짧은 GM-8 기간을 사용합니다.
  4. 포지션 관리 추가: 계좌 자본 상태 및 위험 선호도와 같은 요소를 기반으로 과도한 위험 집중을 피하기 위해 각 거래의 포지션 크기를 제어하십시오.

요약

GM-8 & ADX 이중 이동 평균 전략은 구매 및 판매 신호를 식별하기 위해 여러 기술적 지표를 결합한 고전적인 양적 거래 전략이다. 이 전략의 장점은 간단하고 명확한 논리, 비교적 신뢰할 수있는 신호, 그리고 초보자가 배우고 사용할 수 있는 적합성에 있다. 그러나, 그것은 또한 후진 트렌드 인식, 빈번한 거래, 매개 변수 선택의 어려움과 같은 위험을 지니고 있다. 전략의 성능을 더욱 향상시키기 위해 더 많은 필터링 조건을 도입하고, 입출시기를 최적화하고, 동적으로 매개 변수를 조정하고, 포지션 관리를 추가하는 등의 최적화 조치가 고려될 수 있다. 전반적으로, GM-8 & ADX 이중 이동 평균 전략은 양적 거래에 대한 좋은 기본 틀을 제공하며, 연습에서 지속적인 정교와 개선이 가치가 있다.


/*backtest
start: 2023-04-24 00:00:00
end: 2024-04-29 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("GM-8 and ADX Strategy with Second EMA", overlay=true)

// Input parameters
gm_period = input(15, title="GM-15 Period")
second_ema_period = input(59, title="Second EMA Period")
adx_period = input(8, title="ADX Period")
adx_threshold = input(34, title="ADX Threshold")
lot_size = input.float(0.4, title="Lot Size")

// Calculate the ADX manually
adx(high, low, close, length) =>
    sum_truerange = 0.0
    sum_plusDM = 0.0
    sum_minusDM = 0.0
    for i = 1 to length
        truerange_calc = high[i] - low[i]
        truerange_prev_close = high[i] - close[i-1]
        truerange_close = low[i] - close[i-1]
        truerange_calc := truerange_prev_close > truerange_calc ? truerange_prev_close : truerange_calc
        truerange_calc := truerange_close > truerange_calc ? truerange_close : truerange_calc
        sum_truerange := sum_truerange + truerange_calc
        plusDM = high[i] - high[i-1] > low[i-1] - low[i] and high[i] - high[i-1] > 0 ? high[i] - high[i-1] : 0
        sum_plusDM := sum_plusDM + plusDM
        minusDM = low[i-1] - low[i] > high[i] - high[i-1] and low[i-1] - low[i] > 0 ? low[i-1] - low[i] : 0
        sum_minusDM := sum_minusDM + minusDM
    plusDI = sum_plusDM / sum_truerange * 100
    minusDI = sum_minusDM / sum_truerange * 100
    sumDI = plusDI + minusDI
    adx_value = 100 * (plusDI - minusDI) / (sumDI == 0 ? 1 : sumDI)

// Calculate indicators
gm_8 = ta.sma(close, gm_period)
second_ema = ta.ema(close, second_ema_period)
adx_value = adx(high, low, close, adx_period)

// Define buy and sell conditions
buy_condition = ta.crossover(close, gm_8) and close > gm_8 and close > second_ema and adx_value > adx_threshold
sell_condition = ta.crossunder(close, gm_8) and close < gm_8 and close < second_ema and adx_value > adx_threshold

// Entry and exit logic
if (buy_condition)
    strategy.entry("Buy", strategy.long, qty=lot_size)

if (sell_condition)
    strategy.entry("Sell", strategy.short, qty=lot_size)

// Exit conditions
exit_buy_condition = ta.crossunder(close, gm_8) and close < gm_8
exit_sell_condition = ta.crossover(close, gm_8) and close > gm_8

if (exit_buy_condition)
    strategy.close("Buy")

if (exit_sell_condition)
    strategy.close("Sell")


관련

더 많은