
Cette stratégie utilise les doubles moyennes mobiles pour former des canaux afin de capturer la direction de la tendance. Elle génère un signal de transaction lorsque le prix franchit le canal. Elle est également combinée avec le filtre RSI pour les fausses brèches.
Cette stratégie utilise deux moyennes mobiles de longueur 5, l’une calculée à partir du prix le plus élevé et l’autre à partir du prix le plus bas, pour former un canal de prix. Faites plus lorsque le prix de clôture franchit le canal supérieur et faites moins lorsque le canal est franchi.
Pour filtrer les fausses percées, on a aussi introduit l’indicateur RSI pour juger les surachats et les surventeurs. Faites plus lorsque le RSI est supérieur à 80 et faites moins lorsque le RSI est inférieur à 20.
De plus, la stratégie est appliquée uniquement aux heures de trading londoniennes (de 3h à 11h du matin), avec un maximum de 5 ordres par jour et une perte maximale de 2% de la participation.
Les moyennes mobiles doubles construisent des canaux de tendance et permettent de mieux juger de la direction de la tendance des prix. Elles capturent la tendance haussière des prix lorsque les prix franchissent la trajectoire ascendante des canaux; elles capturent la tendance baissière des prix lorsque les prix franchissent la trajectoire descendante des canaux.
La combinaison de l’indicateur RSI pour juger des zones de survente et de survente peut réduire dans une certaine mesure les faux-bénéfices causés par les fluctuations de prix.
La stratégie consiste à négocier uniquement pendant les périodes de négociation les plus actives, avec un maximum de 5 ordres par jour permettant de contrôler efficacement la fréquence de négociation; le paramètre de perte maximale de 2% permet de contrôler la perte maximale d’une journée dans une plage acceptable.
Il est possible que certains faux signaux de rupture se produisent lorsque les prix sont en forte fluctuation, ce qui entraîne des pertes de trading inutiles. Ce risque peut être réduit en ajustant les paramètres d’optimisation ou en ajoutant des conditions de filtrage.
La stratégie utilise un nombre fixe de points de stop-loss. Lorsqu’il y a une forte fluctuation du prix, le stop-loss à points fixes est facilement bloqué, ce qui peut être compensé par un stop-loss en pourcentage ou dynamique.
La stratégie consiste à ouvrir une position uniquement à une période de négociation fixe, et à manquer des opportunités de négociation potentielles à d’autres périodes si aucun signal n’est généré à cette période. Il est possible d’envisager d’étendre le temps de négociation de manière appropriée ou de l’ajuster dynamiquement en fonction de la situation en temps réel.
La longueur de la moyenne mobile, les paramètres RSI, le nombre de points d’arrêt fixes, etc. peuvent être optimisés pour trouver la combinaison optimale de paramètres.
Il est possible d’ajouter d’autres indicateurs ou conditions pour une vérification secondaire des signaux de rupture, tels que l’augmentation du volume des transactions, la réduction des canaux de liaison de blurring, etc., afin de réduire les fausses ruptures.
Il est préférable d’utiliser des stratégies de stop-loss en pourcentage ou en stop-loss dynamique, plutôt que des simples stop-loss à points fixes, afin de mieux couvrir le risque d’une action unilatérale.
Les signaux doivent être vérifiés manuellement ou l’entrée doit être confirmée pour éviter d’être pris au piège.
Cette stratégie est généralement simple et pratique, et permet de déterminer la direction de la tendance en construisant un canal à partir d’une moyenne mobile double. En même temps, l’indicateur RSI peut filtrer efficacement certaines fausses ruptures. En ce qui concerne le contrôle du risque, la limitation du temps de négociation et la perte maximale peuvent contrôler le risque global.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-16 23:59:59
period: 1h
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/
// © SoftKill21
//@version=4
strategy(title="Moving Average", shorttitle="MA", overlay=true)
timeinrange(res, sess) => time(res, sess) != 0
len = input(5, minval=1, title="Length")
src = input(high, title="Source")
offset = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
out = sma(src, len)
plot(out, color=color.white, title="MA", offset=offset)
len2 = input(5, minval=1, title="Length")
src2 = input(low, title="Source")
offset2 = input(title="Offset", type=input.integer, defval=0, minval=-500, maxval=500)
out2 = sma(src2, len2)
plot(out2, color=color.white, title="MA", offset=offset2)
length = input( 5 )
overSold = input( 10 )
overBought = input( 80 )
price = input(close, title="Source RSI")
vrsi = rsi(price, length)
longcond= close > out and close > out2 and vrsi > overBought
shortcont = close < out and close < out2 and vrsi < overSold
tp=input(150,title="tp")
sl=input(80,title="sl")
strategy.entry("long",1,when=longcond)
//strategy.close("long",when= close < out2)
strategy.exit("long_exit","long",profit=tp,loss=sl)
strategy.entry("short",1,when=shortcont)
//strategy.close("short",when=close >out)
strategy.exit("short_exit","short",profit=tp,loss=sl)
// maxOrder = input(6, title="max trades per day")
// maxRisk = input(2,type=input.float, title="maxrisk per day")
// strategy.risk.max_intraday_filled_orders(maxOrder)
// strategy.risk.max_intraday_loss(maxRisk, strategy.percent_of_equity)
// strategy.close_all(when =not timeinrange(timeframe.period, "0300-1100"))