Cette stratégie génère des signaux commerciaux basés sur le croisement entre les moyennes mobiles rapides et lentes. Elle produit des signaux d'achat lorsque la moyenne mobile rapide franchit le niveau supérieur de la moyenne mobile lente d'en bas. Elle produit des signaux de vente lorsque la moyenne mobile rapide franchit le niveau inférieur de la moyenne mobile lente d'en haut.
Cette stratégie utilise la fonction sma pour calculer les moyennes mobiles rapides et lentes. le fast_SMA est la moyenne mobile rapide avec la longueur de période fast_SMA_input. le slow_SMA est la moyenne mobile lente avec la longueur de période slow_SMA_input.
La stratégie utilise les fonctions de croisement et de croisement pour déterminer le croisement entre les moyennes mobiles rapides et lentes. Lorsque la moyenne mobile rapide dépasse la moyenne mobile lente, la variable LONG est vraie et un signal d'achat est généré. Lorsque la moyenne mobile rapide dépasse la moyenne mobile lente, la variable SHORT est vraie et un signal de vente est généré.
Cette stratégie présente les avantages suivants:
Cette stratégie comporte également les risques suivants:
Gestion des risques:
Cette stratégie peut être optimisée par les aspects suivants:
Cette stratégie génère efficacement des signaux de trading en tirant parti des avantages des moyennes mobiles. Bien qu'il y ait des risques, ils peuvent être améliorés par l'optimisation des paramètres, l'ajout de filtres, etc. La stratégie de croisement des moyennes mobiles vaut la peine d'être étudiée et appliquée.
/*backtest start: 2023-10-01 00:00:00 end: 2023-10-13 00:00:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@author Jacques Grobler // // SIMPLE CROSS OVER BOT // ===================== // // This is a simple example of how to set up a strategy to go long or short // If you make any modifications or have any suggestions, let me know // When using this script, every section marked back testing should be // uncommented in order to use for back testing, same goes for using the script portion /////////////////////////////////////////////////////////////////////////////////////// //// INTRO //// ----- // BACKTESTING //@version=4 strategy(title="SimpleCrossOver_Bot_V1_Backtester", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=0, commission_type=strategy.commission.percent, commission_value=0.1) // SIGNALS //study(title="SimpleCrossOver_Bot_V1_Signals", overlay = true) /////////////////////////////////////////////////////////////////////////////////////// //// INPUTS //// ------ // BACKTESTING dateSart_Year = input(2018, title="Start Year", minval=2000) dateSart_Month = input(1, title="Start Month", minval=1, maxval=12) dateSart_Day = input(1, title="Start Day", minval=1, maxval=31) dateEnd_Year = input(2019, title="End Year", minval=2000) dateEnd_Month = input(1, title="End Month", minval=1, maxval=12) dateEnd_Day = input(1, title="End Day", minval=1, maxval=31) // BACKTESTING AND SIGNALS fast_SMA_input = input(7, title="SMA Fast") slow_SMA_input = input(25, title="SMA Slow") /////////////////////////////////////////////////////////////////////////////////////// //// INDICATORS //// ---------- fast_SMA = sma(close, fast_SMA_input) slow_SMA = sma(close, slow_SMA_input) /////////////////////////////////////////////////////////////////////////////////////// //// STRATEGY //// -------- LONG = cross(fast_SMA, slow_SMA) and fast_SMA > slow_SMA stratLONG() => crossover(fast_SMA, slow_SMA) SHORT = cross(fast_SMA, slow_SMA) and fast_SMA < slow_SMA stratSHORT() => crossunder(fast_SMA, slow_SMA) /////////////////////////////////////////////////////////////////////////////////////// //// TRIGGERS //// -------- // BACKTESTING testPeriodStart = timestamp(dateSart_Year, dateSart_Month, dateSart_Day, 0, 0) testPeriodStop = timestamp(dateEnd_Year, dateEnd_Month, dateEnd_Day, 0, 0) timecondition = true strategy.entry(id="LONG", long = true, when=timecondition and stratLONG()) strategy.entry(id="SHORT", long = false, when=timecondition and stratSHORT()) // SIGNALS //alertcondition(LONG, title="LONG") //alertcondition(SHORT, title="SHORT") /////////////////////////////////////////////////////////////////////////////////////// //// PLOTS //// ----- // BACKTESTING AND SIGNALS plot(fast_SMA, color=green, linewidth=1) plot(slow_SMA, color=yellow, linewidth=1) plotshape(LONG, title="LONG", style=shape.triangleup, text="LONG", location=location.belowbar, size=size.small, color=green) plotshape(SHORT, title="SHORT", style=shape.triangledown, text="SHORT", location=location.abovebar, size=size.small, color=red)