Stratégie d'achat en trois étapes avec suivi dynamique du déclin multi-niveaux ATH

ATH DCA
Date de création: 2024-12-20 14:53:04 Dernière modification: 2024-12-20 14:53:04
Copier: 0 Nombre de clics: 372
1
Suivre
1617
Abonnés

Stratégie d’achat en trois étapes avec suivi dynamique du déclin multi-niveaux ATH

Aperçu

Il s’agit d’une stratégie d’achat à plusieurs niveaux basée sur le suivi de la dynamique des prix historiques les plus élevés de l’ATH. La stratégie consiste à surveiller l’ampleur du retrait des prix de l’ATH, à effectuer des opérations d’achat par lots à différents niveaux de baisse et à vendre à profit lorsque les prix se rapprochent de l’ATH.

Principe de stratégie

La logique fondamentale de la stratégie comprend les éléments clés suivants :

  1. Suivi dynamique de l’ATH: mise à jour continue des plus hauts historiques et réinstallation des marqueurs d’achat lors de la rupture de nouveaux sommets
  2. Trigger de baisse de niveau 3: placez le point d’achat à des retraits de 10%, 15% et 20% respectivement
  3. Gestion des fonds fixes: le même montant est utilisé pour chaque achat (~$1000)
  4. Retraite des positions de liquidation: liquidation de toutes les positions lorsque le prix revient dans la fourchette de 5% d’ATH La stratégie consiste à réduire progressivement le coût moyen d’une position en cas de baisse, et à bloquer les gains en cas de rebond du marché par un placement uniforme.

Avantages stratégiques

  1. Dispersion des risques: réduction des risques liés au choix du moment de la construction par lots
  2. Optimisation des coûts: utilisation d’un redressement plus important pour réduire le coût moyen d’une position
  3. Suivi des tendances: mise à jour dynamique pour assurer la pérennité de l’ATH dans une tendance à la hausse
  4. Efficacité des fonds: l’allocation des fonds fixes garantit la maîtrise de leur utilisation
  5. Automatisation de l’exécution: conditions d’entrée et de sortie clairement définies pour faciliter l’opération systématique

Risque stratégique

  1. Risque de renversement de tendance: une série d’arrêts pourrait se produire dans une tendance baissière à long terme
  2. Risque de dépréciation: les fonds disponibles peuvent être rapidement épuisés dans un marché très volatil
  3. Risque de manquer une opportunité: des conditions d’achat strictes peuvent vous faire rater de bonnes opportunités
  4. Risques de la période de plafonnement: les conditions de plafonnement unifiées peuvent ne pas s’adapter à tous les environnements de marché Il est recommandé de gérer ces risques en définissant des limites de retrait maximales et des contrôles de position globale.

Orientation de l’optimisation de la stratégie

  1. Introduire un filtre de tendance: ajouter une ligne moyenne ou un indicateur de dynamique pour confirmer la tendance globale
  2. Optimisation de la gestion des fonds: ajustement du montant de chaque achat en fonction de la dynamique de la volatilité
  3. Amélioration du mécanisme de placement: augmentation des options de placement par lots pour éviter le risque de placement à un seul prix
  4. Adhésion à un mécanisme de stop-loss: définir un stop-loss absolu pour contrôler le plus grand risque
  5. Optimisation des paramètres dynamiques: ajustement automatique des niveaux d’achat en fonction des différentes cycles de marché

Résumer

La stratégie exploite bien la volatilité du marché grâce à un mécanisme de placement systématique et à un placement uniforme. Le succès de la stratégie dépend de la volatilité suffisante du marché et de la tendance à la hausse finale. Grâce à un contrôle raisonnable des risques et à l’optimisation des paramètres, la stratégie peut maintenir une performance stable dans différents environnements de marché.

Code source de la stratégie
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-18 08:00:00
period: 1d
basePeriod: 1d
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/
// © bsticks22

//@version=6

