이동 평균에 기초한 모멘텀 캡처 전략

저자:차오장, 날짜: 2023-11-01 15:55:51
태그:

img

전반적인 설명

이 전략은 트렌드 반전을 탐지하기 위해 하이킨-아시와 결합하여 이동 평균을 주요 거래 신호로 사용하고, 단기 가격 동력을 파악하는 것을 목표로합니다. 이는 후퇴하지 않는 신호를 생성하기 위해 재칠 기능을 제거하여 구스타보 브라마오의 하이킨 아시 MA 전략에서 최적화되었습니다.

전략 논리

  1. Heikin-Ashi 폐쇄 가격 nAMAn을 기준 가격으로 계산합니다.

  2. 빠른 이동 평균 fma와 느린 이동 평균 sma를 nAMAn에 기초하여 계산합니다.

  3. FMA가 SMA를 넘으면 구매 신호를 생성하고, FMA가 SMA를 넘으면 판매 신호를 생성합니다.

  4. 이 전략에서 재화면이 제거되어 실시간 거래 신호를 생성하고 백테스팅 편향을 피합니다.

이점 분석

  1. 하이킨-아시는 트렌드 반전 지점을 더 정확하게 결정하는 데 도움이 됩니다.

  2. MA 크로스오버는 잘못된 신호를 효과적으로 필터링합니다.

  3. 신호 생성에서 지연이 없으므로 신뢰할 수 있는 실시간 성능을 보장합니다.

  4. 유연한 매개 변수 조정 다양한 제품에 적응 할 수 있습니다.

  5. 단순하고 명확한 논리, 이해하기 쉽고 실행하기 쉽습니다.

  6. 수동 거래 위험을 최소화하기 위해 완전히 자동화 될 수 있습니다.

위험 분석

  1. 가격 하락과 함께 범위에 묶인 시장에서 나쁜 성과

  2. 이중 MA 크로스오버로 잘못된 신호를 발생시키는 경향이 있습니다.

  3. 부적절한 MA 매개 변수는 추세가 사라지거나 마감량이 증가할 수 있습니다.

  4. 거래 비용은 실시간 거래에서 순이익에 영향을 미칩니다.

  5. 단일 거래 손실을 통제하기 위해 엄격한 스톱 손실이 필요합니다.

  6. 기계적 거래 전략은 적립 위험성을 가지고 있으며 적절한 자본 관리가 필요합니다.

위험 관리 솔루션:

  1. 변동성 필터를 추가하여 범위에 묶인 시장을 피합니다.

  2. 신호 품질을 보장하기 위해 필터를 추가합니다.

  3. 철저한 테스트를 통해 MA 매개 변수를 최적화합니다.

  4. 비용의 영향을 줄이기 위해 거래 빈도를 조정합니다.

  5. 단일 트레이드에서 손실을 제어하기 위해 적절한 스톱 로스를 설정합니다.

  6. 자본 관리를 최적화하여 포지션 크기를 제어합니다.

개선 방향

  1. 신호 품질을 향상시키기 위해 MA 매개 변수를 최적화합니다.

  2. 트렌드 필터를 추가해서 윙사 시장을 피하세요.

  3. 트렌드를 확인하기 위해 부피 지표를 포함합니다.

  4. 동적 스톱 로스 및 이윤 취득을 구현하여 이윤 캡처를 최적화합니다.

  5. 자본 관리 모듈을 통합하여 포지션 크기를 제어합니다.

  6. 완전 자동화를 위한 알고리즘 트레이딩 모듈을 추가합니다

요약

이 전략은 하이킨-아시와 MA 크로스오버 기술을 통합하여 간단하고 실용적인 단기 트렌드 다음 전략을 만듭니다. 신뢰할 수있는 실시간 거래 신호를 생성하고 실시간 거래에서 좋은 성능을 보여줍니다. 매개 변수, 리스크 관리 및 알고리즘 거래 모듈에 대한 추가 최적화는 신뢰할 수있는 완전히 자동화된 전략으로 전환 할 수 있습니다.


/*backtest
start: 2022-10-25 00:00:00
end: 2023-10-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//Heikin/Kaufman by Gustavo v5
// strategy('Heikin Ashi EMA v5 no repaint ', shorttitle='Heikin Ashi EMA v5 no repaint', overlay=true, max_bars_back=500, default_qty_value=1000, initial_capital=100000, currency=currency.EUR)


// Settings - H/K
res1 = input.timeframe(title='Heikin Ashi EMA Time Frame', defval='D')
test = input(0, 'Heikin Ashi EMA Shift')
sloma = input(20, 'Slow EMA Period')
nAMA = hlc3

//Kaufman MA
Length = input.int(5, minval=1)
xPrice = input(hlc3)
xvnoise = math.abs(xPrice - xPrice[1])
Fastend = input.float(2.5, step=.5)
Slowend = input(20)
nfastend = 2 / (Fastend + 1)
nslowend = 2 / (Slowend + 1)
nsignal = math.abs(xPrice - xPrice[Length])
nnoise = math.sum(xvnoise, Length)
nefratio = nnoise != 0 ? nsignal / nnoise : 0
nsmooth = math.pow(nefratio * (nfastend - nslowend) + nslowend, 2)
nAMAn = nz(nAMA[1]) + nsmooth * (xPrice - nz(nAMA[1]))

//Heikin Ashi Open/Close Price
ha_t = ticker.heikinashi(syminfo.tickerid)
ha_close = request.security(ha_t, timeframe.period, nAMAn)
mha_close = request.security(ha_t, res1, hlc3)

//Moving Average
fma = ta.ema(mha_close[test], 1)
sma = ta.ema(ha_close, sloma)
plot(fma, title='MA', color=color.new(color.black, 0), linewidth=2, style=plot.style_line)
plot(sma, title='SMA', color=color.new(color.red, 0), linewidth=2, style=plot.style_line)

//Strategy
golong = ta.crossover(fma, sma)
goshort = ta.crossunder(fma, sma)

strategy.entry('Buy', strategy.long, when=golong)
strategy.entry('Sell', strategy.short,when=goshort)



더 많은