Estratégia de ruptura da média móvel de suporte e resistência

Autora:ChaoZhang, Data: 23 de janeiro de 2023
Tags:

Resumo

Esta estratégia identifica os principais níveis de suporte e resistência com base em médias móveis, e realiza negociações quando o preço atravessa esses níveis.

Estratégia lógica

A estratégia utiliza uma média móvel simples (SMA) com um período de 50 para identificar zonas de suporte e resistência.

  • Quando o preço de fechamento cruza acima da SMA a partir de baixo, a maior alta dos últimos 50 períodos é considerada resistência R
  • Quando o preço de fechamento cruza abaixo da SMA a partir de cima, o mínimo mais baixo dos últimos 50 períodos é tomado como suporte S
  • Vai longo quando fechar excede a resistência R
  • Vai curto quando o suporte de quebra próximo S

Em outras palavras, a estratégia usa a SMA de 50 períodos para dividir as zonas de preços e realiza transações quando o preço sai dessas zonas.

Análise das vantagens

A estratégia apresenta as seguintes vantagens:

  1. A utilização de médias móveis para identificar suporte/resistência é razoavelmente fiável e pode filtrar efetivamente falsas rupturas.
  2. Um período de 50 anos não é nem demasiado longo nem demasiado curto e pode revelar níveis significativos a médio prazo.
  3. Utiliza apenas um único indicador SMA, o que resulta em baixas despesas gerais do sistema e uma fácil implementação.
  4. As estratégias de negociação de breakout são simples e eficazes.
  5. Há poucos parâmetros ajustáveis, evitando otimização excessiva.

Análise de riscos

A estratégia apresenta igualmente os seguintes riscos:

  1. Ainda há algum risco de falhas que as SMAs não podem filtrar completamente.
  2. O período fixo não pode adaptar-se aos diferentes ciclos de mercado, podendo perder oportunidades de curto prazo.
  3. Os investidores devem apresentar uma lista completa dos investidores que devem ser incluídos na lista de investidores.
  4. É necessário acompanhar a direcção da tendência mais ampla para as transacções a longo prazo.

Esses riscos podem ser abordados através de otimizações como ajustar o período SMA, adicionar indicadores de filtro de tendência, etc. A gestão adequada de stop loss também é muito importante.

Orientações de otimização

Algumas formas de melhorar a estratégia:

  1. Adicione indicadores como o MACD para ajudar a medir a direção da tendência e o momento.
  2. Implementar a otimização adaptativa dos períodos de MA para ajustamento dinâmico.
  3. Melhorar a detecção de rupturas, por exemplo, exigindo a ruptura simultânea de MA e Bollinger Bands.
  4. Incorporar mecanismos de stop loss para controlar as perdas de transações individuais.
  5. Testar diferentes parâmetros do período de MA para encontrar combinações ideais.

Estas melhorias podem tornar a estratégia mais robusta em diferentes ciclos de mercado.

Resumo

Em geral, a estratégia identifica suporte / resistência com SMAs e breakouts de negócios, mantendo as coisas simples e eficazes. Há também espaço significativo para otimização em várias dimensões. Enquanto falsos breakouts permanecem um risco, o uso prudente de stop loss pode controlar isso efetivamente. A estratégia é fácil de entender para iniciantes e ótima para ganhar experiência prática.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-09-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//--------------------------*
//-- This source code is subject to the terms of the Mozilla Public License 2.0
//-- 開源代碼受Mozilla公眾授權條款2.0版規範, 網址是https://mozilla.org/MPL/2.0/
//
//@version=4
//
//  作品: [LunaOwl] 支撐壓力策略第4版
//  英文: [LunaOwl] Support Resistance Strategy V4
//
////////////////////////////////
//     ~~!!*(๑╹◡╹๑) **       //
//  製作:  @LunaOwl 彭彭      //
//  日期:  2019年03月05日     //
//  修改:  2019年04月22日     //
//  四版:  2020年06月16日     //
//  發表:  2020年06月17日     //
////////////////////////////////

//==設定策略==//

strategy("[LunaOwl] 支撐壓力策略 [回測]",
     shorttitle          = "支撐壓力策略 [回測]",
     overlay             = true,
     calc_on_order_fills = false,
     calc_on_every_tick  = false,
     pyramiding          = 0,
     currency            = currency.NONE,
     initial_capital     = 10000,
     slippage            = 5,
     default_qty_value   = 100,
     default_qty_type    = strategy.percent_of_equity,
     commission_type     = strategy.commission.percent,
     commission_value    = 0.05
     )

LB = input(50, title = "回溯期數", type = input.integer)
R = valuewhen(cross(sma(close, LB),close), highest(high, LB), 1)
S = valuewhen(cross(close,sma(close, LB)),  lowest( low, LB), 1)

plot(R, title = "壓力", color = color.green)
plot(S, title = "支撐", color = color.red)

//==定義輸出結果==//

Trend_up = crossover(close, R) ? 1 : 0
Trend_dn = crossunder(close, S) ? -1 : 0

//==設定出場規則==//

Enter = Trend_up ==  1 and Trend_up[1] == 0 ? Trend_up : na
Exit  = Trend_dn == -1 and Trend_dn[1] == 0 ? Trend_dn : na
strategy.entry("多", strategy.long, when = Enter)
strategy.entry("空", strategy.short, when = Exit)

Mais.