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

적응형 다중 시간 프레임 이동 평균 크로스오버 전략

저자:차오장, 날짜: 2023-10-09 14:56:37
태그:

전반적인 설명

이 전략은 트렌드를 추적하기 위해 여러 시간 프레임에서 적응적인 이동 평균 크로스오버의 원리를 활용합니다. 중장기 트렌드에서 추가 수익을 얻는 것을 목표로 무역 신호 판단을 위해 빠른 라인, 느린 라인 및 MACD 지표를 결합합니다.

원칙

이 전략은 주로 이중 이동 평균 크로스오버 시스템과 MACD 지표의 조합을 기반으로 한다. 이중 이동 평균 크로스오버 시스템은 각각 단기 EMA와 장기적인 이동 평균을 계산하는 빠른 EMA와 느린 EMA로 구성된다. 빠른 라인이 느린 라인의 위를 넘을 때 구매 신호가 생성되며 시장 트렌드가 하락에서 상승으로 변화했다는 것을 나타내고 긴 포지션을 구축할 수 있다. 빠른 라인이 느린 라인의 아래를 넘을 때 판매 신호가 생성되며 시장 트렌드가 상승에서 하락으로 변화했다는 것을 나타내고 그 시점에 포지션을 닫을 수 있다. MACD 지표는 단기 EMA와 장기 EMA 사이의 차이인 MAC DIF 라인과 MAC DEA 라인과 각각 차이의 이동 평균으로 구성된다. HIST 라인, 즉 DIF와 DIF 바는 긴 모멘트 사이의 차이를 나타낸다. ADD는 빨간색 히스토그램을 나타내고, 녹색은 단기 신호를 나타낸다.

이 전략은 이중 이동 평균의 트렌드 판단과 MACD의 모멘텀 변화 신호를 결합합니다. 중장기 트렌드에서 이익을 포착하는 동안, 그것은 효과적으로 거짓 브레이크오웃을 필터링 할 수 있습니다. 구체적으로, 빠른 선이 느린 선 위에 넘어가면 MACD 히스토그램이 동시에 녹색으로 변하면 더 신뢰할 수있는 긴 신호가 생성됩니다. 반대로, 빠른 선이 느린 선 아래에 넘어가면 MACD 히스토그램이 동시에 빨간색으로 변하면 더 강한 짧은 신호가 생성됩니다.

또한, 전략은 또한 적응적 매개 변수 기능을 포함합니다. 매개 변수 최적화 과정에서, 전략이 다른 시장 조건에서 상대적으로 더 나은 성능을 달성 할 수 있도록, 빠른 라인, 느린 라인 및 MACD 매개 변수의 기간은 서로 다른 기간 동안의 성과에 따라 자동으로 조정됩니다.

장점

  1. 두 개의 이동 평균 시스템과 MACD 지표를 결합하여 의사결정을 통해 잡음으로부터의 잘못된 신호에 의해 오해되는 것을 피합니다.

  2. 적응적인 매개 변수 기능을 적용하여 전략이 시장 변화에 적응하고 자동으로 거래 결정을 최적화하기 위해 매개 변수를 동적으로 조정할 수 있습니다.

  3. 중장기 트렌드를 비교적 잘 파악하고, 범위 시장에서 잘못된 브레이크를 필터링하고, 트렌딩 시장에서 추가 수익을 얻습니다.

  4. 더 큰 차원의 트렌드 방향을 파악하기 위해 시간 프레임에 대한 분석을 채택합니다.

  5. 단순하고 명확한 논리, 최적화된 코드 구조, 이해하기 쉽고 다양한 요구를 충족시키기 위해 수정합니다.

위험성

  1. 이중 이동 평균 시스템은 윙사 (wipssawed) 될 위험이 있으며, 범위 제한 시장에 적합하지 않으며, 명백한 추세를 보이는 주식 및 기간에 사용해야합니다.

  2. MACD는 지연 효과가 있으며 빠르게 변화하는 경향을 추적하기에 적합하지 않으며 다른 지표와 결합되어야합니다.

  3. 매개 변수 최적화는 과도한 적합성을 피하기 위해 충분히 큰 백테스팅 기간과 엄격한 위험 평가가 필요합니다.

  4. 장기 포지션을 보유할 때 갑작스러운 사건으로 인한 시스템 리스크에 주의를 기울이고 필요한 경우 적시에 손해를 멈추십시오.

  5. 적응적 매개 변수 기능에 대한 과도한 최적화의 위험, 너무 빈번한 매개 변수 조정을 피하기 위해 충분한 검증이 필요합니다.

