MACD와 Stochastic 지표를 기반으로 한 암호화폐 거래 전략


생성 날짜: 2024-02-01 11:52:15 마지막으로 수정됨: 2024-02-01 11:52:15
복사: 0 클릭수: 773
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

MACD와 Stochastic 지표를 기반으로 한 암호화폐 거래 전략

개요

이 전략은 MACD 지표와 무작위 지표의 조합을 기반으로 한 암호화폐 거래 전략이다. 비트코인 가격의 MACD 지표를 계산하고 그것에 무작위 지표를 적용함으로써 거래 신호를 생성하여 암호화폐 시장의 추세 변화를 포착한다.

전략 원칙

이 전략은 먼저 MACD 지표를 계산한다. MACD는 이동 평균의 수렴 거리를 나타내고, 추세를 추적하는 지표이다. 그것은 빠른 선과 느린 선으로 구성되어 있으며, 빠른 선은 더 짧은 지수 이동 평균이며, 느린 선은 더 긴 지수 이동 평균이다. 빠른 선에서 느린 선을 통과하면 금색 포크 신호가 시장이 부진으로 바뀌는 것을 나타냅니다.

MACD 지표를 계산한 후, 이 전략은 MACD 지표 자체에 무작위 지표%K를 적용한다. 무작위 지표%K의 계산 공식은 다음과 같다.

%K = (현재 종료 가격 - N일 최저 가격) / (N일 최대 가격 - N일 최저 가격) * 100

무작위 지표는 주가 가격이 최근 범위를 벗어난 변화를 반영한다. %K 값이 20-80 사이로 변동하는 것은 주가 움직임이 평형 범위에 있음을 나타냅니다. %K가 아래에서 위쪽으로 20선을 통과하면 구매 신호를 발산한다. %K가 위쪽으로 80선을 통과하면 판매 신호를 발산한다.

이 전략은 MACD 지표와 무작위 지표 %K의 거래 신호를 결합하여 암호화폐 시장에서 거래한다. 무작위 지표%K가 상향 20을 통과하면 구매 신호가 발생하고, 무작위 지표%K가 하향 80을 통과하면 판매 신호가 발생한다.

전략적 이점

이 전략은 트렌드 분석과 오버 바이 오버 셀 지표를 결합하여 시장의 중요한 전환점을 효과적으로 식별할 수 있습니다. MACD 또는 무작위 지표를 단독으로 사용하는 것과 비교하여%K와 MACD의 조합을 사용하면 신호의 신뢰성을 높이고 가짜 신호를 줄일 수 있습니다.

또한, 이 전략은 주식 시장에서 일반적으로 사용되는 기술 지표를 암호화폐 거래에 적용합니다. 이는 시장 간의 사용입니다. 이 지표는 디지털 통화 시장에도 동일하게 적용되며 디지털 통화의 높은 변동성으로 인해 더 나은 효과를 얻을 수 있습니다.

위험과 해결책

이 전략의 가장 큰 위험은 암호화폐 시장의 높은 변동성이 있고, 가짜 신호가 발생하여 거래 손실이 발생할 가능성이 높다는 것입니다. 또한, 기술 지표가 신호를 발산할 때 가격이 이미 어느 정도 변동했을 수 있으며, 트렌드의 초기 부분을 충분히 포착할 수 없는 위험이 있습니다.

이러한 위험을 제어하기 위해, 손실이 더 확장되는 것을 방지하기 위해 수익을 잠금하기 위해 이동 스톱을 사용하는 것이 좋습니다. 또한, 다른 주기의 길이를 사용하여 더 많은 잠재적 인 기회를 탐색하기 위해 파라미터를 적절하게 조정 할 수 있습니다.

전략 최적화 방향

첫째, 이 전략은 이동 평균을 부린 밴드와 같은 변동률 지표와 결합하여 사용하도록 시도할 수 있으며, 변동률 매개 변수를 설정하여 돌파의 유효성을 식별하고 가짜 신호를 피합니다.

두 번째, 기계 학습 모델을 도입하여 역사적 데이터에 대한 훈련을 통해 임의의 숲이나 LSTM 신경망 모델을 구축하여 지표 신호의 유효성을 판단할 수 있습니다.

세 번째, 손실을 방지하는 장치를 추가하십시오. 가격이 불리한 방향으로 움직일 때 특정 범위를 초과하면 위험을 제어하기 위해 자동으로 손실을 방지합니다.

요약하다

이 전략은 MACD 지표와 무작위 지표 %K를 결합하여 두 지표가 서로 신호를 검증하는 방법을 사용하여 암호화폐의 거래 전략을 수립한다. 이러한 조합 지표 전략은 신호의 정확성을 어느 정도 향상시킬 수 있다. 그러나 우리는 또한 지표 조합이 너무 복잡하게 발생할 수 있는 노이즈 및 레이깅 효과를 경계해야 한다. 파라미터 설정과 위험 제어도 마찬가지로 중요하며, 다른 시장 환경에 따라 조정 및 최적화가 필요합니다.

전략 소스 코드
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Schaff Trend Cycle Strategy", shorttitle="STC Backtest", overlay=true)

fastLength = input(title="MACD Fast Length",  defval=23)
slowLength = input(title="MACD Slow Length",  defval=50)
cycleLength = input(title="Cycle Length",  defval=10)
d1Length = input(title="1st %D Length",  defval=3)
d2Length = input(title="2nd %D Length",  defval=3)
src = input(title="Source", defval=close)
highlightBreakouts = input(title="Highlight Breakouts ?", type=bool, defval=true)

macd = ema(src, fastLength) - ema(src, slowLength)
k = nz(fixnan(stoch(macd, macd, macd, cycleLength)))
d = ema(k, d1Length)
kd = nz(fixnan(stoch(d, d, d, cycleLength)))

stc = ema(kd, d2Length)
stc := 	stc > 100 ? 100 : stc < 0 ? 0 : stc

upper = input(75, defval=75)
lower = input(25, defval=25)

long =  crossover(stc, lower) ? lower : na
short = crossunder(stc, upper) ? upper : na

long_filt = long and not short
short_filt = short and not long

prev = 0
prev := long_filt ? 1 : short_filt ? -1 : prev[1]

long_final = long_filt and prev[1] == -1
short_final = short_filt and prev[1] == 1

//alertcondition(long_final, "Long", message="Long")
//alertcondition(short_final,"Short", message="Short")

//plotshape(long_final, style=shape.arrowup, text="Long", color=green, location=location.belowbar)
//plotshape(short_final, style=shape.arrowdown, text="Short", color=red, location=location.abovebar)

strategy.entry("long", strategy.long, when = long )
strategy.entry("short", strategy.short, when = short)