
Cette stratégie utilise des croisements de moyennes mobiles de deux périodes différentes pour effectuer des transactions. Elle appartient à la catégorie des stratégies de suivi de tendance. La stratégie utilise des signaux d’achat et de vente croisés de moyennes mobiles à court et à long terme pour effectuer des transactions dans une tendance.
La stratégie utilise une moyenne mobile à court terme de 9 cycles SMA et une moyenne mobile à long terme de 50 cycles LMA. Un signal d’achat est généré lorsque la moyenne mobile à court terme traverse la moyenne mobile à long terme par le bas; un signal de vente est généré lorsque la moyenne mobile à court terme traverse la moyenne mobile à long terme par le haut.
Dans le même temps, la stratégie introduit l’indicateur RSI pour juger de la force de la tendance. Un signal de transaction n’est généré que lorsque le RSI est supérieur à la limite définie (la valeur par défaut de 55). Cela évite un signal erroné lorsque le RSI est dans la zone de survente.
Stratégie: chaque transaction représente 30% du capital total, et chaque fois qu’une seule commande est passée, 0.1% des frais de transaction sont pris en compte.
Il est possible de réduire le risque en optimisant les paramètres, en combinant d’autres indicateurs pour déterminer les opportunités de profit, en gérant strictement les fonds et en mettant en place des arrêts de perte.
La stratégie capte les opportunités de tendance grâce à un simple système de croisement des moyennes mobiles. Les paramètres par défaut sont optimisés, les gains sont stables et conviennent à la négociation automatisée. La stabilité et les gains de la stratégie peuvent être encore améliorés par l’introduction d’autres indicateurs auxiliaires, des paramètres d’optimisation et l’amélioration des arrêts de perte.
/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 2h
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/
// © relevantLeader16058
//@version=4
strategy(shorttitle='Maximized Moving Average Crossing ',title='Maximized Moving Average Crossing (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", 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() => time >= start and time <= finish ? true : false // create function "within window of time"
//MA inputs and calculations
inlong=input(50, title='MA long period')
inshort=input(9, title='MA short period')
MAlong = sma(close, inlong)
MAshort= sma(close, inshort)
// RSI inputs and calculations
lengthRSI = (14)
RSI = rsi(close, lengthRSI)
RSI_Signal = input(55, title = 'RSI Trigger', minval=1)
//Entry and Exit
bullish = crossover(MAshort, MAlong)
bearish = crossunder(MAshort, MAlong)
strategy.entry(id="long", long = true, when = bullish and RSI > RSI_Signal and window())
strategy.close(id="long", when = bearish and window())
plot(MAshort, color=color.purple, linewidth=2)
plot(MAlong, color=color.red, linewidth=2)