리소스 로딩... 로딩...

카마릴라 피보트 포인트 돌파구와 동력 반전 낮은 흡수 금십자 전략

저자:차오장, 날짜: 2023-12-07 16:57:11
태그:

img

전반적인 설명

이 전략은 카마릴라 피보트 포인트의 돌파 신호와 RSI 역전 지표와 함께 낮은 흡수 기회로 결합하여 고급 모멘텀 역전 낮은 흡수 전략을 형성합니다. 가격이 카마릴라 피보트 포인트를 뚫을 때 거래 신호가 생성됩니다. 낮은 RSI는 더 이상 침몰 기회를 확인합니다. 이것은 고급 모멘텀 역전 전략에 속합니다.

전략 원칙

이 전략의 핵심 신호는 카마릴라 중추점으로부터 나온다. 카마릴라 중추점은 전날의 가격 범위에 기초하여 계산되며 S1에서 S5 중추점 및 R1에서 R5 중추점으로 나뉘어 있다. 가격은 S1 중추점에서 상승할 때 구매 신호가 생성되고, 가격이 R1 중추점에서 하락할 때 판매 신호가 생성된다. 또한, RSI 지표는 진입 성공률을 향상시키기 위해 과판 상태인지 여부를 결정하는 데 사용됩니다.

구체적으로, 전략은 먼저 어제의 최고 가격, 최저 가격 및 폐쇄 가격에 기초하여 Camarilla 회전 지점을 계산합니다. 그 다음 거래 신호를 생성하기 위해 폐쇄 가격이 회전 지점을 통과하는지 여부를 판단합니다. 동시에 RSI 지표가 낮은 위치에 있는지 여부를 결정합니다. 30 이하는 과판된 것으로 간주됩니다. 폐쇄 가격이 회전 지점을 통과하고 RSI가 30 이하일 때만 실제 거래 신호가 생성됩니다. 구매 신호는 S1 회전 지점의 상승 돌파구이며 판매 신호는 R1 회전 지점의 하향 돌파구입니다.

예를 들어, 어제의 가격이 10-11, 오늘의 폐쇄 가격이 11.05 (S1 피브 포인트) 를 넘어서고, 동시에 RSI 지표가 20을 표시하면 구매 신호가 생성됩니다. 오늘의 폐쇄 가격이 10.95 (R1 피브 포인트) 를 넘어서고, RSI가 20을 표시하면 판매 신호가 생성됩니다. 따라서이 전략은 돌파 신호와 과잉 판매 신호의 장점을 결합합니다.

이점 분석

이 전략의 가장 큰 장점은 과판 및 반전 기회를 식별하는 것입니다. 카마릴라 피보트 포인트 자체는 중요한 가격 지원 및 저항 포인트를 파악 할 것입니다. 반전의 시기를 결정하기 위해 RSI 지표와 결합하면 바닥을 정확하게 위치하고 상승과 하락을 피할 수 있습니다. 이것은 더 고급 돌파구 전략에 속합니다.

또한, 피보트 포인트는 가격 변화에 맞춰 동적으로 계산된다. 파라미터 설정을 요구하는 전통적인 기술 지표와 달리. 전략은 피보트 포인트 분석의 장점을 계승하고 더 유연하다. 또한, 역전 기회는 매우 명확하고 빈번한 잘못된 신호가 나타나지 않을 것이다.

위험 분석

이 전략의 가장 큰 위험은 가격이 잘못된 브레이크오프를 가질 수 있다는 것입니다. RSI 지표가 과잉 판매 상태를 확인하는 데 사용되지만, 피벗 포인트를 뚫고 나면 가격이 여전히 역전화 될 수 있습니다. 이것은 스톱 로스를 치게 할 것입니다.

또 다른 위험은 RSI 지표가 실패하는 것입니다. 추락이 발생하더라도, RSI가 30 이하로 떨어지지 않으면 거래 신호가 형성되지 않으며, 역전 기회가 놓칠 것입니다. 이 위험을 해결하기 위해, RSI 매개 변수 설정은 그에 따라 최적화 될 수 있습니다.

최적화 방향

전략의 다음 측면은 최적화 될 수 있습니다:

  1. RSI 매개 변수를 최적화합니다. 다른 과잉 판매 라인을 테스트합니다.

  2. 조합을 위해 다른 지표를 추가하십시오. 예를 들어, KDJ 지표는 역 신호의 신뢰성을 추가로 확인할 수 있습니다.

  3. 다른 카마릴라 회전 지점을 테스트해 보세요.

  4. 스톱 로스 전략을 최적화하십시오. ATR 지표에 기반하여 스톱 로스를 설정하거나 스톱 로스로 돌파 피브 포인트를 추적 할 수 있습니다.

  5. 계약의 다른 유형을 테스트. 주식 지수, 외환, 원자재와 같은 다양한 유형의 제품에 적용됩니다. 매개 변수를 조정해야합니다.

요약

이 전략은 고급 추진력 역전 돌파구 전략에 속한다. 카마릴라 회전 지점을 통해 돌파구 신호를 판단하고 RSI 지표를 통해 과판 상태를 결정한다. 전략의 장점은 역전 기회를 식별하는 것이다. 가장 큰 위험은 가격의 잘못된 돌파구이다. 매개 변수 및 위험 관리를 최적화함으로써 전략의 안정성과 수익성이 더욱 향상될 수 있다.


/*backtest
start: 2023-11-06 00:00:00
end: 2023-12-06 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 07/05/2020
// Pivot point studies highlight prices considered to be a likely turning point
// when looking at values from a previous period, whether it be daily, weekly, 
// quarterly or annual. Each pivot point study has its own characteristics on 
// how these points are calculated. 
//
// Red color = Sell
// Green color = Buy
//
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Camarilla Pivot Points Backtest", shorttitle="CPP", overlay = true)
res = input(title="Resolution", type=input.resolution, defval="D")
SellFrom = input(title="Sell from ", defval="R1", options=["R1", "R2", "R3", "R4", "R5"])
BuyFrom = input(title="Buu from ", defval="S1", options=["S1", "S2", "S3", "S4", "S5"])
reverse = input(false, title="Trade reverse")
xHigh  = security(syminfo.tickerid,res, high)
xLow   = security(syminfo.tickerid,res, low)
xClose = security(syminfo.tickerid,res, close)
xXLC3 = (xHigh+xLow+xClose) / 3
xRange = xHigh-xLow
S1 = xClose - xRange * (1.1 / 12)
S2 = xClose - xRange * (1.1 / 6)
S3 = xClose - xRange * (1.1 / 4)
S4 = xClose - xRange * (1.1 / 2)
R1 = xClose + xRange * (1.1 / 12)
R2 = xClose + xRange * (1.1 / 6)
R3 = xClose + xRange * (1.1 / 4)
R4 = xClose + xRange * (1.1 / 2)
R5 = (xHigh/xLow) * xClose
S5 = xClose - (R5 - xClose)
pos = 0
S = iff(BuyFrom == "S1", S1, 
      iff(BuyFrom == "S2", S2,
       iff(BuyFrom == "S3", S3,
         iff(BuyFrom == "S4", S4,
          iff(BuyFrom == "S5", S5, 0)))))
B = iff(SellFrom == "R1", R1, 
      iff(SellFrom == "R2", R2,
       iff(SellFrom == "R3", R3,
         iff(SellFrom == "R4", R4,
          iff(SellFrom == "R5", R5, 0)))))
          
pos := iff(close > B, 1,
       iff(close < S, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

더 많은