Estratégia de negociação semanal de suporte e resistência multinível com base na reversão média

Pivot SR MR SMA RSI ATR MA VOL
Data de criação: 2025-02-18 18:04:15 última modificação: 2025-02-18 18:04:15
cópia: 2 Cliques: 441
1
focar em
1617
Seguidores

Estratégia de negociação semanal de suporte e resistência multinível com base na reversão média

Visão geral

Esta estratégia é um sistema de negociação de retorno médio baseado no Pivot Point. Ela determina o ponto de entrada e saída de uma transação calculando o suporte semanal S1-S4 e o resistor R1-R4. A estratégia usa um método de construção de posição em etapas, fazendo várias compras em diferentes pontos de suporte e obtendo lucro nos pontos de resistência correspondentes.

Princípio da estratégia

O núcleo da estratégia é calcular o ponto central da semana usando os altos, baixos e os preços de fechamento da semana anterior e, em seguida, determinar vários pontos de apoio e resistência de acordo com a distância de pontos predefinida. Fazer compras quando o preço toca o suporte e definir um objetivo de lucro para o correspondente ponto de resistência. Ponto central = (preço máximo da semana passada + preço mínimo da semana passada + preço de fechamento da semana passada) / 3 A estratégia permite o máximo de 4 posições de negociação simultâneas, cada uma correspondendo a um nível de suporte e resistência diferente. Todas as posições são recalculadas para novos níveis de negociação no início de cada semana. Este design garante a continuidade das negociações e é capaz de se adaptar às mudanças do mercado.

Vantagens estratégicas

  1. A lógica da transação é clara, fácil de entender e executar
  2. O método de construção de depósitos por etapas reduz o risco de uma única transação
  3. Utilização de pontos de resistência de suporte em nível de circunferência para reduzir o impacto do ruído diurno
  4. A estratégia pode ajustar os parâmetros de forma flexível de acordo com as diferentes características do mercado
  5. Controle de risco por percentagem de posições
  6. Não há tempo para impor limites de liquidação e dar espaço para que as transações sejam lucrativas.

Risco estratégico

  1. Sem um stop loss definido, um retorno maior pode ocorrer em mercados de forte tendência
  2. As posições múltiplas podem exigir mais fundos
  3. Falso sinal em mercados de alta volatilidade
  4. A configuração inadequada do suporte pode levar a posições imprudentes de construção de armazéns Para reduzir o risco, é recomendável adicionar um filtro de tendência, abrindo posições apenas em tendências ascendentes; além disso, pode ser configurado um stop loss dinâmico baseado no ATR.

Direção de otimização da estratégia

  1. Aumento do mecanismo de confirmação de encomendas e melhoria da fiabilidade do sinal de entrada
  2. Introdução de indicadores técnicos como o RSI para filtragem de sobrecompra e sobrevenda
  3. Desenvolvimento de mecanismos de confirmação de múltiplos ciclos de tempo para reduzir falsos sinais
  4. Otimização do sistema de gestão de posições, ajustando o número de unidades de acordo com a dinâmica de mercado
  5. Aumentar a análise de correlação para evitar a construção de posições em mercados altamente correlacionados

Resumir

Esta é uma estratégia de regresso ao valor médio baseada na teoria clássica da análise técnica, para capturar oportunidades de negociação por meio de um retorno de ruptura de pontos de resistência apoiados por perímetros. A estratégia é projetada de forma simples e flexível, adequada para aplicações em mercados com grande volatilidade.

