O recurso está a ser carregado... Carregamento...

A estratégia de ruptura do impulso

Autora:ChaoZhang, Data: 2024-02-29 14:04:50
Tags:

img

Resumo

A ideia principal por trás desta estratégia é decidir quando comprar e vender criptomoeda com base em indicadores de momento do preço.

Estratégia lógica

A estratégia usa duas métricas para determinar os sinais de entrada e saída. A primeira é o preço em si verifica os preços mais altos e mais baixos nos últimos 10 velas. A segunda é um indicador de impulso baseado no preço - o valor %K.

Especificamente, quando o preço cai abaixo de 98% do preço mais alto nos últimos 10 velas (limite de compra), a estratégia aciona um sinal de compra. Isso significa que uma quebra descendente ocorreu. Da mesma forma, quando o preço sobe acima de 102% do preço mais baixo nos últimos 10 velas (limite de venda), a estratégia aciona um sinal de venda, o que significa que ocorreu uma quebra ascendente.

Assim, a estratégia pode capturar pontos de reversão à medida que novas tendências se formam no movimento dos preços.

Análise das vantagens

A maior vantagem desta estratégia é que considera tanto o nível de preço quanto os fatores de momento.

  1. Filtra o ruído usando métricas de momento para identificar sinais reais
  2. Excelentes resultados dos backtests com um aproveitamento máximo relativamente pequeno
  3. A frequência pode ser controlada através de parâmetros ajustáveis
  4. O risco pode ser gerido de forma eficaz através da incorporação de stop loss

Análise de riscos

Alguns riscos a ter em conta com esta estratégia:

  1. Crash do mercado levando a crash flash que não pode ser parado
  2. Impacto das taxas de negociação e deslizamento
  3. Configuração errada de parâmetros que resulte em excesso de negociação ou em oportunidades perdidas

Atenuantes:

  1. Empregar modelos multifatores para evitar falhas de um único indicador
  2. Incorporar stop loss para restringir a perda máxima
  3. Otimizar parâmetros para tornar a estratégia mais robusta

Oportunidades de melhoria

Outras optimizações da estratégia:

  1. Adicione mais filtros como volume, Bandas de Bollinger etc.
  2. Ajuste dinâmico de parâmetros com base no aprendizado de máquina
  3. Incorporar análise fundamental para ajustar a estratégia em torno de eventos-chave
  4. Otimizar a utilização do capital através da alavancagem para amplificar os retornos

Resumo

No geral, essa estratégia de ruptura de momento é bem adequada para capturar oportunidades de negociação de curto prazo em criptomoedas.


/*backtest
start: 2023-02-22 00:00:00
end: 2024-02-28 00:00:00
period: 1d
basePeriod: 1h
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/
// © nyxover

//@version=5
strategy("Stratégie d'achat bas/vendre haut", shorttitle="Achat/Vente")

// Paramètres d'entrée
crypto = input("BTC", "Crypto-monnaie")
capital = input(1.0, "Capital de départ")
buy_threshold = input(0.02, "Seuil d'achat")
sell_threshold = input(0.02, "Seuil de vente")
fee_rate = input(0.01, "Taux de frais")

// Balances
var float initial_balance = na
var float current_balance = na

// Fonction pour calculer les frais
calculate_fees(amount) =>
    amount * fee_rate

// Fonction pour acheter
should_buy() =>
    close < ta.highest(close, 10) * (1 - buy_threshold)

// Fonction pour vendre
should_sell() =>
    close > ta.lowest(close, 10) * (1 + sell_threshold)

// Logique de la stratégie
if barstate.isfirst
    initial_balance := capital
    current_balance := capital

if should_buy()
    amount_to_buy = current_balance / close
    fees = calculate_fees(amount_to_buy)
    current_balance := current_balance - amount_to_buy - fees
    strategy.entry("Achat", strategy.long)

if should_sell()
    amount_to_sell = current_balance
    fees = calculate_fees(amount_to_sell)
    current_balance := current_balance - amount_to_sell - fees
    strategy.close("Achat")

// Affichage des informations
plot(initial_balance, color=color.green, title="Capital de départ")
plot(current_balance, color=color.blue, title="Capital actuel")



Mais.