Cette stratégie tire parti de la tendance à la baisse en construisant des positions courtes progressivement sur la base des moyennes mobiles et des indicateurs RSI.
Lorsque le prix de clôture est inférieur à la moyenne mobile simple de 100 jours et que le RSI est supérieur à 30, passez à la position courte. Ensuite, définissez un stop loss au-dessus du prix d'entrée de 3% et prenez un profit en dessous du prix d'entrée de 2%. Le stop loss plus large permet une plus grande volatilité pour éviter les arrêts inutiles.
Sur la plateforme Coinrule, définissez plusieurs ordres de vente séquentiels pour construire graduellement la position. Lorsque la tendance à la baisse persiste, augmentez la taille de la position.
Chaque transaction est liée à un ordre stop loss et take profit. Les pourcentages sont optimisés pour les pièces de taille moyenne. Vous pouvez ajuster en fonction d'une pièce spécifique. Comme il négocie avec la tendance, le ratio stop loss et take profit comme 1:1.5 pourrait fonctionner.
Stop-loss à 3% au-dessus du prix d'entrée Profitez de 2% de moins que le prix d'entrée Un stop loss légèrement plus important tolère une plus grande volatilité.
Cette stratégie capte efficacement la tendance à la baisse basée sur MA et RSI. La construction progressive de la position contrôle le risque tandis que le stop loss et le take profit assurent l'endurance. Optimiser davantage le ratio risque-rendement en ajustant les paramètres stop loss / take profit. Il y a place à des améliorations des paramètres et du contrôle des risques. Mais dans l'ensemble, une stratégie à court terme solide.
/*backtest start: 2022-10-31 00:00:00 end: 2023-11-06 00:00:00 period: 1d basePeriod: 1h 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/ // © Coinrule //@version=4 strategy(shorttitle='Short In Downtrend',title='Short In Downtrend Below MA100', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100) //Backtest dates fromMonth = input(defval = 1, title = "From Month", type = input.integer, minval = 1, maxval = 12) fromDay = input(defval = 10, title = "From Day", type = input.integer, minval = 1, maxval = 31) fromYear = input(defval = 2019, title = "From Year", type = input.integer, minval = 1970) thruMonth = input(defval = 1, title = "Thru Month", type = input.integer, minval = 1, maxval = 12) thruDay = input(defval = 1, title = "Thru Day", type = input.integer, minval = 1, maxval = 31) thruYear = input(defval = 2112, title = "Thru Year", type = input.integer, minval = 1970) showDate = input(defval = true, title = "Show Date Range", type = input.bool) start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window window() => true // create function "within window of time" //MA inputs and calculations inSignal=input(50, title='MASignal') MA= sma(close, inSignal) // RSI inputs and calculations lengthRSI = input(14, title = 'RSI period', minval=1) RSI = rsi(close, lengthRSI) //Entry strategy.entry(id="short", long = false, when = close < MA and RSI > 30) //Exit shortStopPrice = strategy.position_avg_price * (1 + 0.03) shortTakeProfit = strategy.position_avg_price * (1 - 0.02) strategy.close("short", when = close > shortStopPrice or close < shortTakeProfit and window()) plot(MA, color=color.purple, linewidth=2)