
Cette stratégie utilise le RSI, le MACD moyen, les bandes de Brin et les stop-loss pour réaliser des transactions rotatives dynamiques multifonctionnelles. La stratégie détermine d’abord si plusieurs indicateurs techniques émettent simultanément des signaux d’achat ou de vente, et si c’est le cas, elle effectue des opérations d’achat ou de vente correspondantes.
La stratégie comprend principalement les éléments suivants:
Facteurs de jugement
Entrée et sortie
Optimisation de la stratégie
Cette stratégie ne prend pas en compte un seul indicateur technique, mais combine plusieurs facteurs, tels que le RSI, le MACD et la séquence TD, afin de réduire les faux signaux causés par un seul indicateur et d’améliorer la précision de l’entrée.
Les indices RSI, MACD et autres ont des caractéristiques de dynamique plus évidentes et peuvent capturer les changements de tendance des cours des actions. Ces indicateurs sont plus sensibles au retournement que les indicateurs de suivi de tendance tels que la moyenne.
Le stop-loss mobile permet de s’arrêter en fonction de la situation et de mieux bloquer les bénéfices. Le stop-loss permet de contrôler les pertes individuelles.
Cette stratégie, combinée à des indicateurs techniques couramment utilisés, a une certaine universalité. Les règles sont relativement simples, claires et faciles à comprendre et à utiliser.
Cette stratégie est principalement basée sur la manipulation du marché rétrograde et appartient à la stratégie de retour. Dans un marché haussier, l’utilisation de cette stratégie peut entraîner des pertes fréquentes et un mauvais effet.
Si les paramètres sont trop sensibles, la fréquence des transactions peut être trop élevée, augmentant les coûts de transaction et la perte de points de glissement.
Cette stratégie repose sur plusieurs indicateurs de même direction, mais parfois les indicateurs peuvent diverger, ce qui émet un mauvais signal.
Le risque d’une rupture du nombre de points d’arrêt fixes peut être contourné par un arrêt dynamique ou par un changement de position.
On peut tester les paramètres du RSI et les paramètres de la période de la ligne moyenne pour trouver des combinaisons de fréquences de négociation plus faibles.
Il est possible de définir des paramètres qui améliorent l’efficacité de la stratégie en combinant les caractéristiques statistiques de l’action, telles que la volatilité, la liquidité, etc.
Il est possible d’ajuster les paramètres de la stratégie en fonction de l’indice de panique du marché, comme le VIX, pour réduire la fréquence des transactions en cas de panique du marché.
Il est possible de tester différentes périodes de détention pour déterminer l’impact de la détention à long terme ou de la rotation à court terme sur l’efficacité de la stratégie.
Des méthodes plus avancées d’arrêt de freinage dynamique peuvent être étudiées pour mesurer l’effet.
Cette stratégie prend en compte un large éventail d’indicateurs techniques et utilise des stop-loss mobiles pour bloquer les bénéfices et contrôler les risques, en assurant une plus grande précision d’entrée. L’idée de la stratégie est simple et claire, facile à comprendre.
/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("RSI, TD Seq, MACD, BB Strategy - Calculation Trailing Profit",overlay=true)
RSIDifference = input(-7, minval=-50, maxval=50, title="RSI Difference")
TD = close > close[4] ?nz(TD[1])+1:0
TS = close < close[4] ?nz(TS[1])+1:0
TDUp = TD - valuewhen(TD < TD[1], TD , 1 )
TDDn = TS - valuewhen(TS < TS[1], TS , 1 )
TDcheckUP = iff(TD == 2, true, false)
TDCheckDOWN = iff(TS == 2, true, false)
[_, _, histLine] = macd(close, 12, 26, 9)
MACDCheckDown = iff(histLine > 0 and histLine[1] > 0 and histLine[2] > 0 and histLine[3] > 0 and histLine[4] > 0, true, false)
MACDCheckUp = iff(histLine < 0 and histLine[1] < 0 and histLine[2] < 0 and histLine[3] < 0 and histLine[4] < 0, true, false)
RSICal = rsi(close, 14)
RSICalNewUp = 50 + RSIDifference
RSICalNewDown = 50 - RSIDifference
RSICheckUp = iff(RSICal <= RSICalNewUp, true, false)
RSICheckDown = iff(RSICal >= RSICalNewDown, true, false)
basis = sma(close, 20)
dev = 2 * stdev(close, 20)
upperBB = basis + dev
lowerBB = basis - dev
BBCheckUp = iff(close > upperBB, true, false)
BBCheckDown = iff(close < lowerBB, true, false)
//BBCheckUp = false
//BBCheckDown = false
BuyCheck = iff(TDcheckUP == true and MACDCheckUp == true and RSICheckUp == true and BBCheckUp == false, true, false)
SellCheck = iff(TDCheckDOWN == true and MACDCheckDown == true and RSICheckDown == true and BBCheckDown == false, true, false)
ProfitStratA = input(50, minval=0, maxval=10000, title="Profit", step=0.5)
ProfitTrailingA = input(10, minval=0, maxval=10000, title="Profit", step=0.5)
useStopLoss = input(false, title="Use Stop Loss?")
LossstratA = input(145, minval=0, maxval=10000, title="Stop Loss", step=0.5)
colB = input(100, minval=0, maxval=100, title="0-show / 100-hide Strategy", step=100)
ProfitStrat = ProfitStratA * 10
ProfitTrailing = ProfitTrailingA * 10
Lossstrat = useStopLoss ? LossstratA * 10 : 1000000
if (strategy.position_size > 0)
strategy.exit("BuyClose", "Buy", trail_points=ProfitStrat, trail_offset=ProfitTrailing, loss=Lossstrat)
if (strategy.position_size < 0)
strategy.exit("SellClose", "Sell", trail_points=ProfitStrat, trail_offset=ProfitTrailing, loss=Lossstrat)
if (BuyCheck == true and strategy.position_size == 0)
strategy.entry("Buy", strategy.long, comment="Long Entry")
if (SellCheck == true and strategy.position_size == 0)
strategy.entry("Sell", strategy.short, comment="Short Entry")
plotshape(BuyCheck, color=blue, transp=colB, style=shape.arrowup, text="Buy\n", location=location.belowbar)
plotshape(SellCheck, color=orange, transp=colB, style=shape.arrowdown, text="Sell\n", location=location.abovebar)