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.
Utilisez l'indicateur Aroon pour déterminer la direction des tendances des prix.
Lorsque l'indicateur Aroon traverse la ligne 0 en dessous, un signal d'achat est déclenché.
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.
Lorsque l'indicateur Aroon traverse la ligne 0 depuis le haut, un signal de sortie complet est déclenché.
Si la perte dépasse ce point, une sortie de stop loss est déclenchée.
L'utilisation de l'indicateur Aroon pour déterminer la direction de la tendance peut capturer efficacement les points de rotation du marché.
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é.
Les échanges dans les deux sens permettent de réaliser des profits sur les marchés à la fois à la hausse et à la baisse.
La mise en place d'un stop loss aide à contrôler les risques.
L'indicateur d'Aroon a un effet de retard, qui peut éviter les retours brusques et à court terme.
Il ne peut pas gérer efficacement les marchés à plage, ce qui conduit à des transactions inutiles.
Les échanges dans les deux sens augmentent la fréquence des échanges et les frais de commission.
Les paramètres doivent être correctement ajustés pour s'adapter à différents délais et produits.
Combiner avec d'autres indicateurs pour filtrer les signaux et réduire les erreurs causées par le retard.
Accroître la recherche quantitative pour optimiser les paramètres des différents produits.
Ajouter des stratégies de prise de profit pour augmenter le facteur de profit.
Ne négociez que lorsque la tendance est claire pour réduire les transactions inefficaces.
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