O recurso está a ser carregado... Carregamento...

Sistema de negociação Martingale de Momentum Adaptativo

Autora:ChaoZhang, Data: 2025-01-06 11:01:12
Tags:SMAA CNNGAN

img

Estratégia geral

Esta estratégia é um sistema de negociação totalmente automatizado que combina impulso adaptativo e gestão de posições Martingale. Utiliza vários indicadores técnicos para análise de mercado, incluindo suavização de autoencoder, extração de recursos de impulso simulados pela CNN e filtragem de sinais comerciais baseados em volatilidade.

Princípios de estratégia

A estratégia baseia-se em três módulos principais:

  1. Módulo de pré-processamento de dados - usa SMA para obter suavização de preços semelhante a um autoencoder e filtrar o ruído do mercado.
  2. Módulo de geração de sinal - Simula a extração de recursos da CNN, calculando diferenças de preços com médias móveis de longo prazo, combinadas com limiares de volatilidade para rastrear oportunidades de negociação de alta probabilidade.
  3. Módulo de Gestão de Posições - Implementa o ajustamento de posições de estilo Martingale, aumentando o tamanho da posição proporcionalmente após perdas consecutivas e retornando à linha de base após os lucros.

Vantagens da estratégia

  1. Reliabilidade da geração de sinais - Melhora a qualidade dos sinais de negociação através de múltiplos indicadores técnicos e filtragem de volatilidade.
  2. O risco de crédito é o risco de crédito de uma instituição financeira que não é uma instituição financeira.
  3. Forte adaptabilidade - Ajusta dinamicamente a estratégia de negociação com base nas condições do mercado.
  4. Lógica operacional clara - Condições de entrada e saída bem definidas facilitam o backtesting e a otimização.

Riscos estratégicos

  1. Risco de Martingale - Perdas consecutivas podem conduzir a um rápido crescimento da posição, exigindo um rigoroso controlo máximo da posição.
  2. Risco de inversão de tendência - Os sinais de impulso podem falhar durante a volatilidade extrema do mercado.
  3. Sensibilidade dos parâmetros - Vários parâmetros-chave têm um impacto significativo no desempenho da estratégia.

Orientações para a otimização da estratégia

  1. Melhoria do sinal - Incorporar modelos de aprendizado de máquina para melhorar a precisão do sinal.
  2. O valor da posição deve ser calculado de acordo com o método de classificação da posição.
  3. Parâmetros adaptativos - Desenvolver mecanismos de adaptação dos parâmetros para melhorar a estabilidade da estratégia.
  4. Adaptação de múltiplos ativos - Aumentar a aplicabilidade da estratégia para a negociação de múltiplos ativos.

Resumo

Esta estratégia combina técnicas de negociação quantitativas modernas com o método clássico de Martingale para criar um sistema de negociação com base teórica e praticidade.


/*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)



Relacionados

Mais.