
Cette stratégie utilise l’indicateur de concentration des moyennes mobiles (MACD) et l’indicateur de force relative (RSI) pour définir des conditions d’achat et de vente afin de capturer les opportunités de retournement des cours des actions.
Calculer l’indicateur MACD, y compris les lignes rapides, les lignes lentes et les lignes de signaux.
Calculer le RSI et définir les seuils de zone de survente et de zone de survente.
Les conditions d’achat et de vente sont déterminées par un jugement de zone de survente combiné avec les signaux de décalage horaire de l’indicateur MACD et de l’indicateur RSI:
Conditions d’achat: le MACD forme une fourchette sur la ligne rapide, tandis que le RSI vient de revenir de la zone de survente, avec un signal de retour;
Conditions de vente: le MACD passe sous la ligne rapide pour former une fourche morte, tandis que l’indicateur RSI entre dans la zone de survente et a un signal de revers.
L’indicateur MACD permet de déterminer la tendance des cours des actions et le moment où il faut acheter ou vendre. L’indicateur RSI permet de déterminer le moment où il faut acheter ou vendre.
Le filtrage des signaux de deux indicateurs permet d’éviter les faux signaux générés par un seul indicateur.
Le MACD, combiné au RSI, peut être acheté avant le point de basculement et vendu après le point de basculement pour saisir l’opportunité de basculement.
La stratégie fonctionne à une fréquence modérée, permettant de suivre les tendances et de capturer les inversions, et d’être flexible.
Les indicateurs MACD sont susceptibles de produire de faux signaux dans des situations de choc. Les paramètres de l’indicateur RSI doivent être optimisés, sinon des faux signaux apparaîtront également.
Les cours des actions peuvent être très volatiles à court terme, et les points de rupture de la stratégie entraînent des pertes.
Il est nécessaire d’optimiser les paramètres du RSI et du MACD, sinon il peut y avoir trop ou pas assez de signaux.
Les transactions en bourse nécessitent une gestion rigoureuse du capital et un contrôle des risques.
Optimiser le réglage de la moyenne lente des paramètres MACD pour trouver la combinaison optimale de paramètres.
Optimiser les seuils de survente et de survente du RSI afin d’éviter de faux signaux.
Adhésion à un mécanisme de prévention des pertes pour contrôler les pertes individuelles.
Il est possible d’envisager d’ajouter d’autres indicateurs, tels que la bande de Brin, le KDJ, etc., pour former un filtre multiple.
Vous pouvez tester différentes stratégies d’achat et de vente, telles que des stratégies de rupture, des stratégies de suivi de tendances, etc.
Cette stratégie utilise simultanément le MACD et le RSI, deux indicateurs de force, qui sont achetés et vendus au point de basculement, avec une forte valeur réelle. Cependant, il est nécessaire d’optimiser en permanence les paramètres de configuration et de bien gérer strictement les fonds pour obtenir de bons résultats sur le marché réel.
/*backtest
start: 2022-11-13 00:00:00
end: 2023-11-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
// © sabirt
strategy(title='MACD and RSI', overlay=true, shorttitle='MACD&RSI')
//MACD Settings
fastMA = input.int(title='Fast moving average', defval=12, minval=1)
slowMA = input.int(title='Slow moving average', defval=26, minval=1)
signalLength = input.int(9, minval=1)
//RSI settings
RSIOverSold = input.int(35, minval=1)
RSIOverBought = input.int(80, minval=1)
src = close
len = input.int(14, minval=1, title='Length')
up = ta.rma(math.max(ta.change(src), 0), len)
down = ta.rma(-math.min(ta.change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - 100 / (1 + up / down)
wasOversold = rsi[0] <= RSIOverSold or rsi[1] <= RSIOverSold or rsi[2] <= RSIOverSold or rsi[3] <= RSIOverSold or rsi[4] <= RSIOverSold or rsi[5] <= RSIOverSold
wasOverbought = rsi[0] >= RSIOverBought or rsi[1] >= RSIOverBought or rsi[2] >= RSIOverBought or rsi[3] >= RSIOverBought or rsi[4] >= RSIOverBought or rsi[5] >= RSIOverBought
[currMacd, _, _] = ta.macd(close[0], fastMA, slowMA, signalLength)
[prevMacd, _, _] = ta.macd(close[1], fastMA, slowMA, signalLength)
signal = ta.ema(currMacd, signalLength)
avg_1 = math.avg(currMacd, signal)
crossoverBear = ta.cross(currMacd, signal) and currMacd < signal ? avg_1 : na
avg_2 = math.avg(currMacd, signal)
crossoverBull = ta.cross(currMacd, signal) and currMacd > signal ? avg_2 : na
strategy.entry('buy', strategy.long, when=crossoverBull and wasOversold)
strategy.close('buy', when=crossoverBear and wasOverbought)