카마릴라 피보트 브레이크아웃 전략 (Camarilla Pivot Breakout Strategy) 은 진입 및 출입을 위해 카마릴라 피보트 레벨을 활용하는 양적 거래 전략이다. 이 전략은 전통적인 기술 분석 지지 및 저항 이론을 기반으로 하며, 다양한 시간 프레임에서 피보트 포인트를 계산하기 위해 카마릴라 수학적 공식을 결합하고, 과도한 수익을 달성하기 위해 거래 개장 및 폐쇄의 조건으로 이러한 주요 레벨의 브레이크아웃을 설정합니다.
이 전략의 핵심 논리는: H4와 L4를 계산하고, 두 가지 주요 지지 및 저항 수준을 계산하고, 매일 시간 프레임에서 Camarilla 공식에서, 가격이 이 두 수준을 넘을 때 거래 신호를 생성합니다.
구체적으로, 전략은 먼저 회전점으로 현재 바의 최고, 최저 및 폐쇄 가격의 중간점을 계산합니다. 그 다음 가격 범위를 계산합니다. 범위에 따라 H4, H3, H2, H1 및 L1, L2, L3, L4를 포함한 다양한 카마릴라 레벨을 그래프화 할 수 있습니다. 그 중 H4는 첫 번째 저항이며 L4는 첫 번째 지원입니다.
거래 신호의 경우, 종료 가격이 H4 수준을 넘으면 긴 신호를 유발하고, 종료 가격이 L4 이하로 떨어지면 짧은 신호를 유발합니다. 주요 S / R 레벨의 브레이크를 캡처함으로써 전략은 트렌드의 방향과 동력을 판단하여 거래 신호를 생성합니다.
그래서 주요 논리는: 시장 구조를 결정하고 거래 신호를 얻기 위해 Camarilla 레벨 브레이크오프를 사용하는 것입니다.
이 카마릴라 탈출 전략은 몇 가지 핵심 강점을 가지고 있습니다.
카마릴라 분석은 고전적 인 지원 / 저항 개념을 사용합니다. 그러한 이론은 시간의 시험을 견디고 제품과 시간 프레임에 걸쳐 전략의 견고성을 보장합니다.
머신러닝 모델과 비교하면, 카마릴라 규칙은 몇 가지 조정 가능한 메트릭과 함께 간단하며, 특히 초보자에게는 라이브 트레이딩에서 이해하기 쉽고 실행하기 쉽습니다.
H4/L4 브레이크오웃을 모니터링하는 것은 트레이드 엔트리에 직접 번역됩니다. 전략 신호는 선명하고 코드는 간단합니다. 이것은 아이디어에서 라이브 트레이딩까지 빠른 프로토타입을 허용합니다.
카마릴라 전략은 높은 주파수 (초, 분자 바) 와 낮은 주파수 (일간, 주간) 거래에서 작동합니다. 이 다재다능성은 큰 장점입니다.
그러나 이러한 간단한 탈출 전략은 몇 가지 본질적인 약점을 가지고 있습니다.
가격은 파업 후 트렌드를 실패하고 오히려 역전될 수 있습니다. 적시에 손실을 줄이지 않으면 큰 인하로 이어질 수 있습니다. 우리는 잘못된 신호에 대한 보호 장치가 필요합니다.
폐쇄 가격만을 모니터링하면 이전 바 기간 동안 잠재적인 브레이크오웃을 놓칠 수 있습니다. 신호 정확성을 향상시키기 위해 최적화가 필요합니다.
더 정교한 모델과 비교하면 카마릴라에 의존하는 것만으로도 수익률과 폭을 제한할 수 있습니다. 우리는 포지션 사이즈와 레버리지 관리를 통해 감축할 수 있습니다.
따라서 이러한 간단한 브레이크아웃 방법의 안정성을 보장하기 위해 스톱 로스를 통한 리스크 관리, 엔트리 로직 최적화 및 포지션 크기를 조정하는 것이 필요합니다.
이 카마릴라 탈출 전략을 더욱 최적화하기 위해 우리는 다음에 초점을 맞출 수 있습니다:
부피, 이동 평균 등을 결합하여 브레이크오웃 진정성을 측정하고 잘못된 신호를 피합니다.
예를 들어, 벡스트 테스트를 통해 벡스트의 크기를 느려지게 하고
조기 중단을 피하는 동안 손해를 막는 범위를 좁히거나
변화하는 시장 체제에 맞게 지점 및 레버리지 매개 변수를 조정합니다.
LSTM, RNN 모델을 활용해서 탈출 가능성을 예측하고 지능을 향상시켜
카마릴라 피보트 브레이크아웃 전략 (Camarilla Pivot Breakout Strategy) 은 간단하고 직접적인 양적 거래 전략으로 구현이 용이하다. 성숙한 기술 분석 도구를 활용하고 주요 지원 및 저항 수준의 브레이크를 캡처하여 거래 신호를 생성한다. 이 유형의 전략은 안정성과 신뢰성의 장점이 있다. 또한 실제 실행에 비교적 간단하다. 물론, 더 높은 효율성을 달성하기 위해 스톱 로스, 매개 변수 조정, 리스크 제어 등에 대한 추가 개선이 필요하다.
/*backtest start: 2023-12-27 00:00:00 end: 2024-01-03 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //Created by CristianD strategy(title="CamarillaStrategy", shorttitle="CD_Camarilla_Strategy", overlay=true) //sd = input(true, title="Show Daily Pivots?") EMA = ema(close,3) //Camarilla pivot = (high + low + close ) / 3.0 range = high - low h5 = (high/low) * close h4 = close + (high - low) * 1.1 / 2.0 h3 = close + (high - low) * 1.1 / 4.0 h2 = close + (high - low) * 1.1 / 6.0 h1 = close + (high - low) * 1.1 / 12.0 l1 = close - (high - low) * 1.1 / 12.0 l2 = close - (high - low) * 1.1 / 6.0 l3 = close - (high - low) * 1.1 / 4.0 l4 = close - (high - low) * 1.1 / 2.0 h6 = h5 + 1.168 * (h5 - h4) l5 = close - (h5 - close) l6 = close - (h6 - close) // Daily line breaks //sopen = request.security(syminfo.tickerid, "D", open [1]) //shigh = request.security(syminfo.tickerid, "D", high [1]) //slow = request.security(syminfo.tickerid, "D", low [1]) //sclose = request.security(syminfo.tickerid, "D", close [1]) // // Color //dcolor=sopen != sopen[1] ? na : black //dcolor1=sopen != sopen[1] ? na : red //dcolor2=sopen != sopen[1] ? na : green //Daily Pivots dtime_pivot = request.security(syminfo.tickerid, 'D', pivot[1]) dtime_h6 = request.security(syminfo.tickerid, 'D', h6[1]) dtime_h5 = request.security(syminfo.tickerid, 'D', h5[1]) dtime_h4 = request.security(syminfo.tickerid, 'D', h4[1]) dtime_h3 = request.security(syminfo.tickerid, 'D', h3[1]) dtime_h2 = request.security(syminfo.tickerid, 'D', h2[1]) dtime_h1 = request.security(syminfo.tickerid, 'D', h1[1]) dtime_l1 = request.security(syminfo.tickerid, 'D', l1[1]) dtime_l2 = request.security(syminfo.tickerid, 'D', l2[1]) dtime_l3 = request.security(syminfo.tickerid, 'D', l3[1]) dtime_l4 = request.security(syminfo.tickerid, 'D', l4[1]) dtime_l5 = request.security(syminfo.tickerid, 'D', l5[1]) dtime_l6 = request.security(syminfo.tickerid, 'D', l6[1]) //offs_daily = 0 //plot(sd and dtime_pivot ? dtime_pivot : na, title="Daily Pivot",color=dcolor, linewidth=2) //plot(sd and dtime_h6 ? dtime_h6 : na, title="Daily H6", color=dcolor2, linewidth=2) //plot(sd and dtime_h5 ? dtime_h5 : na, title="Daily H5",color=dcolor2, linewidth=2) //plot(sd and dtime_h4 ? dtime_h4 : na, title="Daily H4",color=dcolor2, linewidth=2) //plot(sd and dtime_h3 ? dtime_h3 : na, title="Daily H3",color=dcolor1, linewidth=3) //plot(sd and dtime_h2 ? dtime_h2 : na, title="Daily H2",color=dcolor2, linewidth=2) //plot(sd and dtime_h1 ? dtime_h1 : na, title="Daily H1",color=dcolor2, linewidth=2) //plot(sd and dtime_l1 ? dtime_l1 : na, title="Daily L1",color=dcolor2, linewidth=2) //plot(sd and dtime_l2 ? dtime_l2 : na, title="Daily L2",color=dcolor2, linewidth=2) //plot(sd and dtime_l3 ? dtime_l3 : na, title="Daily L3",color=dcolor1, linewidth=3) //plot(sd and dtime_l4 ? dtime_l4 : na, title="Daily L4",color=dcolor2, linewidth=2) //plot(sd and dtime_l5 ? dtime_l5 : na, title="Daily L5",color=dcolor2, linewidth=2) //plot(sd and dtime_l6 ? dtime_l6 : na, title="Daily L6",color=dcolor2, linewidth=2) longCondition = close >dtime_h4 if (longCondition) strategy.entry("My Long Entry Id", strategy.long) shortCondition = close <dtime_l4 if (shortCondition) strategy.entry("My Short Entry Id", strategy.short)