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

O valor da posição em risco deve ser calculado em função do valor da posição em risco.

Autora:ChaoZhang, Data: 2024-12-11 15:15:49
Tags:SMARSIMACDEMA

img

Resumo

Esta estratégia é um sistema de negociação de indicadores multi-técnicos que usa principalmente o crossover EMA, as condições de sobrevenda do RSI e a cruz de ouro do MACD para a confirmação do comércio.

Princípios de estratégia

A lógica básica de negociação inclui os seguintes componentes fundamentais:

  1. Os sinais de entrada são acionados quando a EMA de nove períodos cruza acima da EMA de 21 períodos
  2. O preço de entrada é definido como uma ordem limite abaixo da EMA de nove períodos a um deslocamento especificado
  3. A confirmação da negociação requer RSI abaixo do limiar e cruz de ouro do MACD
  4. Os sinais de saída incluem cruzamento MACD, pontos de lucro/perda fixos e fechamento forçado no final do mercado
  5. O horário de negociação é restrito entre 9:30 AM e 3:10 PM

A estratégia utiliza ordens limitadas de entrada para alcançar melhores preços de entrada e combina múltiplos indicadores técnicos para melhorar a precisão das negociações.

Vantagens da estratégia

  1. Mecanismo de confirmação de sinais múltiplos melhora a fiabilidade do comércio
  2. As entradas de ordem limite fornecem melhores preços de execução
  3. Pontos de lucro/perda fixos facilitam o controlo do risco
  4. O fechamento forçado no final do mercado elimina o risco do dia a dia
  5. Restrições de tempo de negociação evitar volatilidade de abertura
  6. Os indicadores da EMA proporcionam uma resposta mais rápida à tendência
  7. A combinação de RSI e MACD ajuda a filtrar sinais falsos

Riscos estratégicos

  1. A confirmação de múltiplos sinais pode causar oportunidades perdidas.
  2. As ordens de limite podem não ser executadas em movimentos rápidos de preços
  3. As paradas de ponto fixo podem resultar em perdas maiores durante a alta volatilidade
  4. Os sinais MACD podem ficar para trás da ação do preço
  5. A estratégia não tem em conta as alterações na volatilidade do mercado
  6. A otimização dos parâmetros pode levar a um sobreajuste

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

  1. Introduzir pontos de stop-loss e take-profit adaptativos com base na volatilidade do mercado
  2. Adicionar indicadores de volume como sinais de confirmação adicionais
  3. Considere adicionar filtros de força de tendência
  4. Otimizar o cálculo do deslocamento da ordem limite utilizando o ATR
  5. Incluir indicadores do sentimento do mercado para filtrar condições desfavoráveis
  6. Adicionar um mecanismo de dimensionamento de posição baseado na intensidade do sinal

Resumo

Esta é uma estratégia de negociação multi-indicador bem estruturada que identifica tendências usando médias móveis, filtra sinais com RSI e MACD, e controla o risco através de ordens de limite e mecanismos de parada múltiplos.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("SMA 9 & 21 with RSI and MACD Buy Strategy", overlay=true)

// Inputs for Simple Moving Averages
sma_short = ta.ema(close, 9)
sma_long = ta.ema(close, 21)

// Plotting SMA
plot(sma_short, color=color.green, title="SMA 9")
plot(sma_long, color=color.red, title="SMA 21")

// RSI Calculation
rsi_length = input.int(14, title="RSI Length")
rsi_threshold = input.int(70, title="RSI Threshold")
rsi = ta.rsi(close, rsi_length)

// MACD Calculation
macd_fast = input.int(8, title="MACD Fast Length")
macd_slow = input.int(18, title="MACD Slow Length")
macd_signal = input.int(6, title="MACD Signal Length")
[macd_line, signal_line, _] = ta.macd(close, macd_fast, macd_slow, macd_signal)

// Inputs for Limit Order Offset
limit_offset = input.int(50, title="Limit Order Offset", minval=1)  // 50 points below 9 EMA

// User input for specific date
simulationStartDate = input(timestamp("2024-12-01 00:00"), title="Simulation Start Date", group = "Simulation Dates")
simulationEndDate = input(timestamp("2024-12-30 00:00"), title="Simulation End Date", group = "Simulation Dates")

// Declare limit_price as float
var float limit_price = na

// Calculate Limit Order Price
if (sma_short[1] < sma_long[1] and sma_short > sma_long)  // 9 EMA crosses above 21 EMA
    limit_price := sma_short - limit_offset

// Buy Signal Condition (only on the specified date)
buy_condition = not na(limit_price) and rsi < rsi_threshold and ta.crossover(macd_line, signal_line) 

// Sell Signal Condition (MACD crossover down)
sell_condition = ta.crossunder(macd_line, signal_line)

// Track Entry Price for Point-Based Exit
var float entry_price = na

if (buy_condition )
    strategy.order("Buy", strategy.long, comment="Limit Order at 9 EMA - Offset", limit=limit_price)
    label.new(bar_index, limit_price, "Limit Buy", style=label.style_label_up, color=color.green, textcolor=color.white)
    entry_price := limit_price  // Set entry price

// Exit Conditions
exit_by_macd = sell_condition
exit_by_points = not na(entry_price) and ((close >= entry_price + 12) or (close <= entry_price - 12))  // Adjust as per exit points

// Exit all positions at the end of the day
if hour == 15 and minute > 10 and strategy.position_size > 0
    strategy.close_all()  // Close all positions at the end of the day
    strategy.cancel_all()  

// Exit based on sell signal or point movement
if (exit_by_macd or exit_by_points  and strategy.position_size > 0 )
    strategy.close("Buy")
    label.new(bar_index, close, "Close", style=label.style_label_down, color=color.red, textcolor=color.white)

 

Relacionados

Mais.