Stratégie simple d'achat à bas prix

Auteur:ChaoZhang est là., Date: le 26-12-2023 à 10h49
Les étiquettes:

img

Résumé

La stratégie d'achat à bas prix et de vente à haut prix est une stratégie de trading à long terme très simple mais efficace.

Principe de stratégie

Le noyau de cette stratégie est de juger si le marché a connu un déclin majeur en calculant les hauts et les bas des prix des crypto-monnaies au cours d'une période de rétrospective donnée. Lorsque les prix des crypto-monnaies ont chuté fortement au-delà du seuil fixé au cours de la période la plus récente, cela indique que le marché peut être extrêmement paniqué. La stratégie achètera alors automatiquement. En outre, cette stratégie définit également des points de stop loss et de profit qui déclenchent automatiquement un stop loss ou un profit lorsque les prix atteignent ces deux points.

Plus précisément, cette stratégie utilise la fonction trailing_change pour calculer les hauts et les bas globaux des prix de la crypto-monnaie sur une période de rétrospective donnée. Lorsque les hauts et les bas des prix de la crypto-monnaie dans les dernières bougies inp_lkb sont inférieurs à la valeur négative de la baisse du paramètre défini, c'est la baisse majeure qui répond à la condition d'achat. À ce moment, dans la fenêtre de temps de backtest, l'ordre d'achat de la stratégie sera déclenché.

Après l'achat, cette stratégie suivra les changements de prix en temps réel et fixera deux conditions de sortie: (1) Lorsque le prix tombe en dessous de (1 - pourcentage de stop loss) % du prix d'ouverture, l'ordre stop loss sera déclenché; (2) Lorsque le prix dépasse (1 + pourcentage de profit), l'ordre take profit sera déclenché.

Analyse de la force

Le plus grand avantage de cette stratégie d'achat à bas prix et de vente à haut prix est qu'elle est très simple et facile à exécuter. Elle ne nécessite pas d'indicateurs techniques complexes, se fondant uniquement sur les hauts et les bas des prix au cours d'une période récente pour juger des conditions du marché, ce qui la rend très adaptée aux traders novices.

En outre, cette stratégie prend en charge les paramètres stop loss et take profit, qui peuvent contrôler efficacement la perte de transactions individuelles et verrouiller certains bénéfices.

Analyse des risques

Le principal risque de cette stratégie est qu'il est impossible de déterminer le moment des renversements du marché. Si le marché continue à décliner sans rebond, les positions longues ouvertes peuvent subir de plus grandes pertes flottantes. Par conséquent, le réglage des points de stop loss est crucial. Si les points de stop loss sont trop larges, les pertes uniques peuvent être dévastatrices.

Un autre risque à noter est que s'il y a une fluctuation violente du marché, les prix peuvent déclencher un stop loss ou un profit dans un court laps de temps. Cela pourrait entraîner des coûts de négociation supplémentaires.

Pour faire face aux risques ci-dessus, nous pouvons définir une période de rétrospective plus longue afin d'assurer des signaux d'achat plus stables et fiables qui filtrent certains faux signaux dans les fluctuations du marché.

Directions d'optimisation

Il reste encore des possibilités d'optimisation de cette stratégie, principalement dans les domaines suivants:

  1. Ajustez dynamiquement les paramètres de stop loss et de take profit. La plage de stop loss et de take profit peut être ajustée dynamiquement en fonction de la volatilité du marché. Ayez une plage de stop loss plus large pendant la panique du marché et une plage de take profit appropriée lorsque le marché monte.

  2. Combinez plusieurs facteurs pour déterminer le moment de l'entrée. En plus des hauts et des bas récents, d'autres facteurs tels que les changements de volume des transactions peuvent être introduits pour déterminer des signaux d'inversion plus fiables.

  3. Ajouter un mécanisme de rentrée. Après un stop-loss ou un profit, certaines stratégies de rentrée peuvent être définies pour racheter de nouvelles opportunités d'inversion.

Conclusion

Dans l'ensemble, cette stratégie d'achat à bas prix et de vente à haut prix est bien adaptée aux marchés de crypto-monnaie très volatils. Elle capture les opportunités d'inversion du marché et définit un stop loss et un profit pour contrôler les risques. Cette stratégie est très simple, facile à comprendre et à mettre en œuvre, ce qui la rend idéale pour les traders novices.


/*backtest
start: 2023-11-25 00:00:00
end: 2023-12-25 00:00:00
period: 1h
basePeriod: 15m
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/
// © Coinrule

//@version=3
strategy(shorttitle='Buy the Dips',title='Buy the Dips (by Coinrule)', overlay=true, initial_capital = 1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1)

//Backtest dates
fromMonth = input(defval = 1,  title = "From Month")     
fromDay   = input(defval = 10,    title = "From Day")       
fromYear  = input(defval = 2020, title = "From Year")       
thruMonth = input(defval = 1,    title = "Thru Month")     
thruDay   = input(defval = 1,    title = "Thru Day")     
thruYear  = input(defval = 2112, title = "Thru Year")       

showDate  = input(defval = true, title = "Show Date Range")

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false       // create function "within window of time"

inp_lkb = input(1, title='Lookback Period')
 
perc_change(lkb) =>
    overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100

// Call the function    
overall = perc_change(inp_lkb)

//Entry

dip= -(input(2))

strategy.entry(id="long", long = true, when = overall< dip and window()) 

//Exit
Stop_loss= ((input (2))/100)
Take_profit= ((input (2))/100)

longStopPrice  = strategy.position_avg_price * (1 - Stop_loss)
longTakeProfit = strategy.position_avg_price * (1 + Take_profit)

strategy.close("long", when = close < longStopPrice or close > longTakeProfit and window())


Plus de