이동 평균 크로스오버 양적 전략

저자:차오장, 날짜: 2023-12-22 15:05:24
태그:

img

전반적인 설명

이 전략은 EMA 지수적 이동 평균과 MACD 지표를 계산하고 둘의 크로스오버 신호를 결합하여 입점 및 출구 신호를 생성합니다. 가격이 EMA 라인을 넘어서고 MACD 라인이 신호 라인을 넘어서면 길게 이동하고 가격이 EMA 라인을 넘어서고 MACD 라인이 신호 라인을 넘어서면 짧게 이동합니다.

전략 논리

이 전략은 현재 트렌드 방향을 결정하기 위해 EMA 지수적 이동 평균을 사용합니다. 동시에 MACD 지표의 이동 평균 크로스오버를 사용하여 거래 신호를 생성합니다. 가격이 EMA 라인을 통과 할 때만 MACD 황금 십자 및 죽음의 십자 신호가 고려됩니다. 이것은 잘못된 신호를 피합니다.

이 전략은 주로 이동 평균 거래 전략과 MACD 거래 전략의 장점을 기반으로 한다. 이동 평균은 트렌드 방향을 상당히 잘 판단할 수 있다. MACD 기하급수적 이동 평균의 빠르고 느린 라인 크로스오버는 구매 및 판매 포인트를 나타낼 수 있다. 둘을 조합하여 신호의 정확성을 향상시킬 수 있다.

이점 분석

이 전략은 EMA와 MACD 이중 지표를 결합하여 일부 잘못된 신호를 효과적으로 필터링하고 신호 품질을 향상시킵니다. 동시에 EMA는 주요 트렌드를 판단하고 MACD는 특정 입문 및 출구 지점을 판단합니다. 둘은 상호 보완되며 좋은 수익을 얻을 수 있습니다.

또한 이 전략은 가격이 EMA 라인을 뚫을 때만 MACD 신호를 고려하여 불안정한 시장에서 잘못된 거래를 피합니다. 이것은 또한 전략의 안정성을 향상시킵니다.

위험 분석

이 전략의 주요 위험은 매개 변수 설정에 있습니다. EMA와 MACD의 매개 변수가 잘못 설정되면 신호가 놓칠 수 있거나 잘못된 신호가 생성 될 수 있습니다. 또한 시장 추세가 역전되면 전략은 약간의 손실을 입을 수 있습니다.

리스크를 줄이기 위해, 매개 변수는 현재 EMA와 MACD의 시장 주기에 맞춰 적절하게 조정되어야 합니다. 동시에, 단 하나 손실을 제어하기 위해 스톱 로스를 사용하는 것이 좋습니다. 시장이 바닥 과정에 들어가거나 지지를 만지면 지속적인 손실을 피하기 위해 거래가 중단되어야 합니다.

최적화 방향

전략의 다음 측면은 최적화 될 수 있습니다:

  1. 동적으로 매개 변수를 최적화하여 EMA와 MACD 매개 변수를 실시간 시장 조건과 주기에 따라 조정하여 매개 변수 유효성을 보장합니다.

  2. 전략 신호를 보강하기 위해 BOLL 채널 또는 KD 표시기와 같은 다른 지표를 조합하여 추가하십시오.

  3. 기계 학습 방법을 사용하여 전략 매개 변수를 자동으로 최적화하고 백테스트 결과를 기반으로 매개 변수를 조정합니다.

  4. EMA 라인을 돌파할 때, 잘못된 돌파를 피하기 위해 방향의 강도를 판단

  5. 이윤을 확보하고 손실을 줄이기 위해 수익을 취하고 손실을 멈추는 전략을 추가하십시오.

요약

이동평균 크로스오버 양적 전략은 양적 신호를 효과적으로 생성하기 위해 이중 EMA와 MACD 지표를 결합합니다. 매개 변수 설정을 최적화하고, 스톱 로스/프로프트 테이크를 추가하고, 다른 지표를 추가하여 전략의 안정성과 수익성을 더욱 향상시킬 수 있습니다. 이 효과적이고 간단한 전략은 양적 거래자에게 큰 참조 및 응용 가치를 가지고 있습니다.


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

//@version=5
strategy("LONERTESTV2", overlay=true)

// Input definitions
fastLength = input(12, title="Fast Length")
slowlength = input(26, title="Slow Length")
MACDLength = input(9, title="MACD Length")
emaLength = input(13, title="EMA Length")
//smaLength = input(200, title="SMA Length")

// SMA Indicator - Are we in a Bull or Bear market according to 200 SMA?
//SMA = ta.ema(close, smaLength)

// EMA Indicator - Are we in a rally or not?
EMA = ta.ema(close, emaLength)

// MACD Indicator - Is the MACD bullish or bearish?
MACD = ta.ema(close, fastLength) // - ta.ema(close, slowlength)
aMACD = ta.ema(MACD, MACDLength)
delta = MACD - aMACD

// Set Buy/Sell conditions
buy_entry = close > EMA and delta > 5 ? true : close > EMA and delta > -5
sell_entry = close < EMA and delta < -5 ? true : close < EMA and delta < 5

if buy_entry
    strategy.entry(id='EL', direction=strategy.long)

if sell_entry
    strategy.entry(id='ES', direction=strategy.short)

// strategy.entry("Buy", strategy.long)
// strategy.entry("Sell", strategy.short)


더 많은