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.
La estrategia utiliza dos métricas para determinar las señales de entrada y salida. La primera es el precio en sí
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.
La mayor ventaja de esta estrategia es que considera tanto el nivel de precios como los factores de impulso.
Algunos riesgos a tener en cuenta con esta estrategia:
Mitigantes:
Otras optimizaciones de la estrategia:
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")