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

슈퍼트렌드와 EMA의 크로스오버 양적 거래 전략

저자:차오장, 날짜: 2024-07-31 14:43:38
태그:STEMAATR

img

전반적인 설명

이 문서에서는 슈퍼트렌드 지표와 기하급수적인 이동 평균 (EMA) 크로스오버를 기반으로 한 양적 거래 전략을 소개합니다. 이 전략은 트렌드 다음과 이동 평균 크로스오버의 장점을 결합하여 시장 트렌드를 파악하고 트렌드 역전 시 거래를 수행하는 것을 목표로합니다. 이 전략은 44 기간 EMA를 입점 및 출구 포인트의 기준으로 사용하여 전반적인 트렌드 방향을 식별하기 위해 슈퍼트렌드 지표를 사용합니다. 1%의 수익 취득 및 손실 중지 수준을 설정함으로써 전략은 위험과 수익에 대한 잠금을 효과적으로 제어합니다.

전략 원칙

  1. 슈퍼트렌드 지표 계산:

    • 슈퍼트렌드를 계산하기 위해 10페리오드 ATR (평균 진실 범위) 와 3.0의 인수를 사용합니다.
    • 슈퍼트렌드 방향은 전체 트렌드를 결정하는 데 사용됩니다 (상승 트렌드에 긍정적, 하락 트렌드에 부정적인).
  2. 44주기 EMA 계산:

    • 지수적인 이동 평균을 계산하는데 44개의 종료 가격 기간을 이용합니다.
  3. 입국 조건:

    • 롱 엔트리: 44 EMA와 슈퍼트렌드 방향 이상의 가격 경로를 넘어서면 긍정적입니다.
    • 쇼트 엔트리: 44 EMA 아래로 넘어가는 가격, 슈퍼트렌드 방향은 음수입니다.
  4. 출입 조건:

    • 사용strategy.exit1%의 수익을 취하고 1%의 스톱 로스를 설정하는 함수입니다.
    • 장기: 입시 가격의 101%에서 수익을 취하고, 입시 가격의 99%에서 손해를 중지합니다.
    • 짧게는: 입시 가격의 99%에서 수익을 취하고, 입시 가격의 101%에서 손해를 멈추십시오.
  5. 위치 관리:

    • 최대 포지션 크기를 1로 제한하기 위해 strategy.risk.max_position_size(1) 를 사용합니다.

전략적 장점

  1. 트렌드 추종 및 이동 평균 크로스오버의 조합:

    • 슈퍼트렌드는 전체적인 트렌드 방향을 제시하고, 트렌드 반대 트레이드를 줄입니다.
    • EMA 크로스오버는 더 정확한 입시 시기를 제공하며 거래 성공률을 향상시킵니다.
  2. 위험 관리:

    • 일정한 비율로 수익을 취하고 손해를 멈추는 것은 각 거래에 대한 위험을 효과적으로 제어합니다.
    • 최대 포지션 크기의 제한은 과도한 레버리지를 방지합니다.
  3. 높은 적응력:

    • 슈퍼트렌드 및 EMA 매개 변수를 조정하여 다른 시장과 시간 프레임에 적응 할 수 있습니다.
  4. 자동 거래:

    • 전략은 트레이딩뷰 플랫폼에서 자동으로 실행될 수 있어 수동 개입을 줄일 수 있습니다.
  5. 명확한 거래 신호:

    • 입국 및 출입 조건은 명확하고 이해하기 쉽고 실행하기 쉽습니다.

전략 위험

  1. 다양한 시장에서 나쁜 성과:

    • 부진한 시장에서 빈번한 잘못된 신호를 생성하여 연속적인 손실을 초래할 수 있습니다.
  2. 뒤쳐진 자연:

    • EMA와 Supertrend 모두 추세 초기 단계가 빠질 가능성이 있는 지표입니다.
  3. 일정한 취득 및 중지 손실의 제한:

    • 1%의 고정 취익 및 스톱 손실은 모든 시장 조건, 특히 매우 변동적인 시장에 적합하지 않을 수 있습니다.
  4. 기술 지표에 지나친 의존:

    • 근본적인 요인과 시장 정서를 고려하지 않으며 중요한 뉴스나 사건에서 저조한 성과를 낼 수 있습니다.
  5. 적립 위험:

    • 1%의 스톱 로스는 강한 트렌드에서 유리한 트레이드에서 조기 종료로 이어질 수 있습니다.

