Achat de baisses avec prise de profit et stop loss

Auteur:ChaoZhang est là., Date: 23 janvier 2023 à 16h50
Les étiquettes:

img

Résumé

Cette stratégie achète la baisse et tire profit pour un taux de gain élevé en suivant dynamiquement les bas de prix, en continuant longtemps après les baisses de prix, et en bloquant les profits et en contrôlant les risques grâce à un profit adaptatif et à un stop-loss.

Principaux

La logique de base de cette stratégie est d'utiliser l'indicateur ATR pour calculer des positions dynamiques de prise de profit et de stop-loss. Plus précisément, un signal long est déclenché lorsque le prix de clôture est inférieur au plus bas des derniers n jours (défini à 7 jours dans le code); pendant les positions longues, les prix de prise de profit et de stop-loss seront calculés dynamiquement sur la base de l'indicateur ATR (défini par des multiples ATR) et affichés sur le graphique en temps réel.

La stratégie combine l'approche de l'achat de plongée la plus simple avec l'idée d'un stop loss/take profit dynamique pour saisir les opportunités en temps opportun tout en contrôlant les risques.

Les avantages

Les principaux avantages de cette stratégie sont les suivants:

  1. L'utilisation d'indicateurs ATR dynamiques pour définir le stop loss et le take profit permet d'ajuster les niveaux de P/L en fonction de la volatilité du marché, évitant ainsi des pertes inutiles ou des occasions de profit plus importantes en raison d'un stop loss/take profit trop fixe.

  2. Les stratégies d'achat à la baisse ont tendance à avoir des taux de gain plus élevés pendant les consolidations du marché lorsque les prix chutent anormalement en dessous des niveaux de soutien et sont susceptibles de rebondir.

  3. L'estimation des ratios bénéfice/perte par les valeurs ATR est raisonnable et peut être réglée de manière flexible en fonction des conditions du marché et de la tolérance individuelle au risque.

  4. La logique du code est simple et claire, facile à comprendre. Les paramètres sont également intuitifs.

Les risques

Les principaux risques de cette stratégie sont les suivants:

  1. Il est impossible de déterminer l'amplitude et la force du rebond après la chute. Il existe un risque que les attentes de profit ne soient pas satisfaites. Cela peut être résolu en ajustant les paramètres ATR pour définir différentes fourchettes de bénéfices.

  2. Le risque d'être pris au piège des pertes lorsque les prix brisent les supports et continuent de chuter, ce qui entraîne une plus grande perte.

  3. Les multiples ATR doivent être réglés plus librement pour éviter les stop-out inutiles.

  4. Il est nécessaire de procéder à des essais dans des conditions de marché différentes, avec des réglages de glissement/commission appropriés.

Amélioration

La stratégie peut être améliorée dans les aspects suivants:

  1. Optimisation du niveau de support et de la détermination des signaux. Des indicateurs plus sophistiqués tels que KDJ ou Bollinger Bands peuvent être utilisés pour juger plus fiablement des signaux d'inversion.

  2. Optimisation des règles de dimensionnement des positions. Ajustement dynamique des positions en fonction de la volatilité du marché, etc.

  3. Mettre en place un module de stop-loss, afin d'obtenir des profits partiels.

  4. Ajout de filtres de confluence. Entrez long uniquement si le secteur correspondant/le marché large atteint également le support, vérifiant la fiabilité du signal.

Conclusion

Cette stratégie capture les opportunités d'inversion de la moyenne grâce à des baisses d'achat, avec prise de profit/arrêt de perte pour le contrôle des risques.


/*backtest
start: 2022-11-16 00:00:00
end: 2023-11-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © racer8
//@version=4
strategy("Buy-The-Dip", overlay=true)

atn = input(15, "ATR Period")
atr = sma(tr,atn)[1]
bought = strategy.position_size[0] > strategy.position_size[1]

slm = input(2.0,"ATR SL Multiple",minval=0)
StopPrice  = strategy.position_avg_price - slm*atr              // determines stop loss's price 
FixedStopPrice = valuewhen(bought,StopPrice,0)                  // stores original StopPrice  
plot(FixedStopPrice,"Stop Loss",color=color.red,linewidth=2,style=plot.style_cross)

tpm = input(1.0,"ATR TP Multiple",minval=0)
TakePrice  = strategy.position_avg_price + tpm*atr              // determines Take Profit's price 
FixedTakePrice = valuewhen(bought,TakePrice,0)                  // stores original TakePrice  
plot(FixedTakePrice,"Take Profit",color=color.green,linewidth=2,style=plot.style_cross)

nn = input(7,"Channel Length")
ll = lowest(low,nn)

if close<ll[1]
    strategy.entry("Buy",strategy.long)
if strategy.position_size > 0
    strategy.exit(id="XL SL", stop=FixedStopPrice, limit=FixedTakePrice)    // commands stop loss order to exit!

plot(ll,color=color.orange)

Plus de