여러 시간 프레임에 걸쳐 피보트 슈퍼 트렌드 전략

저자:차오장, 날짜: 2024-01-31 17:29:37
태그:

img

전반적인 설명

이 전략은 피보트 포인트 지표와 평균 진정한 범위 밴드를 결합하여 여러 시간 프레임에 걸쳐 트렌드 추적 시스템을 구현합니다. 더 나은 진입과 출구를 위해 장기적 지원과 저항을 결정하는 동안 피보트 포인트를 사용하여 중간 주기에 대한 트렌드를 캡처 할 수 있습니다.

전략 논리

이 전략은 주로 두 가지 지표에 기반합니다.

  1. 피보트 포인트: 피보트 포인트는 주요 지지 및 저항 영역으로 사용될 수 있습니다.

  2. 평균 진 범위 밴드: 특정 기간 동안의 평균 진 범위를 계산하고, 중간 밴드를 위아래로 이동하여 채널을 형성합니다. 상위 및 하위 밴드는 동적 스톱 손실 라인으로 사용될 수 있습니다.

구체적인 거래 논리는 다음과 같습니다.

가격이 평균 진정한 범위 채널을 통과 할 때, 브레이크오웃 방향으로 긴 또는 짧은 포지션을 취하십시오. 가격이 채널로 돌아 왔을 때 포지션을 닫습니다. 또한, 가격이 상부 피보트 포인트를 통과 할 때, 긴 자세를 취하십시오. 가격이 하위 피보트 포인트를 통과 할 때, 짧은 자세를 취하십시오.

이 전략은 또한 피보트 중간 라인 개념을 도입합니다. 이윤이 중간 라인을 깨면 수익을 확보하고 위험을 통제하기 위해 절반 포지션을 닫을 수 있습니다.

이점 분석

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

  1. 다중 시간 프레임 설계: 긴 사이클과 중간 사이클은 주요 트렌드를 결정하고 짧은 사이클은 특정 항목을 결정합니다.

  2. 피보트 중계선은 절반의 포지션을 닫을 수 있는 옵션으로 수익을 얻을 수 있습니다.

  3. 평균 True Range Bands는 명확한 스톱 로스 레벨을 제공합니다.

  4. 이 전략은 몇 개의 매개 변수를 가지고 있으며 최적의 매개 변수 조합을 위해 최적화하기 쉽습니다.

  5. 이는 가짜 탈출의 위험을 최대한 피합니다.

위험 분석

이 전략은 또한 몇 가지 위험을 안고 있습니다.

  1. 높은 시장 변동성 동안 더 큰 스톱 로스 위험.

  2. 중간선은 종종 시장 연대 과정에서 스톱 로스를 유발할 수 있습니다.

  3. 부적절한 매개 변수 선택은 너무 적은 거래 또는 너무 빈번한 거래로 이어질 수 있습니다.

  4. 최근 피보트 포인트 파업은 거짓 파업으로 밝혀질 수 있습니다.

최적화 방향

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

  1. 가짜 신호를 피하기 위해 볼링거 밴드와 볼륨과 같은 더 많은 필터를 결합하십시오.

  2. 가장 좋은 매개 변수 조합을 찾기 위해 피보트 포인트와 ATR의 기간을 최적화합니다.

  3. 중간선 주위를 프 구역으로 설정해서 자주 발사되는 것을 피하세요.

  4. 트렌드 필터를 추가하여 주요 트렌드를 따라 작동하도록 합니다.

결론

일반적으로 이것은 매우 실용적인 트렌드 추적 전략이다. 트렌드 시스템의 일반적인 스톱 로스 어려움을 해결하고 위험 조절 가능한 트렌드 거래를 달성한다. 이것은 매우 권장되는 전략이다. 적절한 최적화와 개선으로 성능이 더욱 향상될 수 있다.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
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/
// © LonesomeTheBlue

//@version=4
strategy("Pivot Point SuperTrend [Backtest]", overlay = true)
prd = input(defval = 2, title="Pivot Point Period", minval = 1, maxval = 50)
Factor=input(defval = 3, title = "ATR Factor", minval = 1, step = 0.1)
Pd=input(defval = 10, title = "ATR Period", minval=1)
usecenter = input(defval = false, title="Use Center Line to Close Entry for 50%")
showpivot = input(defval = false, title="Show Pivot Points")
showcl = input(defval = false, title="Show PP Center Line")


float ph = na
float pl = na
ph := pivothigh(prd, prd)
pl := pivotlow(prd, prd)

plotshape(ph and showpivot, text="H",  style=shape.labeldown, color=na, textcolor=color.red, location=location.abovebar, transp=0, offset = -prd)
plotshape(pl and showpivot, text="L",  style=shape.labeldown, color=na, textcolor=color.lime, location=location.belowbar, transp=0, offset = -prd)

float center = na
center := center[1]
float lastpp = ph ? ph : pl ? pl : na
if lastpp
    if na(center)
        center := lastpp
    else
        center := (center * 2 + lastpp) / 3

Up = center - (Factor * atr(Pd))
Dn = center + (Factor * atr(Pd))

float TUp = na
float TDown = na
Trend = 0
TUp := close[1] > TUp[1] ? max(Up, TUp[1]) : Up
TDown := close[1] < TDown[1] ? min(Dn, TDown[1]) : Dn
Trend := close > TDown[1] ? 1: close < TUp[1]? -1: nz(Trend[1], 1)
Trailingsl = Trend == 1 ? TUp : TDown

linecolor = Trend == 1 and nz(Trend[1]) == 1 ? color.lime : Trend == -1 and nz(Trend[1]) == -1 ? color.red : na
plot(Trailingsl, color = linecolor ,  linewidth = 2, title = "PP SuperTrend")

plot(showcl ? center : na, color = showcl ? center < hl2 ? color.blue : color.red : na, transp = 0)

bsignal = Trend == 1 and Trend[1] == -1
ssignal = Trend == -1 and Trend[1] == 1

if bsignal
    strategy.entry("Buy", true, 2, comment = "Buy")
if ssignal
    strategy.entry("Sell", false, 2, comment = "Sell")

if strategy.position_size == 2 and center > hl2 and usecenter
    strategy.close("Buy", qty_percent = 50, comment = "close buy entry for 50%")
if strategy.position_size == -2 and center < hl2 and usecenter
    strategy.close("Sell", qty_percent = 50, comment = "close sell entry for 50%")
    
if change(Trend)
    strategy.close_all()

더 많은