다중 지표 복합 거래 전략은 이동 평균 컨버전스 디버전스 (MACD), 상대 강도 지표 (RSI), 상품 채널 지표 (CCI), 스토카스틱 상대 강도 지표 (StochRSI) 를 포함한 네 가지 주요 지표를 통합합니다. 이 네 가지 지표의 신호를 분석하는 복합 거래 전략입니다. 이 전략은 다른 시간 프레임에 걸쳐 지표 신호를 판단함으로써 시장 진입 및 출구 지점을 더 정확하게 식별 할 수 있습니다.
이 전략은 주로 네 가지 지표에 기초한 판단을 합니다.
MACD: 가격 동력과 트렌드를 판단하기 위해 빠르고 느린 이동 평균 사이의 차이를 계산합니다. 빠른 라인이 느린 라인을 넘을 때 구매 신호가 생성됩니다.
RSI: 일정 기간 동안의 가격 변화의 크기를 계산합니다. 70 이상의 RSI는 과반 구매 상태와 30 이하의 과반 판매 상태를 나타냅니다. 이 전략은 70과 30을 임계로 사용합니다.
CCI: 가격 동력을 측정하기 위해 이동평균에서 가격의 비율 오차를 계산합니다. 이 전략은 100과 -100을 기준으로 사용합니다.
스토크RSI: 스토카스틱과 RSI를 결합합니다. 스토크RSI %K 및 %D 라인 사이의 황금색 십자선은 구매를 신호하고, 죽음의 십자선은 판매를 신호합니다.
네 가지 지표가 동시에 기준을 충족시킬 때만 실제 구매 또는 판매 신호가 생성됩니다.
이 다중 지표 전략의 주요 장점은 다음과 같습니다.
모든 지표의 동의를 요구하여 잘못된 신호를 필터링합니다.
다양한 지표 관점을 결합하여 다른 차원을 가로지르는 주요 추세를 포착합니다.
큰 매개 변수 최적화 공간을 전체 최적의 성능을 위해 각 지표를 조정합니다.
지중은 추세 또는 평균 회전 전략에 초점을 맞추기 위해 황소 또는 곰 시장에 따라 조정 될 수 있습니다.
주요 위험은 다음과 같습니다.
지표는 동시에 잘못된 신호를 생성하여 잘못된 거래를 유발할 수 있습니다.
가격들은 여러 지표에서 동시에 잘못된 신호를 보내기 위해 충분히 강력하게 움직일 수 있습니다.
지표가 정렬되면서 구매 신호가 지연됩니다.
많은 매개 변수를 최적화하기 어렵고, 아마도 과장되어 있을지도 모릅니다.
완화에는 매개 변수 조정, 스톱 손실 및 위치 사이징 제어 등이 포함됩니다.
개선 가능성:
KD, 볼링거 밴드 같은 더 많은 지표와 조합을 테스트하여 최적의 포트폴리오를 찾습니다.
기계 학습을 통해 최고 성능을 위한 매개 변수를 최적화할 수 있습니다.
다른 주식과 부문에 대한 매개 변수를 조정합니다.
전략 코드에 스톱 로스 메커니즘을 추가합니다. 가격 지지율을 넘으면 판매하는 것과 같이요.
포트폴리오 수익률을 높이기 위해 부문 내에서 강한 성과를 가진 주식을 선택합니다.
이 전략은 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)