Il s'agit d'une stratégie simple et classique de croisement des moyennes mobiles créée par le célèbre trader Larry Williams. La stratégie utilise la moyenne mobile simple de 9 jours comme ligne rapide et la moyenne mobile exponentielle de 21 jours comme ligne lente. Elle va long lorsque le prix dépasse la ligne de 9 jours et court lorsque le prix dépasse la ligne de 9 jours. Pour filtrer les fausses ruptures, la ligne de 21 jours est également utilisée pour confirmer la tendance.
La stratégie est basée sur le croisement doré et le croisement mortel des moyennes mobiles pour déterminer les opportunités longues et courtes. Lorsque la ligne rapide dépasse la ligne lente par le bas, c'est un croisement doré, indiquant un changement vers une tendance haussière. Une telle rupture est utilisée pour aller long. Lorsque la ligne rapide dépasse la ligne lente par le haut, c'est un croisement mortel, indiquant un changement vers une tendance baissière. Une telle rupture est utilisée pour aller court.
Pour éviter de fausses ruptures conduisant à des pertes virtuelles, la ligne de 21 jours est également utilisée pour déterminer la tendance majeure.
Plus précisément, le signal long est déclenché lorsque: la ligne rapide dépasse le plus haut d'hier et dépasse la ligne de 21 jours. Le signal court est déclenché lorsque: la ligne rapide dépasse le plus bas d'hier et dépasse la ligne de 21 jours.
Les principaux avantages de cette stratégie sont les suivants:
Les principaux risques de cette stratégie sont les suivants:
Pour faire face à ces risques, des optimisations peuvent être apportées dans les aspects suivants:
Les principales orientations d'optimisation de cette stratégie sont les suivantes:
Optimisation des paramètres: des méthodes plus systématiques peuvent être utilisées pour tester différentes combinaisons de périodes de MA afin de trouver de meilleurs paramètres.
Ajoutez un stop loss. définissez un stop loss en mouvement approprié, un stop loss en pourcentage, etc. pour contrôler efficacement la perte d'un seul trade.
Combiner d'autres indicateurs, introduire des signaux du MACD, de l'ATR, du KD, etc. pour obtenir plus de dimensions de confirmation et améliorer la stabilité de la stratégie.
Optimiser les mécanismes de sortie. Rechercher différents types de méthodes de sortie telles que les sorties de signaux d'inversion, les sorties de prise de profit en mouvement, etc.
En résumé, cette stratégie de croisement des moyennes mobiles est une stratégie de suivi de tendance très typique et pratique. Elle a l'avantage d'être facile à comprendre et à mettre en œuvre, et a également des possibilités d'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) )