슈퍼트렌드 트렌드 전략

저자:차오장, 날짜: 2023-09-24 13:19:47
태그:

전반적인 설명

이 전략은 가격 트렌드 방향을 결정하고 트렌드 다음 전략 범주에 속하는 거래 신호를 생성하기 위해 슈퍼 트렌드 지표를 사용합니다. 특히 Tesla (TSLA) 1 분 차트에서 좋은 결과를 얻으며 테스트됩니다.

전략 논리

  1. ATR 및 최대 최대 및 최저 최저의 평균을 계산하여 곱셈자에 기초하여 SuperTrend 상위 및 하위 대역을 결정합니다.

  2. 가격이 상위 계단 이상 또는 하위 계단 아래로 돌파되는지를 결정하여 슈퍼 트렌드 방향을 결정합니다.

  3. 가격이 하위 범위를 넘을 때 긴 신호. 가격이 상위 범위를 넘을 때 짧은 신호.

  4. 신호가 발동되면 다음 바에 입력하거나 가격이 슈퍼 트렌드 밴드에 도달하면 즉시 입력할 수 있습니다.

장점

  1. 슈퍼트렌드는 트렌드를 명확하게 파악하고 프로그래밍이 쉽습니다.

  2. 유연한 진입 옵션은 다양한 거래자의 선호도에 맞습니다.

  3. 중장기 트렌드를 빠르게 파악할 수 있어 트렌드를 따라가기에 적합합니다.

  4. 빈번한 거래는 확장과 개선이 가능합니다.

위험성

  1. 슈퍼트렌드는 최고의 엔트리를 놓치고 있습니다.

  2. 높은 거래 빈도는 더 큰 미끄러짐 비용을 초래합니다.

  3. 스톱 로스 같은 위험 관리 도구가 없습니다.

  4. 테슬라 1분 데이터만 이용해서 백테스트를 했는데 전략의 타당성을 증명하기 힘들어요

가능한 해결책:

  1. 지연을 줄이기 위해 매개 변수를 조정합니다.

  2. 비용 제한을 위해 미끄러짐 조절을 추가합니다.

  3. 매 거래에 대한 손해를 통제하기 위해 스톱 손실을 포함합니다.

  4. 더 많은 제품과 시간 프레임에 대한 견고성 테스트

최적화 방향

  1. 지연을 줄이기 위해 다른 매개 변수 세트를 테스트합니다.

  2. 필터를 추가해서 윙사그를 피하세요.

  3. 더 높은 효율성을 위해 돈을 최적화하십시오.

  4. 슈퍼트렌드 방향을 예측하기 위해 머신러닝을 포함합니다.

  5. 신호를 확인하고 안정성을 향상시키기 위해 다른 지표를 추가합니다.

요약

이 전략은 트렌드를 따르는 전략의 전형적인 중장기 트렌드 방향을 식별하기 위해 슈퍼 트렌드를 사용합니다. 전체적인 틀은 간단하고 효과적이지만 진입 기회, 위험 관리, 매개 변수 선택 등과 같은 분야에서 추가적으로 개선 될 수 있습니다. 제품 전반에 대한 더 많은 역사적 데이터와 기계 학습과 같은 통합 기술로 안정성과 수익성이 크게 향상 될 수 있습니다.


/*backtest
start: 2023-08-24 00:00:00
end: 2023-09-23 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("QuantNomad - SuperTrend - TSLA - 1m", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

// INPUTS //
st_mult   = input(3,   title = 'SuperTrend Multiplier', minval = 0, maxval = 100, step = 0.01)
st_period = input(120, title = 'SuperTrend Period',     minval = 1)

// CALCULATIONS //
up_lev = hl2 - (st_mult * atr(st_period))
dn_lev = hl2 + (st_mult * atr(st_period))

up_trend   = 0.0
up_trend   := close[1] > up_trend[1]   ? max(up_lev, up_trend[1])   : up_lev

down_trend = 0.0
down_trend := close[1] < down_trend[1] ? min(dn_lev, down_trend[1]) : dn_lev

// Calculate trend var
trend = 0
trend := close > down_trend[1] ? 1: close < up_trend[1] ? -1 : nz(trend[1], 1)

// Calculate SuperTrend Line
st_line = trend ==1 ? up_trend : down_trend

// Plotting
plot(st_line, color = trend == 1 ? color.green : color.red , style = plot.style_line, linewidth = 2, title = "SuperTrend")

plotshape(crossover( close, st_line), location = location.belowbar, color = color.green)
plotshape(crossunder(close, st_line), location = location.abovebar, color = color.red)

// Strategy with "when"
//strategy.entry("long",  true,  when = crossover( close, down_trend[1]))
//strategy.entry("short", false, when = crossunder(close, up_trend[1]))

// Strategy with stop orders
strategy.entry("long",  true,  stop = down_trend[1])
strategy.entry("short", false, stop = up_trend[1])

더 많은