Stratégie de suivi des tendances à double

Auteur:ChaoZhang est là., Date: 2023-09-17 18:20:27 La date est fixée par le gouvernement.
Les étiquettes:

Résumé

Cette stratégie est basée sur l'indicateur Aroon pour identifier et suivre les tendances dans les deux sens. L'indicateur Aroon peut déterminer efficacement la direction des tendances du marché. Combiné avec l'indicateur RSI, il forme une stratégie de suivi relativement complète.

Principe de stratégie

  1. Utilisez l'indicateur Aroon pour déterminer la direction des tendances des prix.

  2. Lorsque l'indicateur Aroon traverse la ligne 0 en dessous, un signal d'achat est déclenché.

  3. Si vous avez déjà une position et que la clôture est inférieure au prix d'achat, tandis que le RSI est inférieur à 30, il est considéré comme survendu, des ordres d'achat supplémentaires seront passés.

  4. Lorsque l'indicateur Aroon traverse la ligne 0 depuis le haut, un signal de sortie complet est déclenché.

  5. Si la perte dépasse ce point, une sortie de stop loss est déclenchée.

Analyse des avantages

  1. L'utilisation de l'indicateur Aroon pour déterminer la direction de la tendance peut capturer efficacement les points de rotation du marché.

  2. L'indicateur RSI aide à identifier les zones de surachat et de survente, en évitant de poursuivre de nouveaux sommets et de vendre des sommets pendant les tours de marché.

  3. Les échanges dans les deux sens permettent de réaliser des profits sur les marchés à la fois à la hausse et à la baisse.

  4. La mise en place d'un stop loss aide à contrôler les risques.

Analyse des risques

  1. L'indicateur d'Aroon a un effet de retard, qui peut éviter les retours brusques et à court terme.

  2. Il ne peut pas gérer efficacement les marchés à plage, ce qui conduit à des transactions inutiles.

  3. Les échanges dans les deux sens augmentent la fréquence des échanges et les frais de commission.

  4. Les paramètres doivent être correctement ajustés pour s'adapter à différents délais et produits.

Directions d'optimisation

  1. Combiner avec d'autres indicateurs pour filtrer les signaux et réduire les erreurs causées par le retard.

  2. Accroître la recherche quantitative pour optimiser les paramètres des différents produits.

  3. Ajouter des stratégies de prise de profit pour augmenter le facteur de profit.

  4. Ne négociez que lorsque la tendance est claire pour réduire les transactions inefficaces.

Résumé

Cette stratégie intègre les indicateurs Aroon et RSI pour former un système de trading de tendance bidirectionnelle relativement complet. Mais une optimisation supplémentaire des paramètres et une combinaison avec d'autres indicateurs de filtrage sont encore nécessaires pour réduire les erreurs.


/*backtest
start: 2023-09-09 00:00:00
end: 2023-09-12 00:00:00
period: 1m
basePeriod: 1m
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/
// © mohanee

//@version=4
// strategy(title="Aroon Oscillator Strategy", overlay=false, pyramiding=2,    initial_capital=10000, currency=currency.USD)  //default_qty_value=10, default_qty_type=strategy.fixed, 

//variables BEGIN
aroonLength=input(169,title="Aroon Length")   //square root of 13
rsiLength=input(13, title="RSI Length")
stopLoss = input(title="Stop Loss%", defval=5, minval=1)
//variables  END

//RSI 
rsi13=rsi(close,rsiLength)




// Drawings

//Aroon oscillator

arronUpper = 100 * (highestbars(high, aroonLength+1) + aroonLength)/aroonLength
aroonLower = 100 * (lowestbars(low, aroonLength+1) + aroonLength)/aroonLength

aroonOsc  = arronUpper - aroonLower

aroonMidpoint = 0
oscPlot = plot(aroonOsc, color=color.green)
midLine= plot(aroonMidpoint, color=color.green)
topLine = plot(90,style=plot.style_circles, color=color.green)
bottomLine = plot(-90,style=plot.style_circles, color=color.red)

fill(oscPlot, midLine, color=aroonOsc>0?color.green:color.red, transp=50)
fill(topLine,bottomLine, color=color.blue)


// RSI 
//plot(rsi13, title="RSI", linewidth=2, color=color.purple)
//hline(50, title="Middle Line", linestyle=hline.style_dotted)
//obLevel = hline(80, title="Overbought", linestyle=hline.style_dotted)
//osLevel = hline(30, title="Oversold", linestyle=hline.style_dotted)
//fill(obLevel, osLevel, title="Background", color=rsi13 >=30 ? color.green:color.purple, transp=65)  // longTermRSI >=50


//Entry--

strategy.entry(id="Long Entry", comment="LE",  long=true,  when= crossover(aroonOsc,0)   )     //crossover(close,ema34)  //and close>ema34  //crossover(rsi5Val,rsiBuyLine)

//Add
if(strategy.position_size>=1 and close < strategy.position_avg_price and crossover(rsi13,30))
    strategy.order(id="Long Entry", comment="Add", long=true )     //crossover(close,ema34)  //and close>ema34  //crossover(rsi5Val,rsiBuyLine)  --


stopLossVal= abs(strategy.position_size)>1 ? strategy.position_avg_price*(1-0.5) : 0.00 


//close partial
strategy.close(id="Long Entry", comment="Partial X",  qty=strategy.position_size/3, when=abs(strategy.position_size)>=1 and crossunder(aroonOsc, 90) )   //close<ema55 and rsi5Val<20 //ema34<ema55 


//close All
strategy.close(id="Long Entry", comment="Exit All",  when=abs(strategy.position_size)>=1 and crossunder(aroonOsc, 0) )   //close<ema55 and rsi5Val<20 //ema34<ema55  //close<ema89

//close All on stop loss
strategy.close(id="Long Entry", comment="Stoploss X",  when=abs(strategy.position_size)>=1 and close < stopLossVal )   //close<ema55 and rsi5Val<20 //ema34<ema55  //close<ema89


Plus de