모멘텀 브레이크아웃 카말라 지원 전략


생성 날짜: 2023-12-06 18:09:06 마지막으로 수정됨: 2023-12-06 18:09:06
복사: 0 클릭수: 379
1
집중하다
1166
수행원

모멘텀 브레이크아웃 카말라 지원 전략

개요

이 전략은 동력 지표와 핵심 지지점과 결합된 브레이크 트레이딩 전략이다. 이 전략은 카말라 지지점, 이동 평균 및 가격 브레이크를 결합하여 트레이딩 신호를 생성한다.

전략 원칙

이 전략의 핵심 논리는: 가격이 중요한 카말라 지지점 근처에 있을 때 그리고 효과적으로 그 지점을 돌파할 때, 구매 신호를 생성하고; 가격이 중요한 카말라 저항점까지 올라갈 때, 판매 신호를 생성한다.

구체적으로, 전략은 카말라 지지점 L3을 구매 신호의 확인 지점으로 사용한다. 가격이 L3보다 낮고 L3와 L2의 중간 지점보다 낮으면 구매 조건이 촉발된다. 이것은 가격이 핵심 지지점에 가깝고 지지부진이 기대된다는 것을 의미한다. 가짜 돌파구를 필터링하기 위해, 전략은 진입 조건도 설정한다: 종료 가격이 오픈 가격보다 크다.

전략의 중단 방법은 동적 중지 지점을 설정하는 것입니다. 가격이 카말라 저항 지점 H1과 H2의 중간 지점을 초과 할 때, 중지 판매를 촉발합니다. 이 동적 중지 지점은 시장의 변동 정도에 따라 trailing stop loss를 할 수 있습니다.

우위 분석

이것은 추세와 지지를 결합한 신뢰할 수 있는 전략입니다.

  1. 캄라의 중요한 지점을 활용하는 것은 반복적으로 검증된 중요한 가격입니다.
  2. 트렌드 필터와 결합하여, 함축을 줄일 수 있다. EMA가 다면만 더하고, EMA가 공허할 때만 공허한다.
  3. 동적 중지 전략, 시장의 변동에 따라 중지 위치를 조정, 오류 용인 .

위험 분석

이 전략에는 몇 가지 위험도 있습니다.

  1. 카마라 지점은 유효하지 않을 수 있습니다. 시장 구조가 바뀌면 이러한 핵심 지점은 더 이상 적용되지 않을 수 있습니다.
  2. 스톱 피해가 너무 급진적이어서, 작은 스톱 피해가 사전에 쏘여질 수 있다.
  3. 구매 신호는 하락 과정에서 잘못된 반동에 나타날 수 있으며, 손실 위험이 있습니다.

대책은: 카마라 지수의 변수를 조정하여 현재 시장의 변동 범위에 더 적합하게 만듭니다. 과도한 손실을 방지하기 위해 중지 손실을 적절하게 완화하십시오. 추세가 하락하면 공백만하고 더 많은 포장을 피하십시오.

최적화 방향

이 전략은 다음과 같은 방향으로 더 개선될 수 있습니다.

  1. 부가적인 필터링 조건을 추가하여, 양력 지표, 탄력 지표 등으로, 잘못된 방향에 착각하는 것을 방지한다.
  2. 카말라 파라미터를 최적화하여 지지 저항 지점을 현재의 변동 범위에 더 잘 맞추도록 한다.
  3. 다른 이동 평균 변수를 시도하여 최적의 변수 조합을 찾으십시오.
  4. 다양한 품종의 특성에 따라 스톱더미컬리티를 조정한다.

요약하다

이 전략은 종합적으로 트렌드, 지지, 파격과 같은 여러 차원을 사용하여 입시 및 중단 규칙을 설정합니다. 이것은 더 안정적인 파격 거래 전략입니다. 그것은 카말라의 중요한 지점의 검증 효과와 동력 지표의 추세 판단을 결합하여 높은 확률 영역에서 트렌드 거래 기회를 잡기 위해 고안되었습니다. 동시에 위험을 제어하기 위해 동적으로 중지합니다. 이 전략은 전략 군에 효과적인 트렌드 파격 전략을 추가 할 수 있습니다.

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

//@version=2
//Created by CristianD
strategy(title="CamarillaStrategyVhaouri", shorttitle="CD_Camarilla_StrategyV1", overlay=true) 
//sd = input(true, title="Show Daily Pivots?")
EMA = ema(close,8)
hh ="X"
//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, 'W', pivot[1]) 
dtime_h6 = request.security(syminfo.tickerid, 'W', h6[1]) 
dtime_h5 = request.security(syminfo.tickerid, 'W', h5[1]) 
dtime_h4 = request.security(syminfo.tickerid, 'W', h4[1]) 
dtime_h3 = request.security(syminfo.tickerid, 'W', h3[1]) 
dtime_h2 = request.security(syminfo.tickerid, 'W', h2[1]) 
dtime_h1 = request.security(syminfo.tickerid, 'W', h1[1]) 
dtime_l1 = request.security(syminfo.tickerid, 'W', l1[1]) 
dtime_l2 = request.security(syminfo.tickerid, 'W', l2[1]) 
dtime_l3 = request.security(syminfo.tickerid, 'W', l3[1]) 
dtime_l4 = request.security(syminfo.tickerid, 'W', l4[1]) 
dtime_l5 = request.security(syminfo.tickerid, 'W', l5[1]) 
dtime_l6 = request.security(syminfo.tickerid, 'W', l6[1]) 

men = (dtime_l1-dtime_l2)/7
//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_l3 and close  <= (dtime_l3-men)//close >dtime_h4 and open < dtime_h4 and EMA < close
if (longCondition)
    strategy.entry("Long12", strategy.long)
    strategy.exit ("Exit Long","Longl2") 
if (high >= (dtime_h1-men))
    strategy.entry("Short", strategy.short)
    strategy.exit ("Exit Short","Short")