
La stratégie est une stratégie d’inversion dynamique basée sur des moyennes mobiles et des indicateurs relativement faibles. Elle utilise des croisements de moyennes mobiles rapides et de moyennes mobiles lentes ainsi que des signaux de surachat et de survente pour juger de l’entrée et de la sortie.
Cette stratégie utilise la moyenne mobile à 14 jours comme ligne de signal rapide et la moyenne mobile à 28 jours comme ligne lente. En combinaison avec l’indicateur RSI, elle permet de déterminer si le marché est en sur-achat ou en survente.
Lorsque la moyenne mobile de 14 jours est inférieure à la moyenne mobile de 28 jours et que le RSI est inférieur à 30 ou au RSI est inférieur à 13, le jugement de l’évolution est inversé et un gain de place est effectué. Lorsque la moyenne mobile de 14 jours est inférieure à la moyenne mobile de 28 jours, le jugement de l’inversion de la quantité mobile est invalidé et une partie de l’arrêt est effectuée.
En outre, la stratégie met en place un mécanisme de blocage partiel. Lorsque le rendement de la position atteint le seuil de blocage défini (défaut de 8%), il est partiellement bloqué (défaut de 50%).
Cette stratégie combine les avantages des moyennes mobiles et évite les pertes de whipsaw.
La moyenne mobile rapide et lente permet de filtrer une partie du bruit.
Le RSI est un indicateur qui détermine la sur-achat et la sur-vente, et évite de les suivre.
Le mécanisme de blocage partiel bloque une partie des bénéfices et réduit les risques.
Les stratégies de croisement de deux moyennes mobiles sont susceptibles de générer des whipsaws, ce qui entraîne des pertes. Cette stratégie peut filtrer une partie des whipsaws grâce à un jugement auxiliaire de l’indicateur RSI.
Les arrêts partiels peuvent entraîner des pertes plus importantes. Les arrêts partiels peuvent être ajustés pour équilibrer les risques et les bénéfices.
Il est possible de tester des combinaisons de moyennes mobiles de différents paramètres pour trouver le paramètre optimal.
Différents seuils RSI peuvent être testés.
Il est possible d’ajuster le seuil d’arrêt partiel et le ratio de vente pour équilibrer les risques et les gains.
Cette stratégie est une stratégie de revers typique dans son ensemble. Elle utilise une courbe de revers croisée de la courbe moyenne rapide pour juger de la reversité du marché et de la combinaison des signaux de filtrage de l’indicateur RSI.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-02 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title = "14/28 SMA and RSI", shorttitle = "14/28 SMA and RSI", overlay = false, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, currency = currency.USD)
src = close, len = input(14, minval=1, title="Length")
take_Profit=input(8, title="Take Profit")
quantityPercentage=input(50, title="Percent of Quantity to Sell")
closeOverbought=input(true, title="Close Overbought and Take Profit")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
longCondition = 0
sellCondition = 0
takeProfit = 0
quantityRemainder = 100
smaSignal = input(14, title="SMA Signal Period")
smaLong = input(28, title="SMA Longer Period")
if ((sma(close, smaSignal) >= sma(close, smaLong) and rsi<= 30) or (rsi<=13)) and strategy.position_size==0
longCondition:=1
if longCondition==1
strategy.entry("Buy", strategy.long)
profit = ((close-strategy.position_avg_price)/strategy.position_avg_price) * 100
if sma(close, smaSignal) <= sma(close, smaLong) and strategy.position_size>1
sellCondition := 1
if strategy.position_size>=1
if closeOverbought == true
if profit>=take_Profit and takeProfit == 0
strategy.exit("Take Profit", profit=take_Profit, qty_percent=quantityPercentage)
takeProfit:=1
quantityRemainder:=100-quantityPercentage
if sellCondition == 1 and quantityRemainder<100
strategy.close("Buy")
if closeOverbought == false and rsi>70
strategy.close("Take Profit")
plot(longCondition, "Buy Condition", green)
plot(takeProfit, "Partial Sell Condition", orange)
plot(sellCondition, "Sell Condition", red)