Supertrend estratégia de lucro

Autora:ChaoZhang, Data: 2024-01-08 11:08:39
Tags:

img

Resumo

Esta estratégia utiliza o indicador Supertrend para determinar os pontos de entrada, indo longo ou curto quando o indicador se inverte.

Estratégia lógica

A estratégia utiliza o indicador de Supertrend para identificar a direção da tendência. A Supertrend é baseada no Real Intervalo Médio e em um fator multiplicador. Quando o preço sobe acima da faixa superior, ele sinaliza uma condição de sobrecompra e quando o preço cai abaixo da faixa inferior, ele sinaliza uma condição de sobrevenda. Portanto, a estratégia detecta reversões na direção da Supertrend para determinar entradas.

Especificamente, quando a mudança na Supertrend é menor que 0, indica que o indicador se inverteu de cima para baixo, gerando um sinal longo. Quando a mudança na Supertrend é maior que 0, o indicador se invertiu de baixo para cima, gerando um sinal curto. Ao receber sinais longos ou curtos, o preço de entrada é registrado e as ordens são colocadas.

A estratégia também define três ordens de lucro a 2%, 5% e 10% do preço de entrada, para bloquear lucros-alvo fixos. As proporções dessas ordens são definidas em 25%, 50% e 25% respectivamente. Após os sinais de entrada, essas ordens de lucro são colocadas simultaneamente para capturar ganhos em diferentes níveis.

Análise das vantagens

A estratégia apresenta as seguintes vantagens:

  1. O uso de Supertrend para entradas capta efetivamente pontos de reversão da tendência para compras/cortes precisas.

  2. As proporções múltiplas de lucro permitem o bloqueio dos ganhos em diferentes níveis, reduzindo os desembolsos.

  3. Os objectivos de lucro conservadores de 2%, 5% e 10% evitam uma excesso de lucros que conduza a perdas maiores.

  4. Lógica simples e clara, fácil de entender e modificar, adequada para iniciantes.

Análise de riscos

A estratégia apresenta também alguns riscos:

  1. Os parâmetros de Supertrend incorretos podem causar falta de sinais de reversão, levando a entradas imprecisas.

  2. Os níveis de lucro conservadores podem perder oportunidades para gerar lucros adicionais.

  3. As brechas e os movimentos de limite podem desencadear paradas antes do ajuste da Supertrend.

  4. Não haver condição de stop loss significa potencial de perda ilimitado.

Áreas de melhoria

Algumas maneiras de otimizar a estratégia:

  1. Teste diferentes parâmetros de Supertrend para melhorar a sensibilidade.

  2. Adicionar stop loss para limitar a perda máxima.

  3. Ajustar os rácios de lucro e quantidades com base no símbolo e no prazo.

  4. Adicionar filtros para evitar negociações excessivas em mercados de intervalo.

  5. Otimizar a utilização do capital ajustando o tamanho das transações por defeito para reduzir o risco por transação.

Resumo

A estratégia é simples e prática em geral. Ela usa Supertrend para entradas e múltiplas ordens de take profit para bloquear ganhos, controlando efetivamente o risco. Mas há espaço para melhorias como adicionar paradas, otimizar parâmetros etc., o que fornece direções de aprimoramento futuro. Em resumo, esta estratégia é adequada para iniciantes aprenderem e praticarem negociação algorítmica.


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

//@version=5
strategy( "Supertrend with TP", overlay=true )

// Supertrend Settings
atrPeriod = input(10, "ATR Length")
factor = input.float(3.0, "Factor", step = 0.01)

// TP's
tp1Open = input.bool(true, "TP1")
tp1 = input.float(2.0, "TP Level (%)", step = 0.1) / 100
tp1Amount = input.int(25, "Amount (%)", step = 1)
tp2Open = input.bool(true, "TP2")
tp2 = input.float(5.0, "TP Level (%)", step = 0.1) / 100
tp2Amount = input.int(50, "Amount (%)", step = 1)
tp3Open = input.bool(true, "TP3")
tp3 = input.float(10.0, "TP Level (%)", step = 0.1) / 100
tp3Amount = input.int(25, "Amount (%)", step = 1)

[_, direction] = ta.supertrend(factor, atrPeriod)

entryPrice = 0.0
entryPrice := entryPrice[1]

if ta.change(direction) < 0
    strategy.entry("Long", strategy.long)
    entryPrice := close

if ta.change(direction) > 0
    strategy.entry("Short", strategy.short)
    entryPrice := close

if (tp1Open)
    strategy.exit ("TP1", from_entry="Long", limit=entryPrice * (1 + tp1), qty_percent=tp1Amount)
    strategy.exit ("TP1", from_entry="Short", limit=entryPrice * (1 - tp1), qty_percent=tp1Amount)

if (tp2Open)
    strategy.exit ("TP2", from_entry="Long", limit=entryPrice * (1 + tp2), qty_percent=tp2Amount)
    strategy.exit ("TP2", from_entry="Short", limit=entryPrice * (1 - tp2), qty_percent=tp2Amount)
    
if (tp3Open)    
    strategy.exit ("TP3", from_entry="Long", limit=entryPrice * (1 + tp3), qty_percent=tp3Amount)
    strategy.exit ("TP3", from_entry="Short", limit=entryPrice * (1 - tp3), qty_percent=tp3Amount)

Mais.