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

EMA 이중 크로스오버 고정 리스크 스톱 로스/익스피스 취득

저자:차오장, 날짜: 2024-05-14 15:48:48
태그:EMASMABTC

img

전반적인 설명

이 전략은 트레이딩 신호로서 이중 EMA 크로스오버 접근 방식을 사용하며, 빠른 EMA는 65의 기간을 가지고 있고 느린 EMA는 240의 기간을 가지고 있다. 또한 볼륨을 필터 조건으로 사용하며, 현재 볼륨이 지정된 임계치를 초과할 때만 거래를 실행한다. 전략은 각 거래에 고정된 위험 금액 (10달러) 을 설정하고 위험 금액에 따라 위치 크기를 동적으로 계산한다. 빠른 EMA가 느린 EMA를 넘어서서 볼륨 조건이 충족되면 긴 포지션에 진입한다. 반대로 빠른 EMA가 느린 EMA를 넘어서서 볼륨 조건이 충족되면 쇼트 포지션에 진입한다. 스톱 러스 (Stop Loss) 와 취리 (Take Profit) 수준은 고정 가격 거리를 기반으로 설정되며, 손실은 엔트리 가격 이하로 배치되고 수익은 엔트리 가격 이하로 1500달러로 배치된다.

전략 원칙

  1. 두 개의 EMA 라인을 계산합니다: 65의 기간과 빠른 EMA (ema_fast) 와 240의 기간과 느린 EMA (ema_slow).
  2. 상승세 크로스오버 (bullish_crossover) 또는 하락세 크로스오버 (bearish_crossover) 가 발생하는지 결정합니다.
  3. 부피 한계 (volume_threshold) 를 설정하고 현재 부피가 이 한계를 초과할 때만 거래를 실행합니다.
  4. 각 거래에 대해 10달러의 고정된 위험 금액 (risk_per_trade) 을 설정합니다.
  5. 포지션 크기 (position_size) 는 위험 금액과 스톱 로스 거리 (stop_loss_distance) 를 기반으로 계산합니다.
  6. 올림 크로스오버가 발생하고 볼륨 조건이 충족되면, 엔트리 가격 아래로 100달러의 스톱 로스를 설정하고 엔트리 가격 위로 1500달러의 영리를 설정하여 긴 포지션을 입력합니다.
  7. 하향적 크로스오버가 발생하고 볼륨 조건이 충족되면, 입상 가격보다 100달러가 넘는 스톱 로스로, 입상 가격보다 1500달러가 낮은 영업으로 단기 포지션을 입력합니다.

전략적 장점

  1. 이중 EMA 크로스오버 접근법은 시장 동향을 효과적으로 파악할 수 있으며, 65/240 기간 조합은 대부분의 소음을 필터링하고 주요 동향에 집중합니다.
  2. 볼륨 필터 조건을 도입하면 낮은 볼륨 기간 동안 거래를 피하고 시장 변동성 위험을 줄일 수 있습니다.
  3. 일정한 위험 금액 포지션 사이즈링 방법은 각 거래의 위험 노출을 효과적으로 제어하여 단일 거래에서 과도한 손실을 방지합니다.
  4. 가격 거리를 기반으로 한 동적 스톱 로스 및 수익 취득 설정은 손실 잠재보다 더 큰 수익 잠재력을 허용하여 전략의 장기 성과를 향상시킵니다.
  5. BTC/USD와 같은 매우 변동성 있는 도구에 적합하며, 이 전략은 가격 변동으로 인한 투자 기회를 완전히 포착할 수 있습니다.

전략 위험

  1. 트렌드를 따르는 지표로서, EMA는 트렌드 반전을 감지하는 데 지연할 수 있으며, 잠재적으로 지연된 진입 또는 출입으로 이어질 수 있습니다.
  2. 고정 위험 금액은 시장 변동 조건에 동적으로 적응하지 못할 수 있으며, 극단적인 시장 움직임 (예를 들어 급격한 상승 또는 하락) 에서 최적의 성과가 되지 않을 수 있습니다.
  3. 부피 한계값의 설정은 어느 정도 주관성을 포함하고 있으며, 부적절한 한계값 설정은 전략의 효과에 영향을 줄 수 있습니다.
  4. 고정된 스톱 러스 및 수익 취득 수준은 실제 시장 변동성과 일치하지 않을 수 있으며, 빈번한 스톱 아웃 또는 수익 취득으로 이어질 수 있습니다.
  5. 이 전략은 불안정한 시장에서 낮은 성과를 낼 수 있으며, 빈번한 크로스오버는 연속적인 손실 트레이드를 초래할 수 있습니다.

