
La stratégie est une simple stratégie de croisement de la moyenne SMA. Elle utilise une moyenne mobile simple de deux périodes différentes (SMA) pour ouvrir des positions plus élevées lorsque la ligne rapide traverse la ligne lente de bas en haut et plus basses lorsque la ligne rapide traverse la ligne lente de haut en bas. La stratégie permet de personnaliser la longueur des deux lignes normales, ainsi que les dates de début et de fin de la réévaluation.
L’idée principale de cette stratégie est d’utiliser les caractéristiques de tendance de la ligne moyenne et les caractéristiques de signaux de croisement de la ligne moyenne pour effectuer des transactions. Lorsque la ligne rapide est au-dessus de la ligne lente, indiquant qu’elle est actuellement en tendance à la hausse, il convient de tenir une position à plusieurs têtes; lorsque la ligne rapide est en dessous de la ligne lente, indiquant qu’elle est actuellement en tendance à la baisse, il convient d’observer une position vide.
La stratégie de croisement de ligne SMA est une stratégie de suivi de tendance simple, facile à comprendre et pratique pour les débutants. Elle utilise les caractéristiques de la tendance de la ligne uniforme et les caractéristiques du signal de la ligne uniforme, permettant de capturer rapidement les changements de tendance du marché. Cependant, la stratégie présente également certaines limites et risques, tels que le retard, la fréquence des transactions et le manque de stop-loss.
/*backtest
start: 2023-03-22 00:00:00
end: 2024-03-27 00:00:00
period: 1d
basePeriod: 1h
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/
// © j0secyn
//@version=5
strategy("MA Cross", overlay=true, margin_long=100, margin_short=100, default_qty_value=100, default_qty_type=strategy.percent_of_equity, initial_capital=10000)
// === INPUT BACKTEST RANGE ===
fromDay = input.int(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input.int(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input.int(defval = 2018,title = "From Year", minval = 1970)
thruDay = input.int(defval = 30, title = "Thru Day", minval = 1, maxval = 31)
thruMonth = input.int(defval = 9, title = "Thru Month", minval = 1, maxval = 12)
thruYear = input.int(defval = 2024, title = "Thru Year", minval = 1970)
slow_ma_length = input.int(defval = 100, title = "Slow MA lenght")
fast_ma_length = input.int(defval = 30, title = "Fast MA lenght")
// === FUNCTION EXAMPLE ===
start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window
finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window
window() => true
// === LOGIC ===
crossOv = ta.crossover(ta.sma(close, fast_ma_length), ta.sma(close, slow_ma_length))
crossUn = ta.crossunder(ta.sma(close, fast_ma_length), ta.sma(close, slow_ma_length))
// === EXECUTION ===
// strategy.entry("L", strategy.long, when = window() and crossOv) // enter long when "within window of time" AND crossover
// strategy.close("L", when = window() and crossUn) // exits long when "within window of time" AND crossunder
strategy.entry("L", strategy.long, when = window() and crossOv) // enter long when "within window of time" AND crossover
strategy.close("L", when = window() and crossUn) // exits long when "within window of time" AND crossunder