Estratégia de negociação de recuperação de média móvel de vários prazos

Autora:ChaoZhang, Data: 2024-02-29 11:20:28
Tags:

img

Resumo

Esta estratégia adota a abordagem da média móvel de vários prazos, usando a média móvel de longo prazo para determinar a direção da tendência principal, enquanto a média móvel de curto prazo para determinar a direção da tendência de curto prazo.

Estratégia lógica

A estratégia usa a média móvel simples de 200 dias (SMA) para determinar a direção da tendência de longo prazo e a SMA de 10 dias para a direção da tendência de curto prazo. Quando o preço fecha acima da SMA de 200 dias e abaixo da SMA de 10 dias, ele sinaliza uma tendência de longo prazo ascendente com um pullback de curto prazo, apresentando uma oportunidade de compra. Quando o preço fecha abaixo da SMA de 200 dias e acima da SMA de 10 dias, ele sinaliza uma tendência de longo prazo descendente com um salto de curto prazo, apresentando uma oportunidade de venda.

Especificamente, quando estão preenchidas as seguintes condições, a entrada longa é acionada: Fechar > SMA de 200 dias E Fechar < SMA de 10 dias.

Após a entrada, um mecanismo de stop loss de 10% é implementado. A posição será interrompida se o retracement do preço de entrada exceder 10%. Além disso, se a opção i_lowerClose for ativada, ela esperará um fechamento menor antes de sair, evitando sensibilidade excessiva da stop loss.

Análise das vantagens

Esta estratégia combina médias móveis de vários prazos, permitindo uma alta probabilidade de capturar a direção da tendência de médio a longo prazo.

O risco envolvido nesta estratégia é bem definido e limitado. Uma taxa de stop loss de 10% restringe o tamanho máximo da perda.

Análise de riscos

A correção de curto prazo é uma estratégia de curto prazo, mas não é uma estratégia de curto prazo, pois se a correção de curto prazo durar muito tempo ou a amplitude de pullback for muito grande, o stop loss pode ser acionado, resultando em saída forçada em momentos inoportunos.

A adaptabilidade desta estratégia entre os instrumentos de negociação é limitada. Para ações com alta volatilidade e períodos de correção prolongados, esta estratégia tende a atingir o stop loss prematuramente, o que resulta em um desempenho fraco.

Durante grandes correcções em todo o mercado, por exemplo, uma crise financeira, esta estratégia pode sofrer grandes perdas.

Orientações de otimização

Os preços de entrada são considerados apenas quando o preço está entre o SMA de 50 dias e o SMA de 200 dias. Isso extra filtra ações com características de tendência inferiores.

Um mecanismo dinâmico de stop loss pode ser implementado. Especificamente, após a entrada, a taxa de stop loss é ajustada com base na volatilidade observada em vez de um 10% fixo.

Outros indicadores que medem as condições de mercado também podem ser incorporados. Por exemplo, quando o MACD mostra divergência de mercado, essa estratégia pode ser temporariamente desativada para evitar perdas. Ele adiciona um mecanismo de tempo de mercado para ativar e desativar a estratégia.

Conclusão

Em conclusão, esta é uma estratégia típica de média móvel de vários prazos. Capitaliza a direção da tendência de médio e longo prazo indicada pela média móvel de longo prazo, aproveitando as oportunidades de retração de curto prazo reveladas pela média móvel de curto prazo. Os fatores de risco são definidos e bem limitados.


/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-28 00:00:00
period: 1h
basePeriod: 15m
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/
// © irfanp056
// @version=5

strategy("Simple Pullback Strategy", 
     overlay=true) // Interactive Brokers rate

// Get user input
i_ma1           = input.int(title="MA 1 Length", defval=200, step=10, group="Strategy Parameters", tooltip="Long-term MA")
i_ma2           = input.int(title="MA 2 Length", defval=10, step=10, group="Strategy Parameters", tooltip="Short-term MA")
i_stopPercent   = input.float(title="Stop Loss Percent", defval=0.10, step=0.1, group="Strategy Parameters", tooltip="Failsafe Stop Loss Percent Decline")
i_lowerClose    = input.bool(title="Exit On Lower Close", defval=false, group="Strategy Parameters", tooltip="Wait for a lower-close before exiting above MA2")
i_startTime     = input(title="Start Filter", defval=timestamp("01 Jan 1995 13:30 +0000"), group="Time Filter", tooltip="Start date & time to begin searching for setups")
i_endTime       = input(title="End Filter", defval=timestamp("1 Jan 2099 19:30 +0000"), group="Time Filter", tooltip="End date & time to stop searching for setups")

// Get indicator values
ma1 = ta.sma(close, i_ma1)
ma2 = ta.sma(close, i_ma2)

// Check filter(s)
f_dateFilter = true

// Check buy/sell conditions
var float buyPrice = 0
buyCondition    = close > ma1 and close < ma2 and strategy.position_size == 0 and f_dateFilter
sellCondition   = close > ma2 and strategy.position_size > 0 and (not i_lowerClose or close < low[1])
stopDistance    = strategy.position_size > 0 ? ((buyPrice - close) / close) : na
stopPrice       = strategy.position_size > 0 ? buyPrice - (buyPrice * i_stopPercent) : na
stopCondition   = strategy.position_size > 0 and stopDistance > i_stopPercent

// Enter positions
if buyCondition
    strategy.entry(id="Long", direction=strategy.long)

if buyCondition[1]
    buyPrice := open

// Exit positions
if sellCondition or stopCondition
    strategy.close(id="Long", comment="Exit" + (stopCondition ? "SL=true" : ""))
    buyPrice := na

// Draw pretty colors
plot(buyPrice, color=color.lime, style=plot.style_linebr)
plot(stopPrice, color=color.red, style=plot.style_linebr, offset=-1)
plot(ma1, color=color.blue)
plot(ma2, color=color.orange)

Mais.