Cette stratégie est un système de trading à deux délais basé sur l'indicateur SuperTrend et le RSI. Elle combine des indicateurs d'analyse technique à partir de délais de 120 minutes et de 15 minutes, en utilisant SuperTrend pour capturer l'orientation de la tendance à moyen terme tout en utilisant le RSI pour la prise de profit.
La logique de base repose sur plusieurs éléments clés:
Il s'agit d'une stratégie de suivi des tendances bien structurée avec une logique claire. Elle combine différents indicateurs techniques de calendrier pour capturer les tendances tout en maintenant le contrôle des risques. Bien qu'il y ait place à l'optimisation, la conception globale s'aligne sur les principes de négociation quantitative. Les traders doivent tester et optimiser les paramètres avant de négocier en direct et ajuster la taille de la position en fonction de leur tolérance au risque.
/*backtest start: 2024-10-01 00:00:00 end: 2024-10-31 23:59:59 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © felipemiransan //@version=5 strategy("Supertrend Strategy", overlay=true) // Function for Supertrend supertrend(_factor, _atrPeriod) => [out, _] = ta.supertrend(_factor, _atrPeriod) out // Supertrend Settings factor = input.float(3.42, title="Supertrend Factor") atrPeriod = input.int(14, title="ATR Period") tf2 = input.timeframe("120", title="Supertrend Timeframe") // RSI Settings rsi_tf = input.timeframe("15", title="RSI Timeframe") rsiLength = input.int(5, title="RSI Length") rsiUpper = input.int(95, title="RSI Upper Limit") rsiLower = input.int(5, title="RSI Lower Limit") // RSI Timeframe rsi_tf_value = request.security(syminfo.tickerid, rsi_tf, ta.rsi(close, rsiLength), lookahead=barmerge.lookahead_off, gaps=barmerge.gaps_off) // Supertrend Timeframe supertrend_tf2 = request.security(syminfo.tickerid, tf2, supertrend(factor, atrPeriod), lookahead=barmerge.lookahead_off, gaps=barmerge.gaps_off) // Take Profit Settings (Percentage in relation to the average price) takeProfitPercent = input.float(30, title="Take Profit", step=0.1) / 100 // Entry conditions based on price crossover with Supertrend Timeframe longCondition = ta.crossover(close, supertrend_tf2) and barstate.isconfirmed shortCondition = ta.crossunder(close, supertrend_tf2) and barstate.isconfirmed // Execution of reversal orders with closing of previous position if (longCondition) // Close a short position before opening a long position if (strategy.position_size < 0) strategy.close("Short", comment="Close Short for Long Entry") strategy.entry("Long", strategy.long) if (shortCondition) // Close long position before opening short position if (strategy.position_size > 0) strategy.close("Long", comment="Close Long for Short Entry") strategy.entry("Short", strategy.short) // Calculate take profit levels relative to the average entry price if (strategy.position_size > 0) takeProfitLong = strategy.position_avg_price * (1 + takeProfitPercent) strategy.exit("Take Profit Long", "Long", limit=takeProfitLong) if (strategy.position_size > 0 and (rsi_tf_value >= rsiUpper)) strategy.close("Long", comment="RSI Take Profit Long") if (strategy.position_size < 0) takeProfitShort = strategy.position_avg_price * (1 - takeProfitPercent) strategy.exit("Take Profit Short", "Short", limit=takeProfitShort) if (strategy.position_size < 0 and (rsi_tf_value <= rsiLower)) strategy.close("Short", comment="RSI Take Profit Short") // Plot Supertrend timeframe with commit check to avoid repainting plot(barstate.isconfirmed ? supertrend_tf2 : na, color=color.blue, title="Supertrend Timeframe (120 min)", linewidth=1) // Plot RSI for visualization plot(rsi_tf_value, "RSI", color=color.purple) hline(rsiUpper, "RSI Upper", color=color.red) hline(rsiLower, "RSI Lower", color=color.green)