Supertrend와 EMA 크로스오버 양적 거래 전략

ST EMA ATR
생성 날짜: 2024-07-31 14:43:38 마지막으로 수정됨: 2024-07-31 14:43:38
복사: 19 클릭수: 901
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

Supertrend와 EMA 크로스오버 양적 거래 전략

개요

이 글은 Supertrend 지표와 지수 이동 평균 (EMA) 의 교차를 기반으로 한 양적 거래 전략에 대해 소개한다. 이 전략은 트렌드 추적과 평행 선의 교차의 장점을 결합하여 시장의 추세를 포착하고 추세가 역전될 때 적시에 거래하는 것을 목표로 한다. 이 전략은 Supertrend 지표를 사용하여 전체적인 트렌드 방향을 식별하고 44EMA 주기를 입출 및 출출의 기준선으로 사용한다. 1%의 스톱 및 스톱 손실을 설정함으로써 전략은 위험을 효과적으로 제어하고 수익을 잠금 할 수 있습니다.

전략 원칙

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

    • 10주기의 ATR (진짜 파도) 과 3.0의 인자를 사용하여 수퍼트렌드 (Supertrend) 를 계산한다.
    • 슈퍼트렌드의 방향은 전체 트렌드를 결정하는 데 사용됩니다.
  2. 44주기 EMA 계산:

    • 44주기의 종전 가격 계산을 이용한 지수 이동 평균.
  3. 입장 조건:

    • 다중 입점: 가격이 44 EMA를 상향으로 통과하고 Supertrend 방향이 긍정적이다.
    • 공허 입시: 가격이 44EMA를 넘어 내려가며 슈퍼트렌드 방향이 마이너스이다.
  4. 출전 조건:

    • strategy.exit 함수를 사용하여 1%의 스톱을 설정하고 1%의 스톱로스를 설정한다.
    • 다목자: 스톱 가격은 입시 가격의 101%이며, 스톱로스트 가격은 입시 가격의 99%이다.
    • 공백: 스톱 가격은 입시 가격의 99%이며, 스톱로스트 가격은 입시 가격의 101%이다.
  5. 포지션 관리:

    • strategy.risk.max_position_size을 사용하여 1) 최대 지분을 1 ᆞ로 제한합니다.

전략적 이점

  1. 트렌드 추적과 평균선 교차 결합:

    • 슈퍼트렌드는 전체적인 트렌드 방향을 제공하여 역동적인 거래를 줄여줍니다.
    • EMA 교차는 거래 성공률을 높이는 더 정확한 입시 시점을 제공합니다.
  2. 위험 관리:

    • 고정된 비율의 스피드 및 스톱로스를 설정하여 거래 당 위험을 효과적으로 제어합니다.
    • 최대 지분 제한은 과도한 레버리지를 방지합니다.
  3. 적응력:

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

    • 전략은 TradingView 플랫폼에서 자동으로 실행될 수 있으며, 인간의 개입을 줄일 수 있다.
  5. 명확한 거래 신호:

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

전략적 위험

  1. 시장의 불안감은 좋지 않습니다.

    • 수평선 또는 흔들리는 시장에서 빈번한 잘못된 신호가 발생하여 연속적인 손실이 발생할 수 있습니다.
  2. 지연:

    • EMA와 슈퍼트렌드는 지표가 뒤쳐져 있고, 트렌드의 초기 단계를 놓칠 수 있다.
  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))