이 전략은 볼링거 밴드와 스토카스틱 오시레이터를 결합하여 시장에서 과잉 구매 및 과잉 판매 기회를 식별합니다. 성공적인 거래의 확률을 극대화하기 위해 볼링거 밴드에서 정의된 극단에서 가격 리바운드를 활용하여 스토카스틱에서 확인하는 것을 목표로합니다. 동적 트레일링 스톱은 시장 변동성에 따라 스톱 손실 위치를 유연하게 조정하기 위해 동적 스톱 손실 방법론을 채택하여 스톱 손실 효과를 보장하며 너무 쉽게 중단되는 것을 피합니다.
이 전략은 20 기간, 2 표준편차 볼링거 밴드를 사용하여 가격이 상부 또는 하부 대역을 만지거나 뚫을 경우를 식별합니다. 하부 대역을 만지는 것은 상부 대역을 뚫고 지나치게 팔린 상태가 될 수 있음을 나타냅니다. 또한, 14의 K 라인 사이클과 3의 D 값 평형 사이클을 가진 스토카스틱 오시레이터가 지나치게 구매 및 지나치게 판매를 결정합니다. 닫는 가격이 볼링거 하부 대역 아래에 있고 스토카스틱 K 값이 20 미만일 때, 그것은 긴 진입을 위해 지나치게 판매를 신호합니다. 닫는 것이 볼링거 상부 대역 위에 있고 스토카스틱 K가 80 이상일 때, 그것은 짧은 진입을 위해 지나치게 구매를 신호합니다.
진입 후, 전략은 트레일링 스톱 손실을 위해 평균 진정한 범위 지표를 사용합니다. 스톱 손실 포인트는 ATR의 1.5 배로 설정되며, 이는 시장 변동성에 따라 스톱 손실 범위를 정의하여 너무 긴 또는 너무 느슨한 스톱 손실을 피합니다.
이 전략은 다음과 같은 장점을 가지고 있습니다.
볼링거 밴드와 스토카스틱 오시레이터를 결합하여 과잉 구매/ 과잉 판매를 결정하면 거래 기회를 더 정확하게 파악 할 수 있습니다.
시장의 변동성에 따라 스톱 로스 포인트를 동적으로 조정하면 합리적인 스톱 거리를 얻을 수 있습니다.
후속 스톱 손실 메커니즘은 조기 스톱 아웃을 피하기 위해 스톱 거리가 너무 가깝지 않도록합니다.
간단하고 명확한 전략 규칙은 이해하기 쉽고 실행하기 쉽습니다.
이 전략에는 몇 가지 위험이 있습니다.
볼링거 밴드 상부/하부 밴드는 가격 반전을 보장할 수 없습니다. 파업이 계속될 수 있습니다.
스토카스틱의 부적절한 매개 변수 조정은 부정확한 신호를 생성할 수 있습니다.
스톱 라일링은 합리적인 시장 변동을 초과하는 너무 넓은 스톱 손실로 이어질 수 있습니다.
동적 트레일링 스톱은 시장 변동성에 기초한 스톱 거리의 미세 조정으로 더 잘 작동할 수 있습니다.
이 전략은 다음 측면에서 더 이상 최적화 될 수 있습니다.
다양한 볼링거 매개 변수의 영향을 테스트하여 최적의 매개 변수 조합을 찾습니다.
지표 성능을 향상시키기 위해 다른 스토카스틱 매개 변수를 테스트합니다.
스톱 손실 트리거 시간과 수익성에 따라 스톱 거리를 동적으로 조정합니다.
입력 신호를 필터링하고 성공률을 높이기 위해 다른 지표를 추가합니다.
시장 트렌드를 완전히 파악하기 위해 스톱 로스 재입구 메커니즘을 추가합니다.
이 전략은 스토카스틱 지표에서 확인되는 볼링거 밴드를 기반으로 과소 구매/ 과소 판매를 식별합니다. 명확한 규칙과 유연한 후속 스톱 손실의 장점이 있습니다. 또한 부정확한 판단 기준 및 잘못된 스톱 거리 구성과 같은 위험이 있습니다. 매개 변수 최적화, 추가 신호 필터링, 스톱 손실의 동적 조정 등을 통해 성능을 더욱 향상시킬 수 있습니다.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger y Estocástico con Trailing Stop", overlay=true) // Parámetros de entrada lengthBB = input(20, title="Longitud BB") stdDevBB = input(2, title="Desviación Estándar BB") kLength = input(14, title="Longitud K Estocástico") dLength = input(3, title="Longitud D Estocástico") smooth = input(3, title="Suavizado Estocástico") atrLength = input(14, title="Longitud ATR") trailStopATRMultiple = input(1.5, title="Multiplicador ATR para Trailing Stop") // Cálculos [upperBB, basisBB, lowerBB] = ta.bb(close, lengthBB, stdDevBB) stochK = ta.sma(ta.stoch(close, high, low, kLength), smooth) atr = ta.atr(atrLength) // Condiciones de trading longCondition = close < lowerBB and stochK < 20 shortCondition = close > upperBB and stochK > 80 // Ejecutar operaciones if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) // Trailing Stop strategy.exit("Exit Long", from_entry="Long", trail_points=atr * trailStopATRMultiple, trail_offset=atr * trailStopATRMultiple) strategy.exit("Exit Short", from_entry="Short", trail_points=atr * trailStopATRMultiple, trail_offset=atr * trailStopATRMultiple)