Les ressources ont été chargées... Je charge...

Stratégie d'inversion de l'élan

Auteur:ChaoZhang est là., Date: 2024-01-03 17h14 et 15h
Les étiquettes:

img

Résumé

Cette stratégie est une stratégie d'inversion d'élan basée sur les moyennes mobiles et l'indice de force relative (RSI).

La logique de la stratégie

La stratégie utilise une moyenne mobile de 14 jours comme ligne de signal rapide et une moyenne mobile de 28 jours comme ligne lente.

Lorsque le MA de 14 jours dépasse le MA de 28 jours et que le RSI est inférieur à 30 ou le RSI est inférieur à 13, il signale un renversement de l'élan à la hausse, ce qui entraîne une entrée longue.

En outre, la stratégie comporte un mécanisme de prise partielle de bénéfices: lorsque le bénéfice de la position ouverte atteint le niveau de prise de bénéfices fixé (défaut de 8%), elle prend partiellement profit (défaut de vente de 50%).

Analyse des avantages

La stratégie combine les avantages des moyennes mobiles tout en évitant les pertes de frappe.

  1. L'utilisation de moyennes mobiles rapides et lentes filtre un peu de bruit.

  2. L'indicateur RSI mesure les niveaux de surachat et de survente, évitant de poursuivre de nouveaux sommets.

  3. La prise partielle de bénéfices bloque certains bénéfices et réduit les risques.

Analyse des risques

  1. Les doubles croisements de moyennes mobiles peuvent produire des fléchettes, conduisant à des pertes.

  2. Le niveau de profit peut être ajusté pour équilibrer le risque par rapport à la récompense.

Directions d'optimisation

  1. Testez différentes combinaisons de paramètres des moyennes mobiles pour trouver les paramètres optimaux.

  2. Testez différents niveaux de seuil RSI.

  3. Ajuster le niveau de prise partielle de profit et le ratio de vente pour équilibrer risque/rendement.

Conclusion

Dans l'ensemble, il s'agit d'une stratégie de réversion moyenne typique. Elle utilise des croisements MA rapides / lents pour déterminer les tours de marché complétés par RSI pour filtrer les signaux. Elle implémente également une prise de profit partielle pour verrouiller certains bénéfices. La stratégie est simple mais pratique. Les paramètres peuvent être ajustés pour s'adapter aux différentes conditions du marché.


/*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)

Plus de