L'achat de plongées - MA200 Stratégie optimisée

Auteur:ChaoZhang est là., Date: 2024-01-08 16h54 et 21h
Les étiquettes:

img

Résumé

Cette stratégie combine une approche opposée (achat de baisses) avec une logique de suivi de la tendance (uniquement lorsque le prix est supérieur au MA200).

Principe de stratégie

Cette stratégie calcule le changement global en pourcentage du prix au cours de la période de rétrospective pour déterminer si le prix est à une baisse relative. Lorsque le pourcentage de changement global est inférieur à -3%, le prix est considéré à la baisse. En outre, la stratégie définit également la moyenne mobile simple de 200 jours comme indicateur pour juger de la tendance. Les signaux d'achat ne sont déclenchés que lorsque le prix est au-dessus de la moyenne mobile de 200 jours. En utilisant à la fois le principe de réversion moyenne et l'appariement long-short, la stratégie achète la baisse pendant une tendance haussière pour réaliser un profit.

Analyse des avantages

Cette stratégie combine les avantages du trading de tendance et du trading contrarien. D'une part, l'utilisation de la moyenne mobile à long terme pour déterminer la tendance évite d'acheter aveuglément lors d'une tendance à la baisse. D'autre part, les baisses d'achat offrent de meilleures opportunités d'entrée pendant les corrections à court terme. La combinaison garantit à la fois la sécurité du trading et une plus grande probabilité de profit. De plus, la stratégie a une grande marge d'optimisation pour les paramètres qui peuvent être ajustés pour s'adapter à différents marchés, ce qui lui donne une forte adaptabilité.

Analyse des risques

Le plus grand risque est que le prix puisse continuer à baisser après le déclenchement du signal d'achat, entraînant des pertes accrues. En outre, si le marché reste limité à la fourchette pendant une longue période et que le prix ne parvient pas à franchir la moyenne mobile, la stratégie échouerait également. Pour atténuer ces risques, la période de moyenne mobile pourrait être raccourcie en conséquence et les critères d'achat peuvent être optimisés pour assurer une marge de sécurité suffisante.

Directions d'optimisation

La stratégie peut être optimisée sous plusieurs aspects: 1) optimiser la période de moyenne mobile pour s'adapter à différents marchés; 2) optimiser les critères d'achat pour assurer une marge suffisante; 3) ajouter un stop loss pour contrôler les pertes; 4) combiner d'autres indicateurs pour juger de la tendance et des baisses pour améliorer la précision.

Résumé

En général, il s'agit d'une stratégie typique qui combine les idées de trading tendance et contrarie. Elle garantit à la fois la sécurité de la négociation et une probabilité de gain plus élevée, avec une forte valeur pratique.


/*backtest
start: 2023-12-08 00:00:00
end: 2024-01-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Buy The Dips - MA200 Optimised", overlay=false)

//Moving average
MAinp = input(defval = 100, title = "MA", type = input.integer, minval = 1, step = 1)
MA=sma(close, MAinp)

//Percent change
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)

// === INPUT BACKTEST RANGE ===
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2020, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

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

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

//Entry/Exit
strategy.entry(id="long", long = true, when = window() and overall<-3 and close > MA) 
strategy.close(id="long", when = window() and overall>1)


bgcolor(color = showDate and window() ? color.gray : na, transp = 90) 
plot(overall, color=color.black, title='Overall Percentage Change', linewidth=3)
band1 = hline(1, "Upper Band", color=#C0C0C0)
band0 = hline(-2, "Lower Band", color=#C0C0C0)
fill(band1, band0, color=#9915FF, transp=90, title="Background")
hline(0, title='Center Line', color=color.orange, linestyle=hline.style_solid, linewidth=2)

Plus de