알파 트렌드와 브린 밴드 결합의 평균 회귀 + 트렌드 추적 전략

저자:차오장, 날짜: 2024-03-28 16:32:35
태그:

AlphaTrend和布林带相结合的均值回归+趋势跟踪策略

개요

이 전략은 알파 트렌드 지표와 브린밴드 전략의 특징을 결합한다. 알파 트렌드 지표는 시장의 추세를 포착하기 위해 사용되며 브린밴드 전략은 시장의 평균 회귀 특성을 포착하기 위해 사용된다. 전략의 주요 생각은: 가격이 브린밴드 궤도를 깨고 알파 트렌드 지표가 상승할 때 더 많은 것을하는 것; 가격이 브린밴드 궤도를 깨고 알파 트렌드 지표가 하향하는 동안 공백하는 것. 전략의 출구 조건은: 가격이 알파 트렌드 지표를 넘어갈 때 평형하는 것이다.

전략적 원칙

  1. 알파트렌드 지표의 계산:
    • Novolumedata 파라미터에 따라 RSI 또는 MFI를 사용하기로 결정
    • 변동 기준으로 ATR를 계산합니다.
    • 트렌드 판단에 사용되는 UPT와 DOWNT의 상하 문턱을 계산합니다.
    • 알파 트렌드 지표는 가격과 UPT와 DOWNT의 관계에 따라 업데이트됩니다.
  2. 브린 밴드 계산:
    • BBPeriod 기간 동안 종료 가격의 단순한 이동 평균 (SMA) 을 중장선으로 계산합니다.
    • 종결 가격 계산 기준 차이는 (SD)
    • 윗 궤도=SMA+BBMultiplier*SD
    • 아래 경로=SMA-BBMultiplier*SD
  3. 전략적 입장 조건:
    • 다중 조건: 종료 가격은 브린 벨트를 돌파하고 알파 트렌드 지표가 상승합니다.
    • 공허한 조건: 마감 가격은 브린 벨트를 돌파하고 알파 트렌드가 하락합니다
  4. 전략적 출전 조건:
    • 알파 트렌드 지표에 따르면: 가격이 알파 트렌드 지표를 넘어갈 때 평형

전략은 트렌드 추적과 평균적 회귀의 특징을 결합하여 트렌드가 분명할 때 트렌드를 따라가며 불안정한 시장에서 초과 수익을 창출합니다. 알파 트렌드 지표는 가격 움직임에 따라 유연하게 조정하여 추세에 더 잘 적응합니다. 또한 브린 밴드는 객관적으로 가격의 상대적 높고 낮은 부분을 묘사할 수 있으며, 둘의 조합은 효과적인 입문 신호를 형성합니다.

장점 분석

  1. 트렌드 추적과 평균 회귀가 결합되어 다양한 시장 상태에서 기회를 잡습니다.
  2. 알파 트렌드 지표는 가격 움직임에 유연하게 적응하여 추세와 변동에 균형을 맞추고 있습니다.
  3. 알파 트렌드 지표는 가격과 거래량 정보를 동시에 고려하고 신호 신뢰성이 높습니다.
  4. 브린밴드 개념은 간단하며, 가격의 상대적인 높낮이를 객관적으로 묘사할 수 있으며, 알파 트렌드 지표와 결합하여 효과적인 필터링 메커니즘을 형성합니다.
  5. 매개 변수 조정 가능, 전략 유연성 높고 시장 특성에 따라 최적화 할 수 있습니다.

위험 분석

  1. 알파트렌드 지표는 파라미터에 상대적으로 민감하며, 파라미터 설정이 잘못되면 신호가 실패할 수 있습니다.
  2. 시장이 불안정한 시기에 브린밴드와 알파트렌드가 결합하면 빈번한 신호가 발생할 수 있습니다.
  3. 비상 사태에서 전략은 실패할 수 있습니다.
  4. 고정 지점 중단은 더 큰 위험을 감수 할 수 있습니다.
  5. 전략적 부재, 포지션 관리 및 자금 관리

이러한 위험에 대해 다음과 같은 대책이 취할 수 있습니다.

  1. 다른 시장과 품종에 따라 매개 변수를 최적화하고 재검토합니다.
  2. 더 많은 신호를 필터링하여 빈번한 거래의 비용을 줄입니다.
  3. 합리적인 손해배상 지점을 설정하고 엄격하게 손해배상을 실행하십시오.
  4. 추세 파악의 정확성을 높이기 위해 더 강력한 추세 판단 지표를 도입합니다.
  5. 실제 거래에서, 단일 거래의 위험 포장을 줄이기 위해 엄격한 자금 관리 원칙을 준수합니다.

최적화 방향

  1. 지표 매개 변수 최적화: 신호의 효과를 높이기 위해 다른 품종과 주기에 따라 매개 변수를 최적화합니다.
  2. 신호 필터링: 더 많은 필터링 조건이 도입되는데, 예를 들어 가격이 브린밴드를 넘어서면 브린밴드 밖에서 마감해야 하며 노이즈 신호를 줄여야 한다.
  3. 스톱손실 최적화: ATR 스톱손실이나 퍼센트리 스톱손실과 같은 더 유연한 스톱손실 전략을 사용합니다.
  4. 포지션 관리: 위험도에 따라 포지션을 동적으로 조정하고, 위험도가 높을 때 포지션을 낮추고, 위험도가 낮을 때 포지션을 높입니다.
  5. 다른 지표와 결합: 트렌드 지표 ADX, 동력 지표 RSI와 같은 더 많은 효과적인 지표를 도입하여 신호의 신뢰성을 더욱 향상시킵니다.
  6. 자금 관리: 자금 관리 원칙을 엄격하게 적용하고, 단일 거래의 위험 인포는 계정의 2%를 초과하지 않으며, 전체 위험 인포는 계정의 10%를 초과하지 않습니다.

