리소스 로딩... 로딩...

어댑티브 모멘텀 마틴게일 거래 시스템

저자:차오장, 날짜: 2025-01-06 11:01:12
태그:SMACNNGAN

img

전략 개요

이 전략은 적응적인 모멘텀과 마틴게일 포지션 관리를 결합한 완전히 자동화된 거래 시스템이다. 자동 인코더 평형화, CNN-시뮬레이션 모멘텀 특징 추출 및 변동성 기반 무역 신호 필터링을 포함한 시장 분석을 위해 여러 가지 기술적 지표를 활용한다. 시스템은 고정된 영리 및 스톱 로스 레벨을 통해 위험과 보상 사이의 균형을 유지하면서 마틴게일 방법을 사용하여 포지션 크기를 동적으로 조정한다.

전략 원칙

이 전략은 세 가지 핵심 모듈을 기반으로 합니다.

  1. 데이터 사전 처리 모듈 - SMA를 사용하여 자동 인코더와 같은 가격 평형화 및 시장 소음을 필터합니다.
  2. 신호 생성 모듈 - CNN 특징 추출을 시뮬레이션하여 장기 이동 평균과 가격 차이를 계산하여 높은 확률의 거래 기회를 스크린하기 위해 변동성 문턱과 결합합니다.
  3. 포지션 관리 모듈 - 마틴게일 방식의 포지션 조정, 연속 손실 후 포지션 크기를 비례적으로 증가하고 수익 후 기본 라인으로 돌아갑니다.

전략적 장점

  1. 신호 생성 신뢰성 - 여러 기술적 지표와 변동성 필터링을 통해 거래 신호 품질을 향상시킵니다.
  2. 포괄적 리스크 관리 - 취득, 스톱 로스 및 최대 포지션 제한을 포함한 여러 가지 보호 메커니즘을 갖추고 있습니다.
  3. 강력한 적응력 - 시장 조건에 따라 동적으로 거래 전략을 조정합니다.
  4. 명확한 운영 논리 - 잘 정의 된 입출구 조건은 백테스팅과 최적화를 촉진합니다.

전략 위험

  1. 마틴게일 리스크 - 연속 손실은 급격한 포지션 성장으로 이어질 수 있으며, 엄격한 최대 포지션 통제가 필요합니다.
  2. 트렌드 역전 위험 - 극심한 시장 변동성 동안 동력 신호가 실패 할 수 있습니다.
  3. 매개 변수 민감성 - 여러 가지 핵심 매개 변수가 전략 성과에 상당한 영향을 미칩니다.

전략 최적화 방향

  1. 신호 강화 - 신호 정확성을 향상시키기 위해 기계 학습 모델을 통합합니다.
  2. 리스크 제어 강화 - 유출 통제 및 포지션 지속 기간 제한을 추가합니다.
  3. 적응적 매개 변수 - 전략 안정성 향상을 위한 매개 변수 적응 메커니즘 개발
  4. 다중 자산 적응 - 다중 자산 거래에 대한 전략 적용 가능성을 확장하십시오.

요약

이 전략은 현대적인 양적 거래 기술을 고전적인 마르틴게일 방법과 결합하여 이론적 기초와 실용성을 모두 갖춘 거래 시스템을 만듭니다. 특정 위험이 존재하지만 적절한 매개 변수 설정과 엄격한 위험 통제를 통해 전략은 암호화폐 시장에서 안정적인 수익을 달성하는 것을 약속합니다.


/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-04 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Adaptive Crypto Trading Strategy with Martingale", shorttitle = "ACTS_w_MG_V1",overlay=true)

// Inputs
smoothing_length = input.int(14, title="Smoothing Length (Autoencoder)")
momentum_window = input.int(21, title="Momentum Window (CNN)")
volatility_threshold = input.float(0.02, title="Volatility Threshold (GAN Simulation)")
take_profit = input.float(0.05, title="Take Profit (%)")
stop_loss = input.float(0.02, title="Stop Loss (%)")

// Martingale Inputs
base_lot_size = input.float(1, title="Base Lot Size")  // Initial trade size
multiplier = input.float(2, title="Martingale Multiplier")  // Lot size multiplier after a loss
max_lot_size = input.float(2, title="Maximum Lot Size")  // Cap on lot size
var float lot_size = base_lot_size  // Initialize the lot size

// Step 1: Data Smoothing (Autoencoder)
smoothed_price = ta.sma(close, smoothing_length)

// Step 2: Feature Extraction (Momentum - CNN Simulation)
momentum = ta.sma(close, momentum_window) - close
volatility = ta.stdev(close, momentum_window)

// Step 3: Entry Conditions (GAN-Inspired Pattern Detection)
long_condition = (momentum > 0 and volatility > volatility_threshold)
short_condition = (momentum < 0 and volatility > volatility_threshold)

// Martingale Logic
if (strategy.closedtrades > 0)
    if (strategy.closedtrades.profit(strategy.closedtrades - 1) < 0)
        lot_size := math.min(lot_size * multiplier, max_lot_size)  // Increase lot size after a loss, but cap it
    else
        lot_size := base_lot_size  // Reset lot size after a win or on the first trade

// Step 4: Take Profit and Stop Loss Management
long_take_profit = close * (1 + take_profit)
long_stop_loss = close * (1 - stop_loss)
short_take_profit = close * (1 - take_profit)
short_stop_loss = close * (1 + stop_loss)

// Execute Trades
if (long_condition)
    strategy.entry("Long", strategy.long, qty=lot_size, stop=long_stop_loss, limit=long_take_profit)

if (short_condition)
    strategy.entry("Short", strategy.short, qty=lot_size, stop=short_stop_loss, limit=short_take_profit)



관련

더 많은