카마릴라 채널 기반 브레이크아웃 전략


생성 날짜: 2023-10-24 16:18:30 마지막으로 수정됨: 2023-10-24 16:18:30
복사: 0 클릭수: 788
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

카마릴라 채널 기반 브레이크아웃 전략

개요

이 전략은 주로 카마릴라 통로와 이동평균선을 기반으로 시장의 돌파구를 판단하여 추세를 추적한다. 전략은 비교적 간단하지만 강력한 실용성을 가지고 있다.

전략 원칙

  1. 카마릴라 통로의 지지선과 저항선을 계산한다. H4, L4 등이 포함된다.

  2. 가격이 이 통로선을 뚫었는지 판단한다. 예를 들어, 닫기 가격에 H4 라인을 통과하고 H4 라인보다 낮은 오픈 가격을 통과하는 것은 파격 신호가 있다고 본다.

  3. 이동 평균 판단에 합류하여, 더 이상의 브레이크 신호를 확인한다. 예를 들어 EMA가 종결 가격보다 낮다면 다단계 브레이크이다.

  4. 다중 상점 포지션에 들어가서, 고정된 스톱 포인트와 스톱 트래킹 방식과 같은 스톱 및 스톱 조건을 설정합니다.

  5. 공허함에도 같은 판단이 적용됩니다.

전략의 주요 판단 논리는 비교적 간단하고 직관적이며 이해하기 쉽고 구현할 수 있다. 동적으로 스톱로스를 추적함으로써 트렌드 반전이 될 때까지 지속적으로 수익을 얻을 수 있다.

우위 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 카마릴라 통로를 기반으로 잠재적인 지원과 저항을 정확하게 파악할 수 있다.

  2. 일률적인 필터링과 결합하여, 돌파 신호의 진리와 거짓을 효과적으로 구분할 수 있다.

  3. 상환 상쇄를 방지하기 위해 상쇄를 추적하는 방법을 사용하면 지속적인 이익을 얻을 수 있습니다.

  4. 전략적 신호는 간단하고 명확하며, 동작을 판단하기 쉽다.

  5. 매개 변수를 자주 조정할 필요 없이 매개 변수에 맞는 자동 거래.

위험과 해결책

이 전략에는 다음과 같은 위험도 있습니다.

  1. 카마릴라 통로 (Camaleira Channel) 는 트렌드 전환점을 효과적으로 판단하지 못하여 손실을 확대할 수 있습니다.

    • 해결 방법: 동요 지표와 같은 다른 지표와 결합하여 트렌드 반전을 판단합니다.
  2. 불합리한 스톱포인트 설정은 조기 중단 또는 손실 확장을 초래할 수 있습니다.

    • 해결 방법: 다양한 스톱포인트 설정을 최적화하고 테스트합니다.
  3. 파격 신호는 가짜 파격이 있을 수 있다.

    • 해결 방법: 확인을 위해 더 많은 미세한 파동 지표를 추가하거나, 적절한 폭파 판단 기준을 완화하십시오.
  4. 이 시장의 큰 흔들림에는 여러 개의 가짜 돌파구가 있었습니다.

    • 해결책: 위기 상황에서 거래를 피하거나, 또는 적절히 침해 기준을 완화하십시오.

최적화 제안

이 전략은 다음과 같은 측면에서 최적화될 수 있습니다.

  1. 복합 필터링 지표를 증가시키고, 돌파율의 정확도를 높인다. KDJ, MACD 등이 고려될 수 있다.

  2. 다이내믹 스톱을 도입하고 ATR 지표와 결합하는 등 스톱 스톱 전략을 최적화한다.

  3. 다양한 품종의 매개 변수를 최적화하여 안정성을 높인다.

  4. 대주기 트렌드에 대한 판단을 높이고 역대 거래를 피하십시오.

  5. 그 날 수량 분석과 함께, 초점이 높은 수량으로 돌파할 수 있다.

  6. 자동 변수 최적화 프로그램을 개발하여 실시간으로 변수를 최적화한다.

  7. 이 전략은 가격 차이를 이용하는 다중 경매 전략으로 확장되었다.

요약하다

이 전략의 전체적인 아이디어는 명확하고 간단하며, 실용성이 강하며, 전형적인 돌파 추적 전략이다. 카마릴라 통로를 통해 잠재적인 지원 저항을 판단하고, 그 다음 일률적인 필터링과 결합하여 돌파 방향을 결정한다.

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

//@version=2
//Created by CristianD
strategy(title="CamarillaStrategyV1", shorttitle="CD_Camarilla_StrategyV1", overlay=true) 
//sd = input(true, title="Show Daily Pivots?")
EMA = ema(close,8)

//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 and open < dtime_h4 and EMA < close
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit ("Exit Long","Long",  trail_points = 140,trail_offset = 1, loss =170) 
    //trail_points = 40, trail_offset = 3, loss =70 and


shortCondition = close <dtime_l4 and open >dtime_l4 and EMA > close
if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit ("Exit Short","Short", trail_points = 110,trail_offset = 1, loss =120)