전략에는 최적화 할 수있는 많은 공간이 있습니다. 파라미터 최적화와 신호 필터링은 전략의 성능을 직관적으로 향상시킬 수 있습니다. 포지션 관리가 도입되면 수익 곡선을 매끄럽게 할 수 있습니다. 더 유연한 스톱 손실 방식은 단일 거래의 위험을 줄일 수 있습니다. 이러한 수단의 조합을 통해 최적화하면 전략의 성능을 더욱 향상시켜 실제 거래에서 안정적인 수익을 얻을 수 있습니다.

요약

이 전략은 트렌드 추적과 평균적 회귀의 두 가지 일반적인 정량화 전략 아이디어를 능숙하게 결합하고, 알파 트렌드 지표와 고전적인 브린밴드 지표를 사용한다. 알파 트렌드 지표는 가격과 거래량 정보를 활용하여 트렌드를 파악하는 동시에 시장의 리듬에 잘 적응한다. 브린밴드 지표는 상대적으로 높은 가격과 낮은 가격을 객관적으로 그려서 과잉 매매를 효과적으로 포착할 수 있다. 두 지표의 결합은 트렌드와 가격의 공감대를 형성하여 트렌드 시장과 불안정 시장에서 유연하게 기회를 포착할 수 있다.

전략의 전반적인 논리는 명확하고, 매개 변수 설정은 유연하며, 다양한 품종과 시기를 위해 최적화 할 수 있습니다. 동시에 전략의 위험 지점도 비교적 분명하며, 포지션 관리 및 중지 손실 측면에서도 추가 최적화가 필요합니다. 또한, 신호의 신뢰성을 더욱 향상시키기 위해 ADX와 RSI와 같은 동력 지표와 같은 경향 지표의 도입을 고려할 수 있습니다. 전반적으로,이 전략은 트렌드 투자와 평형 회귀 사상의 고전적 결합으로, 알파 트렌드 지표의 장점을 잘 활용하고 추가 최적화 및 추적을 가치가 있습니다. 연구자들은 추가 닦아낸 후에이 전략이 실제 거래의 수익 도구가 될 수 있다고 믿습니다.


/*backtest
start: 2023-03-22 00:00:00
end: 2024-03-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © brlu99


//@version=5
strategy(title="AlphaTrend and Bollinger Bands 120324 Strategy", shorttitle="AT_BB120324", overlay=true, format=format.price, precision=2, pyramiding=0)

// AlphaTrend Indicator
coeff = input.float(1, 'Multiplier', step=0.1)
AP = input(14, 'Common Period')
ATR = ta.sma(ta.tr, 20)
src = input(close)
novolumedata = input(title='Change calculation (no volume data)?', defval=false)
upT = low - ATR * coeff
downT = high + ATR * coeff
AlphaTrend = 0.0
AlphaTrend := (novolumedata ? ta.rsi(src, AP) >= 50 : ta.mfi(hlc3, AP) >= 50) ? upT < nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : upT : downT > nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : downT

// Bollinger Bands Strategy
BBPeriod = input.int(20, title="BB Period", minval=1)
BBMultiplier = input.float(2.0, title="BB Multiplier", minval=0.1)
basis = ta.sma(close, BBPeriod)
dev = ta.stdev(close, BBPeriod)
upper = basis + BBMultiplier * dev
lower = basis - BBMultiplier * dev

// Strategy Conditions
longCondition = ta.crossover(close, upper) and ta.crossover(AlphaTrend, AlphaTrend[1])
shortCondition = ta.crossunder(close, lower) and ta.crossunder(AlphaTrend, AlphaTrend[1])
// Exit conditions for Strategy 6
longExit_AT_6 = ta.crossover(close, AlphaTrend)
shortExit_AT_6 = ta.crossunder(close, AlphaTrend)
// Exit condition series
exit1 = input.bool(true, title="Enable Exit Condition for Strategy 1")

// Define exit conditions for each strategy
exit1_condition = close < AlphaTrend ? 1.0 : na

// Strategy Actions
strategy.entry("Buy", strategy.long, when=longCondition)
strategy.entry("Sell", strategy.short, when=shortCondition)
// Exit conditions for Strategy 1
strategy.exit("Buy", "longExit_AT_6", stop = exit1_condition, when =shortExit_AT_6 )
strategy.exit("Sell", "shortExit_AT_6", stop = exit1_condition, when =longExit_AT_6)

// Plotting
plot(AlphaTrend, color=color.blue, title="AlphaTrend")
plot(upper, color=color.green, title="Upper Bollinger Band")
plot(lower, color=color.red, title="Lower Bollinger Band")

// Alerts
alertcondition(longCondition, title='Potential Buy Signal', message='AlphaTrend crossed above Upper Bollinger Band')
alertcondition(shortCondition, title='Potential Sell Signal', message='AlphaTrend crossed below Lower Bollinger Band')


더 많은 내용