Código-fonte da estratégia
/*backtest
start: 2024-02-19 00:00:00
end: 2025-02-17 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ViZiV

//@version=5
strategy("Weekly Pivot Strategy, Created by ViZiV", overlay=true, pyramiding=50, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=25, dynamic_requests=true)

// This is my first COMPLETED strategy, go easy on me :) - Feel free to imrprove upon this script by adding more features if you feel up to the task. Im 100% confiedent there are better coders than me :) I'm still learning.

// This is a LONG ONLY SWING STRATEGY (Patience REQUIRED) that being said, you can go short at you're own discretion. I prefer to use on NQ / US100 / USTech 100 but not limited to it. Im sure it can work in most markets. "You'll need to change settings to suit you're market".

// IMPORTANT NOTE: "default_qty_type=strategy.percent_of_equity" Can be changed to "Contacts" within the properties tab which allow you to see backtest of other markets. Reccomend 1 contract but it comes to preference.

// Inputs for support/resistance distances (Defined by Points). // IMPORTANT NOTE: Completely user Defined. Figure out best settings for what you're trading. Each market is different with different characteristics. Up to you to figure out YOU'RE market volatility for better results. 
s1_offset = input.float(155, "S1 Distance", step=1)
s2_offset = input.float(310, "S2 Distance", step=1)
s3_offset = input.float(465, "S3 Distance", step=1)
s4_offset = input.float(775, "S4 Distance", step=1)
r1_offset = input.float(155, "R1 Distance", step=1)
r2_offset = input.float(310, "R2 Distance", step=1)
r3_offset = input.float(465, "R3 Distance", step=1)
r4_offset = input.float(775, "R4 Distance", step=1)

// Weekly pivot calculation
var float pivot = na
var float s1 = na
var float s2 = na
var float s3 = na
var float s4 = na
var float r1 = na
var float r2 = na
var float r3 = na
var float r4 = na

// Get weekly data (Pivot Calculation)
prevWeekHigh = request.security(syminfo.tickerid, "W", high[1], lookahead=barmerge.lookahead_on)
prevWeekLow = request.security(syminfo.tickerid, "W", low[1], lookahead=barmerge.lookahead_on)
prevWeekClose = request.security(syminfo.tickerid, "W", close[1], lookahead=barmerge.lookahead_on)

// Track active trades
var array<string> entry_ids = array.new<string>(0)
var array<float> profit_targets = array.new<float>(0)

// Update weekly levels
isNewWeek = ta.change(time("W")) != 0
if isNewWeek or na(pivot)
    pivot := (prevWeekHigh + prevWeekLow + prevWeekClose) / 3
    s1 := pivot - s1_offset
    s2 := pivot - s2_offset
    s3 := pivot - s3_offset
    s4 := pivot - s4_offset
    r1 := pivot + r1_offset
    r2 := pivot + r2_offset
    r3 := pivot + r3_offset
    r4 := pivot + r4_offset

// Plot current week's levels
plot(pivot, "Pivot", color=color.gray, linewidth=2)
plot(s1, "S1", color=color.blue, linewidth=1)
plot(s2, "S2", color=color.blue, linewidth=1)
plot(s3, "S3", color=color.blue, linewidth=1)
plot(s4, "S4", color=color.blue, linewidth=1)
plot(r1, "R1", color=color.red, linewidth=1)
plot(r2, "R2", color=color.red, linewidth=1)
plot(r3, "R3", color=color.red, linewidth=1)
plot(r4, "R4", color=color.red, linewidth=1)

// Function to create unique trade entries
checkEntry(level, target, entryNumber) =>
    currentWeek = str.tostring(year(time)) + "_" + str.tostring(weekofyear(time))
    entryId = "Entry" + str.tostring(entryNumber) + "_W" + currentWeek
    
    if low <= level and not array.includes(entry_ids, entryId)
        array.push(entry_ids, entryId)
        array.push(profit_targets, target)
        strategy.entry(entryId, strategy.long)
        strategy.exit("Exit" + entryId, entryId, limit=target)

// Check all entry levels
checkEntry(s1, r1, 1)
checkEntry(s2, r2, 2)
checkEntry(s3, r3, 3)
checkEntry(s4, r4, 4)

// Clean up completed trades using while loop
i = array.size(entry_ids) - 1
while i >= 0
    entryId = array.get(entry_ids, i)
    target = array.get(profit_targets, i)
    
    if high >= target
        array.remove(entry_ids, i)
        array.remove(profit_targets, i)
    i := i - 1