그레이트 델라이트 다중 요인 양적 전략

저자:차오장, 날짜 2023-12-04 13:04:03
태그:

img

전반적인 설명

그레이트 디라이트 다중 인자 양적 전략은 이동 평균, MACD 및 이치모쿠 클라우드 등 여러 기술적 지표를 결합하여 트렌드를 따르는 장기 전략으로 사용한다. 주로 200일 간 간단한 이동 평균을 사용하여 전체 트렌드를 결정하고, 20일 기하급수적 이동 평균, MACD 인덱스 및 이치모쿠 클라우드에서 추가 정보를 사용하여 특정 입출점을 파악한다.

장기적 및 단기적 동향을 고려하고, 다중 요인 검증을 통해, 이 전략은 가짜 브레이크로 인한 노이즈 트레이드를 효과적으로 필터할 수 있다. 고품질의 기회를 추구하면서, 또한 위험을 통제하여, 중장기 지분을 보유하는 경험이 있는 투자자들에게 적합하다.

전략 원칙

가격이 200일 MA를 넘을 때, 전략은 시장이 상승 추세에 있다고 믿습니다. 20일 MA와 MACD 지표가 동시에 구매 신호를 생성하고 가격이 가장 높은 이치모쿠 클라우드 가격 또는 클라우드 내부보다 높을 때까지 구매 신호가 생성됩니다.

가격이 200 일 MA 이하로 떨어지면 전략은 하향 추세가 시작되었음을 결정합니다. 신호 요구 사항은 이제 더 엄격합니다: 20 일 MA 및 MACD 구매 신호 외에도 Ichimoku 클라우드는 구매를 유발하기 전에 구매 신호 (녹색 구름 또는 클라우드 상위 가격) 를 제공해야합니다.

판매 신호 논리는 비슷하지만 역전됩니다: 황소 시장에서, 구름 바닥 아래에 촛불이 닫히거나 구름 플립 트리거가 판매합니다. 곰 시장에서, 빨간 구름 또는 20 일 MA 및 MACD 판매 신호를 입력하면 판매됩니다.

이점 분석

이 전략의 가장 큰 장점은 여러 장기 및 단기 지표를 결합하여 잘못된 신호를 효과적으로 필터링 할 수있는 시장 상황을 결정하는 것입니다. 구체적으로:

  1. 200일 MA는 역동적인 트렌드를 피하기 위해 전체 트렌드를 결정합니다.
  2. 20일 MA는 반전을 포착하기 위해 단기 동력에 초점을 맞추고 있습니다.
  3. MACD는 트렌드 변화를 확인합니다.
  4. 이치모쿠 클라우드는 잘못된 신호를 방지하기 위해 두 번 확인합니다.

다단계 검증으로 수익률이 크게 향상 될 수 있습니다. 또한 장기 및 단기 지표 간의 조정으로 전략은 단기 및 중장기 운영에 적합합니다.

위험 분석

이 전략의 주요 위험은 여러 지표가 동시에 잘못된 신호를 주는 확률입니다. 극단적인 조건에서는 매우 가능성이 낮지만, 장기간 사용 시에도 발생할 수 있습니다. 주요 대응 대책은 다음과 같습니다.

  1. 최적의 조합을 찾기 위해 적절한 매개 변수를 조정합니다.
  2. 잘못된 신호가 나오면 빠르게 방향을 바꾸기 위해 엄격한 스톱 손실. 라이브 거래에서 스톱을 추가하는 것을 고려할 수 있습니다.
  3. 수익을 확보하기 위해 미래에 대한 헤딩 방법을 사용하세요.
  4. 주요 지원 영역에 따라 위치 크기를 조정합니다.

최적화 방향

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

  1. 다양한 매개 변수 조합을 테스트해서 최적을 찾습니다.
  2. 더 나은 위험 통제를 위해 스톱 로스 모듈을 추가합니다.
  3. 변화율과 같은 상관 지표들을 포함시켜 꼭대기와 밑바닥을 쫓는 것을 피합니다.
  4. 지표 가중치를 훈련시키기 위해 신경망과 같은 기계 학습 방법을 도입합니다.
  5. 다양한 시장에서 안정성을 확인합니다.

결론

그레이트 디라이트 전략은 지표의 과학적 조합을 통해 소음을 필터링하여 위험을 제어하면서 지속적인 수익성을 가능하게합니다. 장기적인 경향과 단기적 기회를 모두 고려함으로써 중장기 투자에 널리 적용됩니다. 매개 변수 조정, 스톱 손실 추가 및 기계 학습 도입과 같은 최적화로 더 많은 성능 향상을 기대할 수 있습니다.


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

//@version=2
strategy(title="MACD/EMA/SMA/Ichimoku Long Strategy",overlay=true)




// Ichimoku

conversionPeriods = input(9, minval=1, title="Conversion Line Periods"),
basePeriods = input(26, minval=1, title="Base Line Periods")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods"),
displacement = input(26, minval=1, title="Displacement")

donchian(len) => avg(lowest(len), highest(len))

conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)


p1 = plot(leadLine1, offset = displacement, color=green,
 title="Lead 1")
p2 = plot(leadLine2, offset = displacement, color=red, 
 title="Lead 2")
fill(p1, p2, color = leadLine1 > leadLine2 ? color(green,50) : color(red,50))



bottomcloud=leadLine2[displacement-1]
uppercloud=leadLine1[displacement-1]




// SMA Indicator - Are we in a Bull or Bear market according to 200 SMA?
SMA200 = sma(close, input(200))
EMA = ema(close,input(20))


//MACD Indicator - Is the MACD bullish or bearish?

fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)

MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD

// Set Buy/Sell conditions

[main,signal,histo]=macd(close,fastLength,slowlength,MACDLength)

buy_entry = if ((uppercloud>bottomcloud or close>max(uppercloud,bottomcloud)) and close>EMA and (delta>0 and close>min(uppercloud,bottomcloud))) or (close<SMA200 and delta>0 and close>EMA and (uppercloud>bottomcloud or close>max(uppercloud,bottomcloud)))
    true
if close<EMA and ((delta<0 and close<min(uppercloud,bottomcloud)) or (uppercloud<bottomcloud and close>max(uppercloud,bottomcloud)))
    buy_entry = false


strategy.entry("Buy",true , when=buy_entry)
alertcondition(buy_entry, title='Long', message='Chart Bullish')


sell_entry = if ((uppercloud<bottomcloud or close<min(uppercloud,bottomcloud)) and close<EMA and (delta<0 and close<max(uppercloud,bottomcloud))) or (close>SMA200 and delta<0 and close<EMA and (uppercloud<bottomcloud or close<min(uppercloud,bottomcloud)))
    true
if close>EMA and ((delta>0 and close>max(uppercloud,bottomcloud)) or (uppercloud>bottomcloud and close<min(uppercloud,bottomcloud)))
    sell_entry = false



strategy.close("Buy",when= sell_entry)


alertcondition(sell_entry, title='Short', message='Chart Bearish')

//plot(delta, title="Delta", style=cross, color=delta>=0 ? green : red )

더 많은