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

거래 전략에 따른 EMA의 동적 동향

저자:차오장, 날짜: 2024-05-11 11:31:46
태그:EMAATR

img

####평론 이 전략은 기하급수적인 이동 평균 (EMA), 최고 가격, 최저 가격, 평균 진정한 범위 (ATR) 과 같은 기술적 지표를 사용하여 가격과 EMA, 최고 가격, 최저 가격 사이의 관계를 분석하여 현재 트렌드 방향을 식별합니다. 가격이 가장 낮은 가격 이상으로 넘어갈 때 구매 신호를 생성하고 가격이 가장 높은 가격 이하로 넘어갈 때 판매 신호를 생성하거나 역동적 저항 수준에 도달하면 트렌드 움직임을 파악하고 과도한 수익을 달성하는 것을 목표로합니다.

### 전략 원칙

  1. ATR를 계산하여 시장 변동성을 측정하고 동적 채널을 구성하는 기초를 제공합니다.
  2. 가장 높은 가격과 가장 낮은 가격을 추세 방향을 결정하는 기초로 계산합니다.
  3. 가장 높고 가장 낮은 가격의 EMA인 EMA_HL를 동적 채널의 중심선으로 계산합니다.
  4. EMA_HIGHEST와 EMA_LOWEST를 계산하기 위해 EMA_HL에서 ATR의 일정한 배수를 더하고 아내어 상위 및 하위 대역을 얻습니다.
  5. SELL_LINE를 계산하면 가장 높은 가격에 ATR의 몇 배수를 더하여 동적 저항 수준을 생성합니다.
  6. EMA_LOWEST가 가장 낮은 가격 이상으로 돌파하고 닫기 가격이 EMA_MID 아래로 떨어지면 구매 신호를 생성합니다.
  7. EMA_HIGHEST가 가장 높은 가격 아래로 넘어갔을 때 또는 가장 높은 가격이 SELL_LINE에 도달했을 때 EMA_MID보다 높은 폐쇄 가격으로 판매 신호를 생성합니다.

### 전략 장점

  1. EMA, 최고 가격, 최저 가격 및 기타 지표를 사용하여 트렌드를 포괄적으로 판단하여 신뢰할 수있는 신호를 제공합니다.
  2. 다른 시장 조건에 적응하는 동적 채널을 구축하기 위해 변동성의 척도로 ATR을 포함합니다.
  3. SELL_LINE를 동적 저항 수준으로 설정하여 적시에 수익을 확보하고 마감 위험을 제어합니다.
  4. 매개 변수들은 조절이 가능하므로 전략은 다양한 도구와 시간대에 적합하며, 어느 정도의 보편성과 유연성을 가지고 있습니다.

### 전략 위험

  1. 트렌드 식별이 지연될 수 있고, 이는 열등한 진입 시기를 초래할 수 있습니다.
  2. 부적절한 매개 변수 설정으로 인해 신호가 자주 발생하고 거래 비용이 증가할 수 있습니다.
  3. 이 전략은 범위를 제한하는 시장에서 좋은 성과를 거두지 않을 수 있으며 판단에 대한 추가 방법이 필요합니다.
  4. 급격한 트렌드 반전과 같은 극한 시장 조건에서 전략은 실패할 수 있으며, 스톱 로스 설정을 필요로 합니다.

###전략 최적화 방향

  1. 거래량과 변동성과 같은 더 많은 지표를 도입하여 트렌드 판단 차원을 풍부하게하고 신호 신뢰성을 향상시킵니다.
  2. ATR 배수 및 EMA 기간과 같은 매개 변수를 최적화하여 최적의 매개 변수 조합을 찾고 전략 안정성을 강화합니다.
  3. ATR에 기반한 포지션의 동적 조정과 같은 포지션 관리를 통합하여 단일 거래 위험 노출을 제어합니다.
  4. 거래당 최대 손실과 최대 수익을 제어하기 위해 스톱 로스 및 취리 레벨을 설정하여 리스크 / 리워드 비율을 향상시킵니다.
  5. 다른 전략들, 예를 들어 브레이크아웃 전략과 평균 리버션 전략과 결합하여 전략 포트폴리오를 형성하고 전반적인 안정성을 향상시킵니다.

### 요약 이 전략은 EMA, 최고 가격, 최저 가격과 같은 기술적 지표를 사용하여 ATR과 결합하여 동적인 채널을 구성합니다. 트렌드 움직임을 포착하기 위해 가장 낮은 가격 이상과 가장 높은 가격 이하로 깨는 방식으로 거래 신호를 생성합니다. 조정 가능한 매개 변수와 좋은 적응력과 유연성을 제공하는 간단하고 실용적인 트렌드를 따르는 전략입니다. 그러나 그 성능은 범위bound 시장에서 최적화되지 않을 수 있으므로 더 많은 지표를 도입하고 매개 변수를 최적화하고 위험 통제를 추가하여 추가 최적화 및 개선이 필요합니다.


/*backtest
start: 2023-05-05 00:00:00
end: 2024-05-10 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/
// © Maboi_q

//@version=5
strategy("buy sell Trend", overlay=true)

atr_length = input.int(defval=14, title='atr length')
highest_length = input.int(defval=60, title='highest length')
highest_s_length = input.int(defval=60, title='sell highest length')
lowest_length = input.int(defval=30, title='lowest length')
sell_l_length = input.int(defval=55, title='sell line length')

f = 2.382
f2 = 5.618

atr = ta.atr(atr_length)
highest = ta.highest(highest_length)
lowest = ta.lowest(lowest_length)

f_atr = atr * f
ema_hl = ta.ema((highest[1] + lowest[1]) / 2, 14)
ema_highest = ema_hl + f_atr
ema_lowest = ema_hl - f_atr
ema_mid = (ema_highest + ema_lowest) / 2

bs_hi = ta.highest(highest_s_length)
f_atr2 = atr * f2
sell_line = ta.ema(bs_hi[1] + f_atr2, sell_l_length)

buy_cond = ta.crossover(ema_lowest, lowest) and close < ema_mid
sell_cond = (ta.crossunder(ema_highest, highest) and close > ema_mid) or high >= sell_line

if buy_cond
    strategy.entry('BUY', strategy.long)

if sell_cond
    strategy.entry('SELL', strategy.short)


plot(sell_line, color=color.new(color.maroon, 50))
plot(highest, color=color.new(color.red, 50))
plot(lowest, color=color.new(color.green, 50))
plot(ema_highest, color=color.new(color.blue, 50))
// plot(ema_mid, color=color.new(color.gray, 50))
plot(ema_lowest, color=color.new(color.blue, 50))

plotshape(buy_cond, title='buy', style=shape.triangleup, location=location.belowbar, 
 color=color.green, textcolor=color.green, size=size.tiny)

plotshape(sell_cond, title='sell', style=shape.triangledown, location=location.abovebar, 
 color=color.red, textcolor=color.red, size=size.tiny)

관련

더 많은