3분 돌파 양적 전략: RSI 모멘텀 돌파 거래 시스템과 결합된 다중 기간

EMA RSI 多周期分析 突破策略 止损策略 高点突破 动能确认 Multi-Timeframe BREAKOUT momentum SWING HIGH Swing Low
생성 날짜: 2025-03-28 16:39:58 마지막으로 수정됨: 2025-03-28 16:39:58
복사: 0 클릭수: 464
avatar of ianzeng123 ianzeng123
2
집중하다
319
수행원

3분 돌파 양적 전략: RSI 모멘텀 돌파 거래 시스템과 결합된 다중 기간 3분 돌파 양적 전략: RSI 모멘텀 돌파 거래 시스템과 결합된 다중 기간

개요

이 양적 전략은 Pine Script v5에서 개발된 다주기 돌파 거래 시스템으로, 3분과 1분의 두 시간 프레임의 분석 장점을 결합한다. 전략의 핵심 아이디어는 3분 차트에서 중요한 가격 높음 (정상) 과 낮음 (그림) 을 식별하고, 1분 차트에서 동력 지표 확인 후 거래를 수행하는 것이다. 이 전략은 60주기 지수 이동 평균 (EMA) 을 주요 트렌드 지표로 사용하고, 상대적으로 약한 지수 RSI를 통해 동력 확인 신호를 제공하여, 돌파와 결합된 전체 트렌드 추적 거래 시스템을 형성한다.

전략 원칙

이 전략의 거래 논리는 크게 세 가지 핵심 부분으로 나다.

우선, 시스템은 request.security 함수를 통해 3분 주기 가격 데이터를 얻고, 60주기 EMA를 계산한다. 정점 검사는 다중 조건 검증 메커니즘을 채택하고, 판단 기준은: 특정 가격 기둥이 EMA 위에 있어야 하며, 그 기둥의 최고 가격은 전후 두 기둥의 최고 가격보다 높아야 한다 (즉, 앞 2, 3, 4주기 및 뒤 1주기를 비교한다). 이 설계는 실제 지역 최고점을 포착하는 것을 보장한다.

두 번째로, 계곡 검사는 연속 하락 기둥을 계산하는 방법을 사용하며, 가격이 EMA를 넘어 적어도 3 개의 연속 하락 기둥이있을 때, 시스템은 이 기간 동안 가장 낮은 지점을 계곡으로 기록합니다. 이 방법은 단기 조정의 하위 지역을 효과적으로 식별합니다.

마지막으로, 1분 차트에서 입시 조건이 확인됩니다. 여기에는: 개시 가격보다 높은 가격의 종료 가격 (태양선), 가격 돌파 전에 확인된 최고치, 180주기 EMA (3분 차트의 60주기 EMA에 해당하는) 의 상향 기울기, RSI의 9주기 평균보다 높고 선이 상승 추세입니다. 이 모든 조건이 동시에 충족 될 때만 시스템이 구매 신호를 생성합니다.

전략적 이점

이 양적 돌파구 전략에는 몇 가지 중요한 장점이 있습니다.

  1. 다주기 분석 프레임워크3분 및 1분 시간 프레임과 결합하여 더 큰 트렌드를 포착하고 정확한 진입을 할 수 있으며, 가짜 돌파의 위험을 줄일 수 있습니다. 이 디자인은 신호 품질과 반응 속도를 균형을 맞추고 있습니다.

  2. 완전한 입국 확인 메커니즘가격 돌파에 의존하는 것뿐만 아니라 EMA 트렌드 방향과 RSI 동력 지표와 결합하여 여러 번 확인하여 가짜 돌파 거래의 가능성을 크게 줄였습니다.

  3. 명확한 위험 관리: 확인된 계곡값을 중지점으로 사용하여, 각 거래에 대한 명확한 위험 경계를 설정하여, 단일 거래 손실을 제어하는 데 도움이됩니다.

  4. 동적으로 시장 조건에 적응이 전략은 실시간으로 절정과 계곡을 인식하여 고정된 매개 변수 조정에 의존하지 않고 다양한 시장 변동 조건에 적응할 수 있습니다.

  5. 트렌드와 동력EMA를 통해 전체적인 트렌드 방향을 결정하고 RSI를 통해 가격 동력을 확인하여 트렌드가 없거나 트렌드가 약해지면 잘못된 거래를 피합니다.