전략 최적화 방향

  1. 동적 취득 및 중지 손실:

    • ATR 또는 변동성 비율을 사용하여 다른 시장 조건에 적응하기 위해 동적 인 이익 및 손실을 중지하는 수준을 설정하는 것을 고려하십시오.
  2. 필터 추가:

    • 부피, 변동성 또는 다른 기술적 지표를 추가 필터링 조건으로 도입하여 잘못된 신호를 줄이십시오.
  3. 다중 시간 프레임 분석:

    • 거래 방향의 정확성을 높이기 위해 더 높은 시간 프레임에서 트렌드 분석을 포함합니다.
  4. 매개 변수 최적화

    • 최적의 조합을 찾기 위해 과거 데이터를 사용하여 다른 슈퍼트렌드와 EMA 매개 변수를 백테스트합니다.
  5. 기본 분석을 포함합니다.

    • 중요한 경제 데이터 발표나 회사 수익 보고서를 고려하고 특정 기간 동안 전략을 조정하십시오.
  6. 위치 관리 개선:

    • 계정 자금의 비율 또는 켈리 기준과 같은 더 정교한 위치 크기 전략을 구현하십시오.
  7. 트렌드 강도 필터를 추가합니다:

    • ADX 또는 비슷한 지표를 사용하여 트렌드 강도를 평가하고 강한 트렌드에서만 거래합니다.

결론

슈퍼트렌드 및 EMA 크로스오버 양적 거래 전략은 트렌드를 따라 움직이는 평균 크로스오버를 결합한 자동화 거래 시스템이다. 슈퍼트렌드 지표를 사용하여 전반적인 트렌드 방향과 특정 입출 신호에 대한 44 기간 EMA 크로스오버를 식별함으로써 전략은 중장기 시장 트렌드를 파악하는 것을 목표로합니다. 1% 고정 수익 및 손실 중지 설정은 전략의 위험 관리 프레임워크를 제공하지만 매우 변동적인 시장에서 성능을 제한 할 수도 있습니다.

이 전략의 주요 장점은 명확한 거래 논리와 자동화 실행 능력에 있으며 체계적인 거래 접근 방식을 추구하는 투자자에게 적합합니다. 그러나 전략에는 다양한 시장에서 낮은 성과 및 기술 지표에 대한 과도한 의존과 같은 잠재적 인 위험이 있습니다.

전략의 견고성과 적응력을 더욱 향상시키기 위해 동적 인 수익 및 스톱 로스 메커니즘, 멀티 타임프레임 분석, 추가 필터링 조건 및 더 정교한 위치 관리 기법을 도입하는 것을 고려하십시오. 또한 근본 분석 및 시장 정서 지표를 통합하면 전략의 전반적인 성과를 향상시키는 데 도움이 될 수 있습니다.

결론적으로, 이것은 기본적이지만 잠재적으로 강력한 양적 거래 전략이며, 지속적인 최적화와 테스트를 통해 신뢰할 수있는 자동화 거래 시스템으로 변할 수 있습니다. 이 전략을 사용하는 투자자는 그 장점과 한계를 완전히 이해하고 개별 위험 용도 및 시장 조건에 따라 적절한 조정을해야합니다.


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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ANKITKEDIA2022

//@version=5
strategy("Supertrend and 44 EMA Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// Inputs for Supertrend
atrPeriod = input.int(10, title="ATR Period")
factor = input.float(3.0, title="Factor")

// Supertrend calculation
[supertrend, direction] = ta.supertrend(factor, atrPeriod)
plot(supertrend, color=direction > 0 ? color.green : color.red, linewidth=2)

// 44 EMA calculation
ema44 = ta.ema(close, 44)
plot(ema44, color=color.blue, linewidth=1)

// Entry and exit conditions
longCondition = ta.crossover(close, ema44) and direction > 0
shortCondition = ta.crossunder(close, ema44) and direction < 0

// Target and Stop Loss
strategy.risk.max_position_size(1)
targetPercent = 0.01
stopPercent = 0.01

if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit/Stop Loss", from_entry="Long", limit=close * (1 + targetPercent), stop=close * (1 - stopPercent))

if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("Take Profit/Stop Loss", from_entry="Short", limit=close * (1 - targetPercent), stop=close * (1 + stopPercent))


관련

더 많은