
Cette stratégie est une stratégie simple et classique de dépassement des moyennes mobiles, créée par le célèbre trader Larry Williams. La stratégie utilise la moyenne mobile simple du 9e jour comme ligne rapide et la moyenne mobile indicielle du 21e jour comme ligne lente.
La stratégie est basée sur une croix d’or et une croix de mort sur une moyenne mobile pour juger des opportunités de faire des gains et des gains. Une telle rupture est faite lorsque la ligne rapide traverse la ligne lente en bas pour être dorée, indiquant que le marché est haussier; une telle rupture est faite lorsque la ligne rapide traverse la ligne lente en haut pour être morte, indiquant que le marché est baissier.
Afin d’éviter que les faux bris ne causent des pertes virtuelles, la stratégie a également introduit la ligne de 21 jours pour juger de la tendance majeure. Les actions de négociation ne sont prises que lorsque le prix franchit la ligne de 21 jours en même temps que la ligne rapide. Cela permet de filtrer efficacement de nombreux faux bris.
En particulier, le signal de faire plus est le suivant: la ligne rapide monte et franchit le sommet d’hier, tandis que la ligne rapide franchit la ligne 21 du jour, afin d’établir le sommet; le signal de faire vide est le suivant: la ligne rapide descend et franchit le sommet d’hier, tandis que la ligne rapide franchit la ligne 21 du jour, afin d’établir le sommet vide.
Les principaux avantages de cette stratégie sont les suivants:
La stratégie présente principalement les risques suivants:
Les risques mentionnés ci-dessus peuvent être optimisés et maîtrisés par les moyens suivants:
Cette stratégie peut être optimisée principalement dans les directions suivantes:
L’optimisation des paramètres permet de tester les combinaisons de paramètres du cycle MA de manière plus systématique pour trouver des paramètres plus optimaux.
Augmentation des arrêts. Mettre en place des arrêts mobiles raisonnables, des arrêts à l’échelle, etc. pour contrôler efficacement les pertes individuelles.
En combinaison avec d’autres indicateurs. L’introduction de signaux d’autres indicateurs tels que MACD, ATR, KD, etc., permet d’obtenir une confirmation de plus de dimensions et améliore la stabilité de la stratégie.
Optimisation des mécanismes d’évacuation. Étude des différents types de stratégies d’évacuation, telles que l’évacuation du signal de retour, l’évacuation de l’arrêt de mouvement et d’autres méthodes.
La stratégie de croisement des moyennes mobiles est une stratégie de suivi de tendance très typique et pratique dans l’ensemble. Elle présente des avantages en ce qu’elle est facile à comprendre et à mettre en œuvre, mais il y a aussi de la place pour l’amélioration.
// @_benac
//@version=5
strategy('Larry', overlay=true , initial_capital=1000 )
////////////////////////////////////////////////////////
// //
// //
// Codigo Operacional //
// //
// //
////////////////////////////////////////////////////////
// Usage for Stocks , or Criptos with value bigger then 1, cuz of 0.01 ´pip.
// Daily timeframe
//Observation Point
start = timestamp(2020, 00, 00, 00, 00) // backtest start window
finish = timestamp(2022, 01, 07, 23, 59) // backtest finish window
window() => true // create function "within window of time"
if time < start
strategy.close_all("Closing All")
// Take infos from inputs.
inp_mmshort = input.int(defval = 9, title = "Media Curta" )
inp_mminter = input.int(defval = 21, title = "Media Curta" )
// Risk Manager, here define max and min
inp_max = input.int(defval = 15, title = "Percentual Ganho" )
inp_min = input.int(defval = 5, title = "Percental Perda" )
// Converting the input to %
pmax = (inp_max / 100 )
pmin = (inp_min / 100)
// Infos From Moving Average
mm_short = ta.sma(close , inp_mmshort)
mm_inter = ta.ema(close , inp_mminter)
// Trend Logic
//Long Condition
//Setup do Larry Willians Bem Simples , media virou para cima e rompeu a maxima de referencia, compra.
tendencia_alta = mm_short[2] > mm_short[1] and mm_short > mm_short[1] and close > high[1] and close > mm_short and mm_short > mm_inter
tendencia_baixa = mm_short[2] < mm_short[1] and mm_short < mm_short[1] and close > low[1] and close < mm_short and mm_short < mm_inter
// Creating the entry
if tendencia_alta
strategy.entry("Compra" , strategy.long , stop = low - 0.01 )
stop_inst = low - 0.01
if tendencia_baixa
strategy.entry("Venda" , strategy.short , stop= high + 0.01 )
stop_inst = high + 0.01
// TrailingStop Creation
// Sell Position
if strategy.position_size < 0
gain_p = strategy.opentrades.entry_price(0) - (strategy.opentrades.entry_price(0) * pmax)
stop_p = strategy.opentrades.entry_price(0) + (strategy.opentrades.entry_price(0) * pmin)
// Managing the position
if close < gain_p
strategy.close_all(comment = " 1 - Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p) )
if close > stop_p
strategy.close_all(comment = " 2 - Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p) )
if high > mm_short[1]
strategy.close_all(comment = " 3 - Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p) )
// Buy Position
if strategy.position_size > 0
gain_p = strategy.opentrades.entry_price(0) + (strategy.opentrades.entry_price(0) * pmax)
stop_p = strategy.opentrades.entry_price(0) - (strategy.opentrades.entry_price(0) * pmin)
// Managing the position
if close > gain_p
strategy.close_all(comment = " 1- Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p) )
if close < stop_p
strategy.close_all(comment = " 2 -Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p) )
if low < mm_short[1]
strategy.close_all(comment = " 3 -Ganho : " + str.tostring( gain_p) + " Perda : " + str.tostring( stop_p) )