브레이크아웃 포인트 반전 전략


생성 날짜: 2023-09-27 16:35:26 마지막으로 수정됨: 2023-09-27 16:35:26
복사: 0 클릭수: 808
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

개요

브레이크 포인트 회전 전략은 최근 지지점보다 높은 주식을 구입하고 최근 저항점보다 낮은 주식을 판매함으로써 트렌드의 변화를 포착하는 트렌드 추적 전략이다. 이 전략은 간단하고 직접적이며, 시장에 대한 많은 선입견이없는 트렌드를 따라보고 싶은 투자자에게 적합하다.

전략 원칙

이 전략은 일정 수일 동안의 최고 가격과 최저 가격의 중간 지점을 계산하여 가장 가까운 저항선과 지지선을 결정한다. 가격이 이러한 중요한 지점을 돌파하면 트렌드가 변화했다는 것을 나타내고 그 변화의 방향을 추적하여 거래할 수 있다.

구체적으로, 전략은 먼저 지난 N1일 최고 가격의 중간 지점을 저항선으로, 지난 N2일 최저 가격의 중간 지점을 지지선으로 계산한다. 구매 방향에서는, 당일 최고 가격이 가장 최근의 저항선을 넘어선다면, 구매 신호를 발송한다. 판매 방향에서는, 당일 최저 가격이 가장 최근의 지지선을 넘어선다면, 판매 신호를 발송한다. 투자자는 N1과 N2의 값을 스스로 설정하여 전략의 민감도를 조정할 수 있다.

이 전략은 간단하고 직접적이며, 시장을 예측할 필요가 없으며, 단지 중요한 지점의 돌파구를 추적하면 트렌드를 잡을 수 있다.

우위 분석

  • 모든 수준의 투자자를 위한 간단하고 쉬운 작업

이 전략은 매우 간단하고 직관적이며, 어떤 예측 기법도 필요하지 않으며, 저항의 지지점을 추적하는 것만으로 돌파구를 달성할 수 있다. 이것은 운영의 난이도를 줄여서 모든 수준의 투자자가 사용할 수 있도록 한다.

  • 유행 변화를 효과적으로 포착하고, 적시에 위치를 조정합니다.

핵심점 돌파는 시장에서 인정되는 트렌드 변화 신호이다. 이 전략은 트렌드 변화가 발생했을 때 신속하게 대응하고, 포지션을 조정하여, 갇히지 않도록 할 수 있다.

  • 사용자 정의 가능한 변수, 정책 조정 유연성

투자자는 좌측과 좌측의 데이터를 보는 날의 수를 스스로 설정하여 전략의 민감도를 조정할 수 있다. 더 많은 날을 보는 것은 저항지원선을 더 안정하게 하고, 더 적은 날을 보는 것은 전략을 더 유연하게 민감하게 한다.

  • 다른 전략과 결합할 수 있고, 탄력적입니다.

이 전략은 주로 트렌드 추적 기능을 구현하고, 다른 선택 시기의 전략 조합과 함께 쉽게 사용할 수 있으며, 전체적인 수익을 향상시킵니다.

위험 분석

  • 하지만,

이 전략은 트렌드 변화를 식별하는 데 일정 양의 데이터 축적이 필요하며, 구매 및 판매 지점이 다소 지연 될 수 있습니다. 가격이 반전되어 신호가 원래의 추세를 계속하는 경우를 주의해야 합니다.

  • 가짜 침입의 위험

시장이 단기간에 가짜 돌파구를 만들 수 있기 때문에 투자자들은 포획을 피하기 위해 대응력을 갖춰야 한다.

  • 탈퇴의 위험도 높다

이 전략은 전체 포지션 트렌드를 추적하기 때문에 더 큰 철회 위험이 존재한다. 투자자는 자신의 위험 부담을 고려해야 한다. 철회를 줄이기 위해 포지션 규모를 적절히 축소할 수도 있다.

  • 거래 빈도 조절에 주의해야 합니다.

만약 변수 설정이 너무 민감하다면 거래 빈도가 너무 높을 수 있다. 거래 빈도를 낮추기 위해 최소 보유 시간을 설정할 수도 있다.

최적화 방향

  • 최적화 변수 설정

