Cette stratégie est basée sur l’Amazing scalper for majors with risk management de SoftKill21 et a été modifiée pour réduire le retard en utilisant des moyennes mobiles à triple indice au lieu des moyennes mobiles simples d’origine. La stratégie s’applique aux cycles de 1 minute des principales paires de devises et utilise une méthode de suivi de la tendance pour effectuer des opérations d’achat et de vente en fonction de la croix et de la croix en or des EMA rapides, standard et lentes.
La stratégie utilise trois moyennes mobiles indicielles de trois périodes différentes: l’EMA rapide de 25 cycles, l’EMA standard de 50 cycles et l’EMA lente de 100 cycles. Lorsqu’une EMA rapide traverse l’EMA standard et l’EMA lente, elle génère un signal d’achat; lorsqu’une EMA rapide traverse l’EMA standard et l’EMA lente, elle génère un signal de vente.
Plus précisément, la stratégie calcule d’abord trois lignes EMA, puis détermine si l’EMA rapide forme un croisement ou une jonction avec l’EMA standard et l’EMA lente, générant un signal d’achat ou de vente si des conditions sont réunies pour que les heures d’ouverture correspondent à celles de Londres ou de New York. Lors de la détermination de la taille de la position, la stratégie calcule d’abord le pourcentage fixe de l’intérêt du compte en tant qu’ouverture de risque, puis le convertit en nombre de contrats et en nombre standard, afin d’ajuster dynamiquement la position de chaque ordre.
Cette stratégie présente les avantages suivants:
L’utilisation d’EMA triple, permettant d’aplanir efficacement les données de prix et d’identifier la direction de la tendance. L’EMA rapide est sensible aux changements de prix, l’EMA standard est suivi de manière stable et le bruit de filtrage de l’EMA lent.
L’application de la technique de l’aplatissement de l’indice secondaire pour calculer l’EMA, réduit le retard et rend le signal plus sensible.
La combinaison des heures de négociation majeures et des heures de négociation non majeures permet d’éviter des signaux trompeurs.
La gestion des risques est une méthode qui consiste à ajuster les positions en fonction des intérêts et des droits du compte.
La logique de la stratégie est simple, claire, facile à comprendre et adaptée aux débutants.
Il est possible d’optimiser les ajustements pour différentes paires de devises et périodes de temps.
Cette stratégie comporte également des risques potentiels:
L’EMA n’a pas pu filtrer efficacement les fausses fuites à court terme causées par des événements soudains, ce qui peut générer de faux signaux. Il est recommandé d’analyser les fuites en combinaison avec d’autres indicateurs.
Les positions à pourcentage fixe ne peuvent pas être ajustées dynamiquement aux fluctuations du marché, il y a un problème de position trop grande ou trop petite. L’introduction d’indicateurs dynamiques d’ajustement des positions tels que la volatilité peut être envisagée.
En ne considérant que les deux principales périodes de négociation, il est possible de manquer des opportunités de négociation pour les autres périodes.
Il n’y a pas de mécanisme de stop-loss, ce qui ne permet pas de contrôler efficacement les pertes unilatérales. Il est possible de définir un stop-loss mobile ou un stop-loss temporel.
L’intersection EMA présente un certain retard et peut manquer le meilleur moment d’entrée. Vous pouvez envisager de réduire le cycle EMA ou de le combiner avec d’autres indicateurs précédents.
L’effet peut être influencé par le coût de la transaction. Il est recommandé d’ajuster les positions de stop loss et de stop stop.
Cette stratégie peut être optimisée dans les domaines suivants:
Tester différents paramètres du cycle EMA pour trouver la combinaison optimale des paramètres. Des techniques d’optimisation dynamique de l’EMA telles que l’adaptation aux EMA peuvent être introduites.
L’ajout d’autres indicateurs de filtrage, tels que RSI, les bandes de Brin, etc., améliore la qualité du signal.
Introduction d’un mécanisme de gestion dynamique des positions, permettant d’adapter les positions en fonction de la volatilité du marché et de la rentabilité.
Ajout de stop-motion et de stop-time pour limiter les pertes. Ajustement approprié du point de stop-loss.
Testez différentes périodes de négociation pour trouver les meilleures. Vous pouvez combiner des périodes de filtrage d’indicateurs tels que la volatilité.
Optimiser les niveaux de stop-loss et de stop-loss, équilibrer la taille des gains et le taux de victoire. Introduire des stop-loss intelligents tels que les stop-loss parallèles.
Essayez de modifier et d’améliorer les méthodes de calcul de l’EMA, telles que l’EMA à pondération linéaire, pour réduire le retard.
Les paramètres optimaux sont recherchés en combinaison avec des méthodes d’apprentissage automatique.
La modélisation des coûts de transaction et l’ajustement du système pour maximiser les bénéfices nets.
Grâce à ces optimisations, il est possible d’améliorer la rentabilité du système, de contrôler les retraits et d’élargir le champ d’application, ce qui permet d’obtenir une stratégie de négociation plus puissante et plus stable.
Cette stratégie est clairement conçue, utilise la triple EMA pour identifier les tendances, effectuer des opérations en fonction des principales périodes de négociation et déterminer les positions en utilisant le ratio de compte. Elle appartient à la stratégie de suivi de tendance typique.
/*backtest
start: 2023-09-19 00:00:00
end: 2023-09-26 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// original author SoftKill21
//@version=4
//@capam
strategy(title="Triple EMA Scalper low lag strat", shorttitle="3EMA scalper", overlay=true)
strategy.initial_capital = 50000
len1 = input(25, minval=1, title="Length")
len2 = input(50, minval=1, title="Length")
len3 = input(100, minval=1, title="Length")
src = input(close, title="Source")
tmp1 = ema(src, len1)
tmp2 = ema(src, len2)
tmp3 = ema(src, len3)
fastemaOut = 2*tmp1 - ema(tmp1, len1)
standardemaOut = 2*tmp2 - ema(tmp2, len2)
slowemaOut = 2*tmp3 - ema(tmp3, len3)
//fastemaOut = sma(src, len1)
//standardemaOut = sma(src, len2)
//slowemaOut = sma(src, len3)
plot(fastemaOut, color=color.black, title="First EMA")
plot(standardemaOut, color=color.yellow, title="Second EMA")
plot(slowemaOut, color=color.blue, title="Third EMA")
timeinrange(res, sess) => time(res, sess) != 0
londopen = timeinrange(timeframe.period, "0300-1100")
nyopen = timeinrange(timeframe.period, "0800-1600")
longCondition = crossover(fastemaOut,standardemaOut) and crossover(fastemaOut,slowemaOut) and londopen //or nyopen)
shortCondition = crossunder(fastemaOut,standardemaOut) and crossunder(fastemaOut,slowemaOut) and londopen// or nyopen)
longCondition2 = crossover(fastemaOut,standardemaOut) and crossover(fastemaOut,slowemaOut) and nyopen
shortCondition2 = crossunder(fastemaOut,standardemaOut) and crossunder(fastemaOut,slowemaOut) and nyopen
tp = input(50,title="TP")
sl = input(100, title="SL")
tradeLondon = input(title="Trade london session?", type=input.bool, defval=true)
tradeNewyork = input(title="Trade new york session?", type=input.bool, defval=true)
//MONEY MANAGEMENT--------------------------------------------------------------
balance = strategy.netprofit + strategy.initial_capital //current balance
floating = strategy.openprofit //floating profit/loss
risk = input(1,type=input.float,title="Risk % of equity ")/100 //risk % per trade
temp01 = balance * risk //Risk in USD
temp02 = temp01/sl //Risk in lots
temp03 = temp02*100000 //Convert to contracts
size = temp03 - temp03%1000 //Normalize to 1000s (Trade size)
if(size < 1000)
size := 1000
if(tradeLondon==true)
strategy.entry("long",1,when=longCondition)
strategy.exit("tp/sl","long",profit=tp,loss=sl)
strategy.entry("short",0,when=shortCondition)
strategy.exit("tp/sl","short",profit=tp,loss=sl)
if(tradeNewyork==true)
strategy.entry("long",1,when=longCondition2)
strategy.exit("tp/sl","long",profit=tp,loss=sl)
strategy.entry("short",0,when=shortCondition2)
strategy.exit("tp/sl","short",profit=tp,loss=sl)
// strategy.risk.max_intraday_filled_orders(2)