La estrategia de ruptura de impulso

El autor:¿ Qué pasa?, fecha: 2024-02-29 14:04:50
Las etiquetas:

img

Resumen general

La idea principal detrás de esta estrategia es decidir cuándo comprar y vender criptomonedas en función de los indicadores de impulso de precios.

Estrategia lógica

La estrategia utiliza dos métricas para determinar las señales de entrada y salida. La primera es el precio en sí comprueba los precios más altos y más bajos durante los últimos 10 candelabros. La segunda es un indicador de impulso basado en el precio - el valor %K.

Específicamente, cuando el precio cae por debajo del 98% del precio más alto en los últimos 10 candelistas (umbral de compra), la estrategia activa una señal de compra. Esto significa que ha ocurrido una ruptura a la baja. Del mismo modo, cuando el precio se eleva por encima del 102% del precio más bajo en los últimos 10 candelistas (umbral de venta), la estrategia activa una señal de venta, lo que significa que se ha producido una ruptura al alza.

De esta manera, la estrategia puede capturar puntos de reversión a medida que se forman nuevas tendencias en el movimiento de los precios.

Análisis de ventajas

La mayor ventaja de esta estrategia es que considera tanto el nivel de precios como los factores de impulso.

  1. Filtra el ruido usando métricas de momento para identificar señales reales
  2. Excelentes resultados de las pruebas de retroceso con un aprovechamiento máximo relativamente pequeño
  3. La frecuencia se puede controlar mediante parámetros ajustables
  4. El riesgo se puede gestionar eficazmente incorporando el stop loss

Análisis de riesgos

Algunos riesgos a tener en cuenta con esta estrategia:

  1. El colapso del mercado que conduce a un colapso repentino que no puede ser detenido
  2. Impacto de las comisiones de negociación y el deslizamiento
  3. Configuración errónea de parámetros que resulte en exceso de negociación o oportunidades perdidas

Mitigantes:

  1. Emplear modelos multifactoriales para evitar el fallo de un solo indicador
  2. Incorporar el stop loss para restringir la pérdida máxima
  3. Optimizar los parámetros para hacer más robusta la estrategia

Oportunidades de mejora

Otras optimizaciones de la estrategia:

  1. Añadir más filtros como volumen, bandas de Bollinger, etc.
  2. Ajuste dinámico de parámetros basado en el aprendizaje automático
  3. Incorporar el análisis fundamental para ajustar la estrategia en torno a eventos clave
  4. Optimizar la utilización del capital mediante apalancamiento para amplificar los rendimientos

Resumen de las actividades

En general, esta estrategia de ruptura de impulso es adecuada para capturar oportunidades comerciales a corto plazo en criptomonedas. Capitaliza efectivamente las características de impulso de las reversiones de precios para obtener ganancias mientras controla el riesgo. Los refinamientos continuos de los parámetros y el modelo pueden hacer que la estrategia sea más robusta para obtener rendimientos consistentes.


/*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")



Más.