Cette stratégie utilise l'indicateur RSI pour déterminer les conditions de surachat et de survente, combiné à un système de jugement de tendance construit avec des lignes moyennes mobiles rapides, moyennes et lentes, afin d'identifier les opportunités d'ouvrir des positions longues ou courtes lorsque les prix sautent.
Utiliser l'indicateur RSI pour déterminer les conditions de surachat et de survente
Utiliser trois lignes SMA de différentes périodes pour déterminer la tendance
Lorsque la ligne rapide traverse au-dessus de la ligne moyenne, et que l'indicateur RSI montre une survente, passez long
Lorsque la ligne rapide traverse la ligne moyenne et que l'indicateur RSI montre un surachat, passez à la ligne courte.
Le stop loss est fixé à 4% du prix d'entrée
La prise de profit se fait par lots, d'abord prendre un profit de 20%, puis prendre 15% que le prix continue à augmenter, sortir des positions progressivement
Cette stratégie combine des indicateurs de moyenne mobile et l'indicateur de surachat/survente RSI. En capturant les changements de tendance des prix tout en jugeant les opportunités de trading, elle appartient à une stratégie de suivi des tendances couramment utilisée.
/*backtest start: 2023-11-13 00:00:00 end: 2023-11-20 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/ // © syfuslokust //@version=4 strategy(shorttitle='CoinruleCombinedCryptoStrat',title='CoinruleCombinedCryptoStrat', overlay=true) // RSI inputs and calculations lengthRSI = 14 RSI = rsi(close, lengthRSI) //Normal oversold = input(30) overbought = input(70) //ALGO //oversold= input(26) //overbought= input(80) //sell pct SellPct = input(20) ExitPct = input(15) //MA inputs and calculations movingaverage_signal = sma(close, input(9)) movingaverage_fast = sma(close, input(50)) movingaverage_slow = sma(close, input(200)) movingaverage_mid= sma(close, input(100)) //Look Back inp_lkb = input(12, title='Lookback Long Period') inp_lkb_2 = input(2, title='Lookback Short Period') perc_change(lkb) => overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100 //Entry //MA bullish = crossover(movingaverage_signal, movingaverage_fast) //Execute buy strategy.entry(id="long", long = true, when = (RSI < oversold and movingaverage_fast < movingaverage_mid)) //when = crossover(close, movingaverage_signal) and movingaverage_signal < movingaverage_slow and RSI < oversold) //Exit //RSI Stop_loss= ((input (4))/100) longStopPrice = strategy.position_avg_price * (1 - Stop_loss) //MA bearish = crossunder(movingaverage_signal, movingaverage_fast) //Execute sell strategy.close("long", qty_percent = SellPct, when = RSI > overbought and movingaverage_fast > movingaverage_mid) //when = (crossunder(low, movingaverage_signal) and movingaverage_fast > movingaverage_slow and RSI > overbought) or (movingaverage_signal < movingaverage_fast and crossunder(low, movingaverage_fast)) or (low < longStopPrice)) //PLOT plot(movingaverage_signal, color=color.black, linewidth=2, title="signal") plot(movingaverage_fast, color=color.orange, linewidth=2, title="fast") plot(movingaverage_slow, color=color.purple, linewidth=2, title="slow") plot(movingaverage_mid, color=color.blue, linewidth=2, title="mid")