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

일일 높은-저한 브레이크 아웃 시스템과 함께 멀티 타임프레임 EMA 트렌드 전략

저자:차오장, 날짜: 2024-11-28 15:20:59
태그:EMAMA

img

전반적인 설명

이 전략은 EMA 트렌드 및 Chaikin Money Flow (CMF) 지표와 결합하여 전날의 높은 및 낮은 수준의 가격 브레이크를 모니터링하여 거래 기회를 식별합니다. 여러 기술적 지표 검증을 통해 거래 정확성을 향상시키기 위해 시간 및 일일 시간 프레임 모두에서 200 기간 EMA를 사용합니다.

전략 원칙

핵심 논리는 다음의 핵심 요소들을 포함합니다.

  1. request.security 함수를 사용하여 전날의 높은 가격과 낮은 가격을 주요 지지 및 저항 수준으로 얻습니다.
  2. 트렌드 결정의 기준으로 24주기 EMA를 포함합니다.
  3. 시장 현금 흐름을 평가하기 위한 양과 가격의 포괄적 인 지표로 CMF (20 기간) 를 구현합니다.
  4. 더 큰 트렌드 방향을 결정하기 위해 현재와 1시간 시간 프레임에 200개의 EMA를 계산합니다.

특정 거래 규칙: 롱 엔트리: 전날의 최고치보다 가격 폭등 + EMA보다 폐쇄 + 긍정적인 CMF 단기 진입: 전날의 하위치보다 가격 폭등 + EMA 이하의 폐쇄 + 음 CMF 출구: 롱의 EMA 아래를 넘고 쇼트의 EMA 위를 넘는다.

전략적 장점

  1. 다중 기술 지표 검증은 거래 신뢰성을 향상시킵니다.
  2. 다중 시간 프레임 분석은 종합적인 동향 평가를 제공합니다.
  3. CMF 지표 통합은 시장 현금 흐름 조건을 더 잘 파악합니다.
  4. 전날의 높고 낮은 수준은 시장 참여자와 일치합니다
  5. 이해하고 실행하기 쉬운 명확한 전략 논리
  6. 잘 정의된 입출입 조건은 주관적인 판단을 최소화합니다.

전략 위험

  1. 다양한 시장에서 자주 잘못된 신호를 생성 할 수 있습니다.
  2. 급격한 가격변동에 충분히 반응하지 않는 것
  3. 주요 수준의 잠재적인 놓친 기회
  4. 더 큰 시간 프레임 트렌드를 고려하지 않는 것
  5. 극심한 시장 변동성 중 상당한 마감률을 경험할 수 있습니다.

위험 관리 제안:

  1. 적절한 스톱 로스 레벨을 구현
  2. 시장 조건에 따라 매개 변수를 조정
  3. 트렌드 필터를 추가
  4. 변동성 지표를 포함하는 것을 고려하십시오.

최적화 방향

  1. 적응적 매개 변수 최적화 메커니즘을 구현
  2. 더 많은 시장 조건 필터를 추가
  3. 스톱 로스 및 수익 취득 메커니즘을 최적화
  4. 다른 시장 조건에 대한 변동성 지표를 포함합니다.
  5. 포지션 관리 메커니즘을 고려
  6. 부피 분석 지표를 추가합니다.

요약

이 전략은 여러 가지 기술 지표와 다중 타임프레임 분석을 결합한 완전한 거래 시스템이다. 전략은 내일 높은-저한 브레이크오웃, 이동 평균 트렌드 및 화폐 흐름의 포괄적인 분석을 통해 거래 기회를 찾는다. 특정 위험이 존재하지만 전략은 적절한 위험 통제와 지속적인 최적화를 통해 좋은 실용적 가치를 지니고 있다. 트레이더는 라이브 구현 전에 철저한 백테스팅과 매개 변수 최적화를 수행하는 것이 좋습니다.


/*backtest
start: 2024-10-28 00:00:00
end: 2024-11-27 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title='The security Daily HIGH/LOW strategy', overlay=true, initial_capital=10000, calc_on_every_tick=true, 
         default_qty_type=strategy.percent_of_equity, default_qty_value=100, 
         commission_type=strategy.commission.percent, commission_value=0.1)

// General Inputs
len = input.int(24, minval=1, title='Length MA', group='Optimization parameters')
src = input.source(close, title='Source MA', group='Optimization parameters')
out = ta.ema(src, len)

length = input.int(20, minval=1, title='CMF Length', group='Optimization parameters')
ad = close == high and close == low or high == low ? 0 : (2 * close - low - high) / (high - low) * volume
mf = math.sum(ad, length) / math.sum(volume, length)

// Function to get daily high and low
f_secureSecurity(_symbol, _res, _src) =>
    request.security(_symbol, _res, _src[1], lookahead=barmerge.lookahead_on)

pricehigh = f_secureSecurity(syminfo.tickerid, 'D', high)
pricelow = f_secureSecurity(syminfo.tickerid, 'D', low)

// Plotting previous daily high and low
plot(pricehigh, title='Previous Daily High', style=plot.style_linebr, linewidth=2, color=color.new(color.white, 0))
plot(pricelow, title='Previous Daily Low', style=plot.style_linebr, linewidth=2, color=color.new(color.white, 0))

// Entry Conditions
short = ta.crossunder(low, pricelow) and close < out and mf < 0
long = ta.crossover(high, pricehigh) and close > out and mf > 0

if short and barstate.isconfirmed
    strategy.entry('short', strategy.short, stop=pricelow[1])
    strategy.close('short', when=close > out)

if long and barstate.isconfirmed
    strategy.entry('long', strategy.long, stop=pricehigh[1])
    strategy.close('long', when=close < out)

// 200 EMA on 1-hour timeframe
ema_200 = ta.ema(close, 200)
ema_200_1h = request.security(syminfo.tickerid, "60", ta.ema(close, 200))

plot(ema_200_1h, color=color.purple, title="200 EMA (1H)")
plot(ema_200, color=color.white, title="200 EMA")

관련

더 많은