
Il s’agit d’une stratégie de trading automatique basée sur l’intersection de deux moyennes mobiles indicielles sur deux périodes de temps différentes. Il utilise des indicateurs techniques simples et convient parfaitement aux débutants pour l’apprentissage et la pratique.
Cette stratégie utilise deux moyennes mobiles, l’une étant la moyenne de la grande période et l’autre la moyenne de la période en cours. Lorsque la moyenne de la période en cours traverse la moyenne de la grande période, faites plus; lorsque la moyenne de la période en cours traverse la moyenne de la grande période, faites moins.
Plus précisément, la stratégie définit d’abord deux paramètres linéaires:
Les deux EMA sont calculées séparément:
Pour terminer, on entre dans la logique de l’opération:
Ainsi, la direction de la tendance peut être déterminée par le croisement de différentes périodes de temps, ce qui permet d’effectuer des transactions automatiques.
Cette stratégie présente les avantages suivants:
Cette stratégie comporte aussi des risques:
Il est possible de réduire le risque en définissant des stop-loss, en optimisant la combinaison de paramètres ou en ajoutant d’autres indicateurs.
Cette stratégie peut être optimisée dans les domaines suivants:
La stratégie de croisement des moyennes mobiles de l’indice utilise une tendance simple à la capture d’indicateurs, adaptée aux pratiques d’apprentissage des novices. Il y a beaucoup de place pour l’optimisation, et il est possible d’introduire plus d’indicateurs et de modèles techniques pour améliorer et développer des stratégies de trading quantifiées plus efficaces.
/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Noro's Singapore Strategy", shorttitle = "Singapore str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot")
tf = input("D", title = "Big Timeframe")
len = input(3, minval = 1, title = "MA length")
src = input(close, title = "MA Source")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//MAs
ma1 = request.security(syminfo.tickerid, tf, sma(src, len))
ma2 = sma(src, len)
plot(ma1, linewidth = 2, color = blue, title = "Big TF MA")
plot(ma2, linewidth = 2, color = red, title = "MA")
//Trading
size = strategy.position_size
lot = 0.0
lot := size != size[1] ? strategy.equity / close * capital / 100 : lot[1]
if ma2 > ma1
strategy.entry("L", strategy.long, needlong ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if ma2 < ma1
strategy.entry("S", strategy.short, needshort ? lot : 0, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if time > timestamp(toyear, tomonth, today, 23, 59)
strategy.close_all()