strategy("Long-term Bean Dip (v.1)", overlay=true)

// === Inputs ===
dip1 = input.float(10.0, "First Dip (%)", step=0.1)       // 10%
dip2 = input.float(15.0, "Second Dip (%)", step=0.1)      // 15%
dip3 = input.float(20.0, "Third Dip (%)", step=0.1)       // 20%
recovery_threshold = input.float(5.0, "Sell when within X% of ATH", step=0.1) // 5%
buy_amount = input.float(50000.0, "Buy Amount ($)", step=100) // $1000 increments

// === Variables ===
var float all_time_high = na
var bool dip1_bought = false
var bool dip2_bought = false
var bool dip3_bought = false

// === Update All-Time High ===
if na(all_time_high)
    all_time_high := high
else
    // Update ATH to the previous bar's high to exclude current bar's high
    all_time_high := math.max(all_time_high[1], high[1])
    if high[1] > all_time_high[1]
        // New ATH reached on the previous bar
        dip1_bought := false
        dip2_bought := false
        dip3_bought := false

// === Calculate Percentage Drop from ATH ===
percent_drop = (all_time_high - close) / all_time_high * 100.0

// === Define Dip Conditions ===
buyDip1 = (percent_drop >= dip1) and not dip1_bought
buyDip2 = (percent_drop >= dip2) and not dip2_bought
buyDip3 = (percent_drop >= dip3) and not dip3_bought

// === Calculate Quantity to Buy ===
qty1 = buy_amount / close

// === Execute Buys on Dips ===
if buyDip1
    strategy.entry("Dip1 Buy", strategy.long, qty=qty1)
    dip1_bought := true

if buyDip2
    strategy.entry("Dip2 Buy", strategy.long, qty=qty1)
    dip2_bought := true

if buyDip3
    strategy.entry("Dip3 Buy", strategy.long, qty=qty1)
    dip3_bought := true

// === Sell Condition: Recovery to Within X% of ATH ===
sell_condition = close >= all_time_high * (1 - recovery_threshold / 100.0)

// === Execute Sell on Recovery ===
if sell_condition and strategy.position_size > 0
    strategy.close_all()

// === Plotting ===
plot(all_time_high, title="All-Time High", color=color.new(color.blue, 0))
plot(all_time_high * (1 - dip1 / 100.0), title="Dip1 Level", color=color.new(color.green, 50), style=plot.style_linebr)
plot(all_time_high * (1 - dip2 / 100.0), title="Dip2 Level", color=color.new(color.orange, 50), style=plot.style_linebr)
plot(all_time_high * (1 - dip3 / 100.0), title="Dip3 Level", color=color.new(color.red, 50), style=plot.style_linebr)
plot(all_time_high * (1 - recovery_threshold / 100.0), title="Recovery Level", color=color.new(color.purple, 50), style=plot.style_linebr)

// === Plot Buy and Sell Signals ===
plotshape(buyDip1, title="Dip1 Buy", location=location.belowbar, color=color.green, style=shape.labelup, text="Buy10%")
plotshape(buyDip2, title="Dip2 Buy", location=location.belowbar, color=color.orange, style=shape.labelup, text="Buy15%")
plotshape(buyDip3, title="Dip3 Buy", location=location.belowbar, color=color.red, style=shape.labelup, text="Buy20%")
plotshape(sell_condition and strategy.position_size > 0, title="Sell", location=location.abovebar, color=color.purple, style=shape.labeldown, text="Sell")

// === Alerts ===
alertcondition(buyDip1, title="Dip1 Buy", message="Price dipped 10% from ATH, buying $1000")
alertcondition(buyDip2, title="Dip2 Buy", message="Price dipped 15% from ATH, buying $1000")
alertcondition(buyDip3, title="Dip3 Buy", message="Price dipped 20% from ATH, buying $1000")
alertcondition(sell_condition and strategy.position_size > 0, title="Sell at Recovery", message="Price recovered to within 5% of ATH, selling all")