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

거래 전략에 따른 EMA 트렌드

저자:차오장, 날짜: 2023-09-19 19:38:53
태그:

전반적인 설명

이 전략은 전형적인 EMA 트렌드 다음 전략이다. 빠른 EMA와 느린 EMA의 황금 십자가를 사용하여 상승 추세를 결정하고, 죽음의 십자가를 사용하여 상하 추세를 결정합니다. 전략은 중장기 트렌드를 신뢰성있게 추적하고 스윙 거래에 적합합니다.

전략 논리

핵심 논리는

  1. 빠른 EMA를 계산합니다. 예를 들어 12주기 EMA
  2. 느린 EMA를 계산합니다. 예를 들어 26주기 EMA
  3. 빠른 EMA가 느린 EMA를 넘으면 긴 진입을 위한 상승 추세를 결정합니다.
  4. 빠른 EMA가 느린 EMA를 넘으면 짧은 진입에 대한 하락 추세를 결정합니다.
  5. 빠른 EMA가 느린 EMA 아래로 다시 넘어가면 현재 지위를 종료

다른 속도 EMA를 사용하면 트렌드 변화를 효과적으로 감지 할 수 있습니다. 빠른 EMA는 초기 트렌드 검출을 위해 가격 변화에 신속하게 반응하며 느린 EMA는 트렌드 확인을 보장하기 위해 잘못된 신호를 필터합니다. 함께 신뢰할 수있는 트렌드 시스템을 형성합니다.

황금색 십자선은 장거리 거래의 상승 추세의 시작을 알리고, 죽음의 십자선은 쇼트 거래의 하락 추세의 시작을 알립니다. 빠른 EMA 죽음의 십자점에서 빠져 나가는 것은 적시에 손실을 막는 데 도움이됩니다.

장점

  • EMA는 중장기 동향을 효과적으로 파악합니다.
  • 빠른 EMA와 느린 EMA가 결합하여 신뢰할 수있는 트렌드 시스템을 만듭니다.
  • 간단한 논리, 쉽게 구현
  • 구성 가능한 EMA 매개 변수는 서로 다른 도구에 적합합니다.
  • 급속한 EMA 크로스오버 스톱 로스 컨트롤 리스크

위험 및 완화

  • 트렌드 반전 포인트를 미리 예측할 수 없습니다, 일부 손실
  • 잘못된 EMA 매개 변수 선택은 트렌드 변화 지점을 놓칠 수 있습니다.
  • EMA 매개 변수는 시장 상황 변화에 따라 조정되어야 합니다.

완화:

  1. 손실을 제한하기 위해 범위 중지 사용
  2. 잠재적인 트렌드 반전을 탐지하기 위해 다른 지표를 추가합니다.
  3. 트렌드를 더 잘 식별하기 위해 매개 변수를 최적화합니다.

더 나은 기회

이 전략은 다음과 같은 분야에서 강화될 수 있습니다.

  1. 기계 학습은 더 나은 적응력을 위해 EMA 매개 변수를 자동 조정합니다.

  2. 변동성 기반 포지션 크기 조정 시장 변동성

  3. RSI와 같은 오시레이터는 입구점을 정밀 조정합니다.

  4. 더 나은 리스크 관리를 위해 후속 중지, 수익 취득 중지 추가

  5. 트렌드 검증을 위한 기금 유입/출입을 측정하기 위한 부피 분석

  6. 소모율을 낮추고 수익성 안정성을 높이기 위한 상관관계가 없는 전략과 포트폴리오 조합

결론

EMA 트렌드 다음 전략은 중장기 트렌드를 추적하는 간단하고 실용적인 방법입니다. 엔트리 타이밍을 위해 빠르고 느린 EMA 교차를 사용합니다. 구현하기 쉽고 더 많은 적응력을 위해 여러 차원으로 확장 할 수 있습니다. 스윙 거래 트렌딩 시장에 적합합니다.


/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-18 00:00:00
period: 10m
basePeriod: 1m
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/
// © HomoDeus666

//@version=5

strategy("EMA12/26 with date backtest range (BTCpair)", overlay=true,initial_capital = 1,commission_type = strategy.commission.percent,currency = currency.BTC)

//input date and time
useDateFilter = input.bool(true, title="Filter Date Range of Backtest",
     group="Backtest Time Period")
backtestStartDate = input(timestamp("1 Jan 2021"), 
     title="Start Date", group="Backtest Time Period",
     tooltip="This start date is in the time zone of the exchange " + 
     "where the chart's instrument trades. It doesn't use the time " + 
     "zone of the chart or of your computer.")
backtestEndDate = input(timestamp("1 Jan 2022"),
     title="End Date", group="Backtest Time Period",
     tooltip="This end date is in the time zone of the exchange " + 
     "where the chart's instrument trades. It doesn't use the time " + 
     "zone of the chart or of your computer.")
     
//check date and time option
inTradeWindow =  true
/// plot and indicator
fastEMA = ta.ema(close,12), slowEMA=ta.ema(close,26)
plot(fastEMA,color=color.green,linewidth = 2)
plot(slowEMA,color=color.red,linewidth=2)

//entry when condition
longCondition = ta.crossover(fastEMA,slowEMA)
if (longCondition) and inTradeWindow
    strategy.entry("buy", strategy.long)

if ta.crossunder(ta.ema(close, 12), ta.ema(close, 26)) and inTradeWindow
    strategy.close("buy")
    
// trades and cancel all unfilled pending orders
if not inTradeWindow and inTradeWindow[1]
    strategy.cancel_all()
    strategy.close_all(comment="Date Range Exit")

더 많은