피브 포인트 브레이크업 전략

저자:차오장, 날짜: 2023-09-27 16:35:26
태그:

전반적인 설명

피보트 포인트 브레이크아웃 전략 (Pivot Point Breakout Strategy) 은 최근 저항보다 가격이 떨어지면 주식을 구매하고 최근 지지를 넘어서면 판매하는 트렌드 추후 전략이다. 이 간단한 직접적인 전략은 강력한 시장 관점이 없는 투자자에게 적합하지만 트렌드를 따르고 싶어하는 투자자에게 적합하다.

전략 논리

이 전략은 최근 저항 및 지원 라인으로서 한 기간 동안 가장 높은 가격과 가장 낮은 가격의 중간 지점을 계산합니다. 가격이 이러한 회전 지점을 통과하면 거래 할 수있는 트렌드 변화를 신호합니다.

특히, 지난 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)


더 많은