N일 최고 최저 가격의 매개 변수를 장기적으로 재검토하여 최적의 매개 변수 조합을 찾을 수 있다. 또한 시장 상황의 동적 조정 매개 변수와 결합하여 트렌드가 분명할 때 더 민감한 매개 변수를 설정할 수 있다.

  • 바카르의 바카르

돌파구에 대해 최소의 진폭을 설정할 수 있으며, 작은 크기의 가짜 돌파구로 오해받지 않도록 한다. 돌파구 강도가 높을수록 트렌드 전환 가능성이 높다.

  • 다른 지표와 함께 필터링

RSI, KD 등과 같은 다른 기술 지표에 추가할 수 있으며, 키 포인트 돌파가 동시에 지표도 이탈하는 경우 신호가 더 효과적입니다. 돌파에 의존하는 신호를 피하십시오.

  • 포지션 관리를 최적화

시장 상황에 따라 포지션을 조정하여 위험을 제어할 수 있으며, 대폭적인 손실을 피하기 위해 스포르치에 대해 스톱로드를 설정할 수 있다. 또한 추세 운영 상황에 따라 포지션을 동적으로 조정할 수 있다.

요약하다

브레이크 포인트 회전 전략은 간단한 핵심 포인트 브레이크를 통해 트렌드를 추적하며, 모든 유형의 투자자에게 널리 적용할 수 있습니다. 이 전략의 장점은 간단하고 쉽게 작동하며, 트렌드 변화를 효과적으로 포착 할 수 있지만, 일정 정도의 지연, 가짜 돌파 위험 및 큰 회수도 있습니다. 매개 변수 최적화, 필터 추가, 포지션 관리 개선 등의 방법으로 전략 안정성을 높일 수 있습니다.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © EduardoMattje

//@version=5
strategy("Pivot Point Breakout", "PPB", true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, process_orders_on_close=true)

// Constants

var L_PIVOT_HIGH = "Pivot high"
var L_PIVOT_LOW = "Pivot low"

var LEFT = "Left"
var RIGHT = "Right"

var BOTH = "Both"
var LONG = "Long"
var SHORT = "Short"

var DATES = "Date selection"
var DATES_TOOLTIP = "Change it to limit the trades for the given time interval.\n\nLeave it to disable this behaviour."

// Inputs

var orderDirection = input.string(LONG, "Order direction", options=[BOTH, LONG, SHORT])

var leftHigh = input.int(3, LEFT, minval=0, inline=L_PIVOT_HIGH, group=L_PIVOT_HIGH)
var rightHigh = input.int(3, RIGHT, minval=0, inline=L_PIVOT_HIGH, group=L_PIVOT_HIGH)

var leftLow = input.int(3, LEFT, minval=0, inline=L_PIVOT_LOW, group=L_PIVOT_LOW)
var rightLow = input.int(3, RIGHT, minval=0, inline=L_PIVOT_LOW, group=L_PIVOT_LOW)

var startDate = input(0, "Starting date", group=DATES)
var endDate = input(0, "Final date", group=DATES)

//

var float lastHigh = na
var float lastLow = na

lowPivot = ta.pivotlow(leftLow, rightLow)
highPivot = ta.pivothigh(leftHigh, rightHigh)

f_updateLevels(pivot_) => 
    var float pastLevel = na
    
    if not na(pivot_)
        pastLevel := pivot_
    
    pastLevel
    
lastLow := f_updateLevels(lowPivot)
lastHigh := f_updateLevels(highPivot)

// Validates the time interval

validTrade =  true

// Orders

if high > lastHigh
    strategy.entry("Long", strategy.long, when=orderDirection != SHORT and validTrade)
    strategy.close("Short", when=orderDirection == SHORT)
if low < lastLow
    strategy.entry("Short", strategy.short, when=orderDirection != LONG and validTrade)
    strategy.close("Long", when=orderDirection == LONG)
    
// Plots

plot(lastLow, "Last pivot low", color.red, offset=1)
plot(lastHigh, "Last pivot high", color.teal, offset=1)

plotshape(lowPivot, "Pivot low", location=location.belowbar, color=color.red, offset=-rightLow)
plotshape(highPivot, "Pivot high", color=color.teal, offset=-rightHigh)