전략적 위험

이 전략은 합리적으로 설계되었지만, 다음과 같은 잠재적인 위험들이 있습니다.

  1. 시간주기 의존성전략 성능은 선택된 시간 범위에 크게 의존합니다. 3분과 1분. 다른 시장 환경에서는 이러한 시간 프레임이 더 이상 최적의 선택이 되지 않을 수 있으며, 전략 성능이 떨어질 수 있습니다.

  2. 급격한 변동 시장의 위험가격의 급격한 상승은 높은 변동성을 가진 시장에서 급격히 상승한 뒤 급격히 하락하여 입시 신호를 발동하지만 결국 손실을 초래할 수 있습니다.

  3. 스톱 로드 설정 위험: 절벽값을 스톱으로 사용하는 것은 스톱위치의 과폭화를 초래할 수 있으며, 단일 거래의 잠재적 손실을 증가시킬 수 있다. 이 위험은 극도로 변동하는 시장에서 특히 뚜렷하다.

  4. 연속 신호 축적강세를 보이는 시장에서는 연속적으로 여러 개의 입시 신호를 생성할 수 있으며, 포지션 관리 장치가 없으면 과도한 거래와 부적절한 자금 분배로 이어질 수 있다.

  5. 매개변수 민감도60주기 EMA와 RSI 파라미터 ((14,9) 의 선택은 모든 시장 환경에 적합하지 않을 수 있으며, 파라미터의 부적절한 조정은 전략 성능의 큰 변동으로 이어질 수 있다.

이러한 위험을 해결하는 방법은 다음과 같습니다: 적응형 변수 조정 메커니즘을 추가, 필터를 추가 약한 시장 거래를 줄여, 고정된 퍼센트 손실을 중지 대안 하계 값을 중지, 포지션 관리 시스템을 도입하고 하루 최대 거래 횟수 제한을 설정.

최적화 방향

이 전략에는 다음과 같은 몇 가지 최적화 방향이 있습니다.

  1. 자기 적응 변수 시스템: 현재 전략은 고정된 60주기 EMA와 RSI ((14,9) 파라미터를 사용한다. 가능한 최적화는 시장의 변동성에 기반한 자율적 파라미터 조정 메커니즘을 도입하는 것이다. 예를 들어, 높은 변동성 시장에서 더 긴 주기의 EMA를 사용하여 소음을 줄이는 것이다.

  2. 트랜잭션 필터 추가거래 시간 필터링을 추가할 수 있습니다. 낮은 유동성을 피하기 위해), 시장 유형 식별 (추향 / 흔들림 시장을 구분하기 위해) 및 거래량 확인과 같은 필터링 조건은 신호 품질을 향상시킵니다.

  3. 손해 방지 전략의 개선: 현재 계곡값 스톱은 너무 넓거나 너무 좁을 수 있다. ATR (Average True Rate) 와 함께 동적 스톱을 설정하거나, 트래킹 스톱을 사용하여 이익을 더 잘 보호할 수 있다.

  4. 이윤 목표 설정: 현재 전략은 오직 손실을 멈추는 데에 멈추는 장치가 없습니다. 최고점과 낮은 값 사이의 거리에 따라 리스크 수익률을 설정하거나, 역동적인 수익 목표인 전 N개의 변동된 ATR 배수를 사용하여 사용할 수 있습니다.

  5. 포지션 관리 시스템 통합거래 신호의 강도 (RSI 읽기 강도, 돌파폭과 같은) 와 시장의 변동성 동력에 따라 거래 규모를 조정하여 재원 위험을 더 잘 관리하십시오.

이러한 최적화 방향의 실행은 전략의 기존의 효과를 향상시킬 수 있을 뿐만 아니라, 다양한 시장 환경에 더 잘 적응할 수 있고, 전반적인 안정성과 장기적인 수익성을 향상시킬 수 있다.

요약하다

3분 돌파구 수량화 전략은 정교하게 설계된 다주기 거래 시스템으로, 중기 ((3분) 트렌드 분석과 단기 ((1분) 동력 확인을 결합하여, 트렌드를 포착하면서도 정확한 입력을 할 수 있는 거래 방법을 만듭니다. 이 전략의 핵심 장점은 여러 계층의 확인 메커니즘과 명확한 위험 관리 프레임워크로, 가짜 돌파구 거래의 가능성을 효과적으로 줄입니다.

전략의 단점은 주로 매개 변수 고정성과 손해 막기 장치의 유연성에 초점을 맞추고 있지만, 이러한 문제는 적응 가능한 매개 변수 시스템, 향상된 위험 관리 방법 및 더 포괄적인 시장 필터로 해결할 수 있습니다. 이러한 최적화를 통해, 전략은 더 적응력 있고, 위험 관리가 더 잘 된 거래 시스템으로 발전할 잠재력이 있습니다.

이 전략은 단기 시장에서 돌파구를 잡으려는 거래자에게 구조화된 프레임워크를 제공하지만, 특정 거래 유형과 시장 환경에 따라 필요한 매개 변수 조정을 하고, 최적의 거래 결과를 얻기 위해 전략을 최적화하도록 주의해야 합니다.

전략 소스 코드
/*backtest
start: 2025-03-20 00:00:00
end: 2025-03-25 00:00:00
period: 10m
basePeriod: 10m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © adamkiil79
//@version=5
//@version=5
strategy("3min Breakout Strategy", overlay=true)

// Fetch 3-minute timeframe data
close_3min = request.security(syminfo.tickerid, "3", close)
high_3min = request.security(syminfo.tickerid, "3", high)
low_3min = request.security(syminfo.tickerid, "3", low)
open_3min = request.security(syminfo.tickerid, "3", open)

// Calculate 60-period EMA on 3-minute data
ema60_3min = ta.ema(close_3min, 60)

// Detect peaks on 3-minute data
aboveEMA_3min = close_3min > ema60_3min
peakConfirmed_3min = aboveEMA_3min[2] and high_3min[2] > high_3min[3] and high_3min[2] > high_3min[4] and high_3min[2] > high_3min[1] and high_3min[2] > high_3min[0]

// Persistent variables for peak and dip levels
var float peak_level_3min = na
var float dip_level_3min = na
var bool in_dip_sequence_3min = false
var int down_candle_count_3min = 0

// Peak detection logic
if peakConfirmed_3min
    peak_level_3min := high_3min[2]
    in_dip_sequence_3min := false
    down_candle_count_3min := 0

// Dip detection logic
else if close_3min <= ema60_3min and not na(peak_level_3min)
    if not in_dip_sequence_3min
        in_dip_sequence_3min := true
        down_candle_count_3min := close_3min < open_3min ? 1 : 0
    else
        if close_3min < open_3min
            down_candle_count_3min := down_candle_count_3min + 1
        else
            down_candle_count_3min := 0
        if down_candle_count_3min >= 3
            dip_level_3min := ta.lowest(low_3min, down_candle_count_3min)
else
    in_dip_sequence_3min := false

// 1-minute indicators for entry confirmation
ema180 = ta.ema(close, 180)  // Roughly aligns with 60-period EMA on 3-min
rsi = ta.rsi(close, 14)
rsi_signal = ta.ema(rsi, 9)

// Entry condition: Break above peak with bullish signals
entry_condition = close > open and close > peak_level_3min and ema180 > ema180[1] and rsi > rsi_signal and rsi > rsi[1]

// Enter trades only when levels are defined
if not na(peak_level_3min) and not na(dip_level_3min) and entry_condition
    strategy.entry("Buy", strategy.long, stop=dip_level_3min)

// Exit condition: Price falls below dip level
if strategy.position_size > 0 and close < dip_level_3min
    strategy.close("Buy")

// Plot EMA for reference
plot(ema180, color=color.orange, linewidth=2, title="180 EMA")