123 Estratégia de valor médio móvel de inversão

Autora:ChaoZhang, Data: 2023-10-20 16:05:43
Tags:

img

Resumo

A 123 Reversal Moving Average Envelope Strategy é uma estratégia quantitativa de negociação que combina 123 técnicas de negociação de reversão e indicadores de envelope de média móvel.

Estratégia lógica

A estratégia consiste em duas partes:

A primeira parte é a estratégia de reversão 123. Seus sinais de negociação vêm do oscilador KDJ. Especificamente, se o preço de fechamento for menor que o fechamento anterior por dois dias consecutivos de negociação, e a linha lenta K de 9 dias estiver abaixo de 50, um sinal de compra é gerado; se o preço de fechamento for maior que o fechamento anterior por dois dias consecutivos de negociação, e a linha rápida K de 9 dias estiver acima de 50, um sinal de venda é gerado.

A segunda parte é a estratégia do envelope da média móvel. Ele usa médias móveis e linhas de envelope acima e abaixo das médias móveis para determinar tendências. Especificamente, se o preço de fechamento for maior que a faixa superior, um sinal de compra é gerado; se o preço de fechamento for menor que a faixa inferior, um sinal de venda é gerado.

A estratégia combina os dois tipos de sinais de negociação acima. Ela só abrirá posições longas quando as conversões 123 e os envelopes de média móvel derem sinais de compra; ela só abrirá posições curtas quando ambos derem sinais de venda. Isso filtra alguns sinais inválidos e reduz a frequência de negociação, melhorando a lucratividade.

Análise das vantagens

  • Combina inversão e tendência para melhorar a rentabilidade

    A estratégia de reversão 123 se destaca em capturar oportunidades de reversão perto dos principais níveis de suporte e resistência.

  • Filtro duplo reduz a frequência de negociação

    As transacções só são realizadas quando ambos os indicadores emitem sinais, evitando assim a interferência de sinais inválidos excessivos de um único indicador, reduzindo assim a frequência e os custos das transacções.

  • Parâmetros personalizáveis proporcionam flexibilidade

    Os parâmetros ajustáveis permitem aos utilizadores adaptar a estratégia às condições do mercado e às preferências pessoais para uma melhor adaptabilidade.

  • O comércio unilateral simplifica as operações

    A estratégia só é longa ou curta, sem posições inversas.

Análise de riscos

  • As reversões lutam em tendências persistentes

    A estratégia baseia-se principalmente em reversões de lucros, podendo produzir perdas contínuas durante longos períodos de tendência.

  • Optimização de parâmetros é difícil

    Os múltiplos parâmetros ajustáveis representam desafios de otimização.

  • Um elevado volume de negócios aumenta os riscos comerciais

    As mudanças frequentes de posição permitem obter pequenos lucros, mas também aumentam os custos e os riscos decorrentes da troca excessiva.

  • Nenhum limite de retirada

    A ausência de um stop loss significa que não há limite para a retirada máxima, eventos de cisne negro podem causar perdas graves.

Orientações de otimização

  • Adicionar stop loss

    Implementar um stop loss em movimento ou de trailering para limitar os drawdowns.

  • Otimizar parâmetros

    Teste de retorno e teste de retorno para encontrar parâmetros ideais para maior estabilidade.

  • Adicionar filtros de sinal

    A adição de filtros como o MACD e as Bandas de Bollinger pode validar os sinais e melhorar ainda mais a qualidade, reduzindo as negociações indesejadas.

  • Reduzir a frequência das trocas

    A modesta flexibilização das condições de reversão e o ajustamento das definições das médias móveis para um menor volume de negócios podem reduzir custos e riscos.

Conclusão

A 123 Reversal Moving Average Envelope Strategy combina os pontos fortes da negociação de reversão e da tendência para um desempenho superior ajustado ao risco constante.


/*backtest
start: 2023-09-19 00:00:00
end: 2023-10-19 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 22/03/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// Moving Average Envelopes are percentage-based envelopes set above and 
// below a moving average. The moving average, which forms the base for 
// this indicator, can be a simple or exponential moving average. Each 
// envelope is then set the same percentage above or below the moving average. 
// This creates parallel bands that follow price action. With a moving average 
// as the base, Moving Average Envelopes can be used as a trend following indicator. 
// However, this indicator is not limited to just trend following. The envelopes 
// can also be used to identify overbought and oversold levels when the trend is 
// relatively flat. 
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos


MAE(Length,PercentShift) =>
    pos = 0.0
    xSMA = sma(close, Length)
    xHighBand = xSMA + (xSMA * PercentShift / 100)
    xLowBand = xSMA - (xSMA * PercentShift / 100)
    pos := iff(close > xHighBand, 1,
             iff(close <xLowBand, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Moving Average Envelopes", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- MA Envelope ----")
LengthMA = input(18, minval=1)
PercentShift = input(0.2, minval = 0.01, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMAE = MAE(LengthMA,PercentShift)
pos = iff(posReversal123 == 1 and posMAE == 1 , 1,
	   iff(posReversal123 == -1 and posMAE == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1 ) 
    strategy.entry("Long", strategy.long)
if (possig == -1 )
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

Mais.