다중 지표 복합 거래 전략

저자:차오장, 날짜: 2024-01-29 10:06:25
태그:

img

전반적인 설명

다중 지표 복합 거래 전략은 이동 평균 컨버전스 디버전스 (MACD), 상대 강도 지표 (RSI), 상품 채널 지표 (CCI), 스토카스틱 상대 강도 지표 (StochRSI) 를 포함한 네 가지 주요 지표를 통합합니다. 이 네 가지 지표의 신호를 분석하는 복합 거래 전략입니다. 이 전략은 다른 시간 프레임에 걸쳐 지표 신호를 판단함으로써 시장 진입 및 출구 지점을 더 정확하게 식별 할 수 있습니다.

전략 논리

이 전략은 주로 네 가지 지표에 기초한 판단을 합니다.

  1. MACD: 가격 동력과 트렌드를 판단하기 위해 빠르고 느린 이동 평균 사이의 차이를 계산합니다. 빠른 라인이 느린 라인을 넘을 때 구매 신호가 생성됩니다.

  2. RSI: 일정 기간 동안의 가격 변화의 크기를 계산합니다. 70 이상의 RSI는 과반 구매 상태와 30 이하의 과반 판매 상태를 나타냅니다. 이 전략은 70과 30을 임계로 사용합니다.

  3. CCI: 가격 동력을 측정하기 위해 이동평균에서 가격의 비율 오차를 계산합니다. 이 전략은 100과 -100을 기준으로 사용합니다.

  4. 스토크RSI: 스토카스틱과 RSI를 결합합니다. 스토크RSI %K 및 %D 라인 사이의 황금색 십자선은 구매를 신호하고, 죽음의 십자선은 판매를 신호합니다.

네 가지 지표가 동시에 기준을 충족시킬 때만 실제 구매 또는 판매 신호가 생성됩니다.

장점

이 다중 지표 전략의 주요 장점은 다음과 같습니다.

  1. 모든 지표의 동의를 요구하여 잘못된 신호를 필터링합니다.

  2. 다양한 지표 관점을 결합하여 다른 차원을 가로지르는 주요 추세를 포착합니다.

  3. 큰 매개 변수 최적화 공간을 전체 최적의 성능을 위해 각 지표를 조정합니다.

  4. 지중은 추세 또는 평균 회전 전략에 초점을 맞추기 위해 황소 또는 곰 시장에 따라 조정 될 수 있습니다.

위험성

주요 위험은 다음과 같습니다.

  1. 지표는 동시에 잘못된 신호를 생성하여 잘못된 거래를 유발할 수 있습니다.

  2. 가격들은 여러 지표에서 동시에 잘못된 신호를 보내기 위해 충분히 강력하게 움직일 수 있습니다.

  3. 지표가 정렬되면서 구매 신호가 지연됩니다.

  4. 많은 매개 변수를 최적화하기 어렵고, 아마도 과장되어 있을지도 모릅니다.

완화에는 매개 변수 조정, 스톱 손실 및 위치 사이징 제어 등이 포함됩니다.

더 나은 기회

개선 가능성:

  1. KD, 볼링거 밴드 같은 더 많은 지표와 조합을 테스트하여 최적의 포트폴리오를 찾습니다.

  2. 기계 학습을 통해 최고 성능을 위한 매개 변수를 최적화할 수 있습니다.

  3. 다른 주식과 부문에 대한 매개 변수를 조정합니다.

  4. 전략 코드에 스톱 로스 메커니즘을 추가합니다. 가격 지지율을 넘으면 판매하는 것과 같이요.

  5. 포트폴리오 수익률을 높이기 위해 부문 내에서 강한 성과를 가진 주식을 선택합니다.

결론

이 전략은 MACD, RSI, CCI 및 StochRSI의 네 가지 주요 지표에 대한 신호를 통합합니다. 멀티 타임프레임 분석에 기반한 엄격한 입출입 기준을 설정함으로써 시장 전환점을 효과적으로 식별 할 수 있습니다. 매개 변수 최적화, 주식 우주 업데이트 및 스톱 추가와 같은 정제 사항은 성능을 더욱 향상시킬 수 있습니다. 전반적으로 효과적인 양적 거래 전략입니다.


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

//@version=4
strategy("MACD RSI CCI StochRSI Strategy", shorttitle="MRCSS", overlay=true)

// MACD göstergesi
fastLength = input(12, title="Fast Length")
slowLength = input(26, title="Slow Length")
signalLength = input(9, title="Signal Length")
[macdLine, signalLine, _] = macd(close, fastLength, slowLength, signalLength)

// RSI göstergesi
rsiLength = input(14, title="RSI Length")
rsiLevel = input(70, title="RSI Overbought Level")
rsiValue = rsi(close, rsiLength)

// CCI göstergesi
cciLength = input(8, title="CCI Length")
cciLevel = input(100, title="CCI Overbought Level")
cciValue = cci(close, cciLength)

// Stochastic Oscillator göstergesi
stochLength = input(14, title="Stoch Length")
stochK = input(3, title="Stoch K")
stochD = input(3, title="Stoch D")
stochValue = stoch(close, high, low, stochLength)
stochDValue = sma(stochValue, stochD)

// Alış ve Satış Sinyalleri
buySignal = crossover(macdLine, signalLine) and rsiValue < rsiLevel and cciValue < cciLevel and stochValue > stochDValue
sellSignal = crossunder(macdLine, signalLine) and rsiValue > (100 - rsiLevel) and cciValue > (100 - cciLevel) and stochValue < stochDValue

// Ticaret stratejisi uygula
strategy.entry("Buy", strategy.long, when = buySignal)
strategy.close("Buy", when = sellSignal)
strategy.entry("Sell", strategy.short, when = sellSignal)
strategy.close("Sell", when = buySignal)

// Göstergeleri çiz
hline(rsiLevel, "RSI Overbought", color=color.red)
hline(100 - rsiLevel, "RSI Oversold", color=color.green)
hline(cciLevel, "CCI Overbought", color=color.red)
hline(100 - cciLevel, "CCI Oversold", color=color.green)

// Grafik üzerinde sinyal okları çiz
plotshape(series=buySignal, title="Buy Signal", color=color.green, style=shape.triangleup, location=location.belowbar, size=size.small)
plotshape(series=sellSignal, title="Sell Signal", color=color.red, style=shape.triangledown, location=location.abovebar, size=size.small)


더 많은