트렌드 갭 브레이크아웃 SMA 필터 트레이딩 시스템

GAP SMA MA
생성 날짜: 2024-11-29 15:07:43 마지막으로 수정됨: 2024-11-29 15:07:43
복사: 0 클릭수: 377
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

트렌드 갭 브레이크아웃 SMA 필터 트레이딩 시스템

개요

이것은 가격 폭등과 이동 평균 필터링에 기반한 트렌드 추적 거래 시스템이다. 이 전략은 통계적으로 유의미한 가격 폭등 신호를 식별하여 SMA 트렌드 필터와 결합하여 시장이 명확한 추세가 형성될 때 거래한다. 이 전략의 핵심 정신은 공급과 수요의 불균형으로 인한 가격 폭등으로 인한 추세 연장 기회를 포착하는 것이다.

전략 원칙

이 전략은 다음과 같은 몇 가지 핵심 요소에 기반을 두고 있습니다.

  1. 폭파 인식 - 시스템은 상장 가격과 이전 상장 가격의 비율 차이를 계산하여 폭파를 인식하고 미세한 변동을 필터링하기 위해 최소 폭파 값을 설정합니다.
  2. 방향성 선택 - 여러 가지 점프 거래 모드를 제공합니다. 이는 시장 환경에 따라 사용자가 유연하게 선택할 수 있습니다.
  3. SMA 트렌드 필터 - 간단한 이동 평균을 통해 전체 트렌드를 판단하고, 가격과 트렌드 방향이 일치하는 경우에만 포지션을 개시한다.
  4. 포지션 관리 - 포지션을 관리하기 위해 미리 설정된 포지션 주기를 사용하여 위험을 효과적으로 제어한다.

전략적 이점

  1. 신호 명확함 - 점프 신호가 명확하게 보이므로 판단과 실행이 용이하다.
  2. 위험 제어 - 최소 폭파 값과 지분 기간을 설정하여 위험을 효과적으로 제어한다.
  3. 융통성 - 시장 상황에 따라 다른 점프 거래 방향을 선택할 수 있습니다.
  4. 트렌드 확인 - SMA 필터는 추가적인 트렌드 확인을 제공하여 거래 성공률을 높인다.
  5. 높은 수준의 자동화 - 전략 논리가 명확하고 자동화 거래가 쉽다.

전략적 위험

  1. 가짜 돌파 위험 - 점프 후 급속한 보완이 발생할 수 있으며, 이는 가짜 신호로 이어진다.
  2. 슬라이드 포인트 위험 - 상장 하락 거래는 큰 슬라이드 포인트에 직면 할 수 있습니다.
  3. 트렌드 반전 위험 - 고정 지분 기간은 트렌드 반전을 놓칠 수 있다.
  4. 시장 환경 의존 - 낮은 변동률 시장에서 효과적인 신호가 적다.

전략 최적화 방향

  1. 동적 지분 기간 - 시장의 변동에 따라 동적으로 조정되는 지분 기간.
  2. 다중확인 - 트래픽, 변동률 등의 지표를 도입하여 신호확인을 한다.
  3. 스톱 로즈 최적화 - 추적 스톱 또는 변동률 스톱 로즈를 추가합니다.
  4. 신호 등급 - 기공폭에 따라 설계된 등급 창고 개방 시스템.
  5. 시장 선택 - 적절한 시장 조건에서 거래하기 위해 시장 환경을 식별하는 메커니즘을 구축합니다.

요약하다

이 전략은 가격 폭등과 평행선 트렌드 필터를 결합하여 논리적으로 명확하고 위험을 제어할 수 있는 거래 시스템을 구축한다. 합리적으로 설정된 매개 변수와 지속적인 최적화를 통해 이 전략은 트렌드 시장에서 안정적인 수익을 얻을 수 있다. 거래자는 실장에 사용하기 전에 충분한 역사 테스트를 수행하고 특정 시장 특성에 따라 타겟팅 최적화를 수행하는 것이 좋습니다.

전략 소스 코드
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Simplified Gap Strategy with SMA Filter", overlay=true)

// Input fields for user control
long_gap_threshold = input.float(0.1, title="Gap Threshold (%)", minval=0.01, step=0.01)  // Minimum percentage for gaps
hold_duration = input.int(10, title="Hold Duration (bars)", minval=1)  // Duration to hold the position
gap_trade_option = input.string("Long Up Gap", title="Select Trade Option", options=["Long Up Gap", "Short Down Gap", "Short Up Gap", "Long Down Gap"])  // Combined option
use_sma_filter = input.bool(false, title="Use SMA Filter")  // Checkbox to activate SMA filter
sma_length = input.int(200, title="SMA Length", minval=1)  // Length of the SMA

// RGB color definitions for background
color_up_gap = color.new(color.green, 50)    // Green background for up gaps
color_down_gap = color.new(color.red, 50)    // Red background for down gaps

// Gap size calculation in percentage terms
gap_size = (open - close[1]) / close[1] * 100  // Gap size in percentage

// Calculate gaps based on threshold input
up_gap = open > close[1] and gap_size >= long_gap_threshold  // Long gap condition
down_gap = open < close[1] and math.abs(gap_size) >= long_gap_threshold  // Short gap condition

// Calculate the SMA
sma_value = ta.sma(close, sma_length)

// Define the trading logic based on selected option and SMA filter
if (gap_trade_option == "Long Up Gap" and up_gap and (not use_sma_filter or close > sma_value))
    strategy.entry("Long", strategy.long)
if (gap_trade_option == "Short Down Gap" and down_gap and (not use_sma_filter or close < sma_value))
    strategy.entry("Short", strategy.short)
if (gap_trade_option == "Short Up Gap" and up_gap and (not use_sma_filter or close < sma_value))
    strategy.entry("Short", strategy.short)
if (gap_trade_option == "Long Down Gap" and down_gap and (not use_sma_filter or close > sma_value))
    strategy.entry("Long", strategy.long)

// Exit position after the hold duration
if (strategy.opentrades > 0)
    if (bar_index - strategy.opentrades.entry_bar_index(0) >= hold_duration)
        strategy.close("Long")
        strategy.close("Short")

// Background coloring to highlight gaps on the chart
bgcolor((gap_trade_option == "Long Up Gap" and up_gap) ? color_up_gap : na, title="Up Gap Background")
bgcolor((gap_trade_option == "Short Down Gap" and down_gap) ? color_down_gap : na, title="Down Gap Background")
bgcolor((gap_trade_option == "Short Up Gap" and up_gap) ? color_down_gap : na, title="Short Up Gap Background")
bgcolor((gap_trade_option == "Long Down Gap" and down_gap) ? color_up_gap : na, title="Long Down Gap Background")

// Plot the SMA for visualization
plot(use_sma_filter ? sma_value : na, color=color.white, title="SMA", linewidth=1)