
La stratégie utilise le RSI pour juger si une position est trop achetée ou trop vendue, et un système de jugement de tendance composé de lignes rapides, moyennes et lentes pour juger si une position est trop ouverte en cas de saut de prix.
Lorsque la ligne rapide traverse la ligne médiane et que l’indicateur RSI indique une survente, effectuez une entrée supplémentaire
Faire une entrée en position courte lorsque la courbe inférieure traverse la ligne médiane et que le RSI indique un surachat
Le stop loss est fixé à 4% du prix d’entrée.
Le profit est obtenu en bloquant les positions, d’abord en bloquant 20%, puis en bloquant 15% si le prix continue d’augmenter, puis en sortant de la position
Cette stratégie, combinée à l’indicateur de la ligne de parité et à l’indicateur RSI, permet de juger des opportunités d’achat et de vente tout en capturant la tendance des changements de prix. Cette stratégie est l’une des stratégies de suivi de tendance les plus courantes.
/*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")