개선 방향

  1. 다른 빠르고 느린 이동 평균 조합을 테스트하여 노이즈를 필터하고 트렌드를 준수하는 매개 변수를 찾으십시오.

  2. 다른 MACD 매개 변수 집합을 시도하여 가장 빨리 트렌드 변화 지점을 반영하는 조합을 찾으십시오.

  3. 트렌드 표시기를 필터로 추가하고 트렌드가 불분명하면 거래를 일시 중단합니다.

  4. 단 하나의 거래 손실을 통제하기 위해 이동 중지 손실 또는 대기 주문과 같은 스톱 손실 메커니즘을 도입합니다.

  5. 기계 학습 알고리즘을 사용해 더 많은 데이터로 적응적인 매개 변수 규칙을 훈련시켜 안정성을 향상시킵니다.

  6. 제품 간 중재를 시도해서 서로 연관된 제품들을 포트폴리오로 만들고, 시장 시스템 위험을 다양하게 합니다.

결론

이 전략은 트렌드 추적 및 리듬 제어의 유기적 통합을 달성하여 이중 이동 평균 크로스오버 및 MACD 모멘텀 지표를 결합합니다. 적응 매개 변수 도입은 시장 변화에 원활하게 적응하기 위해 전략을 더 견고하게 만듭니다. 단일 지표 전략과 비교하면이 전략은 중장기 트렌드에서 비교적 풍부한 거래 수익을 확보 할 수있는 강력한 의사 결정 효과를 형성합니다. 다음 단계는 매개 변수 최적화, 위험 통제 등을 포함하여 전략을 더욱 향상시킬 수 있습니다. 전반적으로 전략은 신뢰할 수있는 트렌드 추적 거래 시스템을 형성하며 심층 연구와 응용에 가치가 있습니다.


/*backtest
start: 2023-09-08 00:00:00
end: 2023-10-08 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

// To enable alerts: Change 'Strategy' to read 'Study' below  and you also need to comment out lines 43 and 47 - Strategy code

// strategy(title="Riz Coloured MACD", shorttitle="Riz MACD" , initial_capital=5000, default_qty_value=3  )
//study(title="Riz Coloured MACD", shorttitle="Riz MACD")

source = close
fastLength = input(21, minval=1), slowLength=input(55,minval=1)
signalLength=input(9,minval=1)
MACDCandlesCheckedBack=input(6,minval=1)
MACDTolerance=input(4,minval=1)

fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)
macd = fastMA - slowMA
signal = ema(macd, signalLength)
hist = macd - signal

// ====== BASIC COLOURING - IF HISTOGRAM IS HIGHER THAN PREVIOUS 2 CANDLES THEN WE ARE TICKING UP and VISA VERSA ============//

isTickingUp = hist > hist[1] and hist > hist[2] //and hist > hist[3]
isTickingDown = hist < hist[1] and hist < hist[2] // and hist < hist[3]


// ======= MACD STRATEGY CODE ========== //

// Check if MACD is ticking in the right direction to take a trade - adding 1 at the end means it starts at -1 so not to include the current candle
MACDHistHighestHigh= highest(hist, MACDCandlesCheckedBack)[1]
MACDHistLowestLow = lowest(hist, MACDCandlesCheckedBack)[1]

MACDConfirmsLong() => (hist - MACDHistLowestLow) > MACDTolerance
MACDConfirmsShort() => (MACDHistHighestHigh - hist) > MACDTolerance


plot(macd,  title="MACD", color=blue, linewidth=3)
plot(signal,  title="SIGNAL", color=orange, linewidth=3)

// === SIMPLE COLOURING BASED ON LAST 2 CANDLES - EASY TO REFERENCE IN DAY TO DAY MACD USE ====//

plot(hist, title="HIST", color=isTickingDown ? fuchsia : isTickingUp ? lime : green, linewidth=3, style=histogram)

// ==== ALTERNATIVE COLOURING FOR PLOT BASED ON STRATEGY SETTINGS INSTEAD

//plot(hist, title="HIST", color=MACDConfirmsLong() ? lime : MACDConfirmsShort() ? fuchsia : green, linewidth=3, style=histogram)


// === STRATEGY - ENTER POSITIONS - COMMENT OUT TO ENABLE ALERTS === //

strategy.entry(id = "Long", long = true, when = MACDConfirmsLong()) // use function to decide when to go long

strategy.entry(id = "Short", long = false, when = MACDConfirmsShort())

// === CREATE ALERT CONDITIONS === // 

alertup = MACDConfirmsLong()
alertdown = MACDConfirmsShort()

alertcondition(alertup, title='MACD Long', message='Riz MACD says go LONG!')
alertcondition(alertdown, title='MACD Short', message='Riz MACD says go SHORT!')


더 많은