전략 최적화 방향

  1. 필터 조건으로 더 많은 EMA 조합을 도입하는 것을 고려하십시오. 예를 들어 신호 신뢰성을 향상시키기 위해 멀티 EMA 시스템을 구축하기 위해 중간 EMA를 통합하는 것.
  2. 포지션 크기를 최적화하는 방법, 예를 들어 퍼센트 리스크 방법 또는 켈리 기준을 채택하여 다른 시장 상태에 따라 포지션을 동적으로 조정합니다.
  3. 전략 안정성을 높이기 위한 최적의 임계 설정을 찾기 위해 부피 임계값에 대한 매개 변수 최적화를 수행한다.
  4. 스톱 로스 및 수익 레벨 설정을 최적화하여 최신 시장 변동성 조건에 따라 실시간으로 조정하여 시장에 대한 유연성과 적응력을 높입니다.
  5. 트렌드를 따르는 접근법에 특정 헤지 구성 요소를 포함, 시장 변동을 판단하는 데 도움이되는 PSAR와 같은 역 트렌드 지표를 활용하고 불안정한 시장을 처리하는 전략의 능력을 향상.

요약

이 전략은 트렌드 결정의 기초로 65/240 이중 EMA 크로스오버를 사용하며, 신호 신뢰성을 향상시키기 위해 볼륨 필터 조건과 결합된다. 고정된 리스크 포지션 사이징과 고정된 가격 스톱 로스/트랙 이윤 설정은 위험을 어느 정도 제어하고 리스크-어워드 비율을 유리한 방향으로 기울일 수 있다. 그러나 전략은 또한 상대적으로 후진한 트렌드 탐지, 포지션 사이징에 대한 유연성 부족, 그리고 스톱 로스 및 트랙 이윤 수준에 대한 동적 조정 부족 등의 문제로 직면한다. 미래 최적화와 개선은 멀티 EMA 시스템을 구축하고, 포지셔닝 사이징을 최적화하고, 동적 스톱 로스 및 트랙 이윤 메커니즘을 구현하고, 더 안정적이고 신뢰할 수 있는 거래 성과를 달성하기 위해 헤지 지표를 통합하는 데 집중할 수 있다.


/*backtest
start: 2024-05-06 00:00:00
end: 2024-05-13 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("EMA Crossover Strategy with 1:3 RR, Volume Filter, and Custom Stop Loss/Take Profit (BTC)", overlay=true, currency="USD", initial_capital=100)

// Define EMA lengths
ema_length_fast = 65
ema_length_slow = 240

// Calculate EMAs
ema_fast = ta.ema(close, ema_length_fast)
ema_slow = ta.ema(close, ema_length_slow)

// Define crossover conditions
bullish_crossover = ta.crossover(ema_fast, ema_slow)
bearish_crossover = ta.crossunder(ema_fast, ema_slow)

// Plot EMAs
plot(ema_fast, color=color.blue, title="Fast EMA")
plot(ema_slow, color=color.red, title="Slow EMA")

// Define volume filter
volume_threshold = 1000 // Adjust as needed

// Define risk amount per trade
risk_per_trade = 0.5 // $10 USD

// Calculate position size based on risk amount
stop_loss_distance = 100
take_profit_distance = 1500
position_size = risk_per_trade / syminfo.mintick / stop_loss_distance

// Execute trades based on crossovers and volume filter
if (bullish_crossover and volume > volume_threshold)
    strategy.entry("Buy", strategy.long, qty=position_size)
    strategy.exit("Exit", "Buy", stop=close - stop_loss_distance, limit=close + take_profit_distance)
if (bearish_crossover and volume > volume_threshold)
    strategy.entry("Sell", strategy.short, qty=position_size)
    strategy.exit("Exit", "Sell", stop=close + stop_loss_distance, limit=close - take_profit_distance)


관련

더 많은