Cette stratégie est un système de trading automatisé basé sur un délai de 5 minutes, combinant les méthodes de suivi de tendance moyenne mobile et d'analyse de volume.
La logique de base comprend les composantes clés suivantes: 1. Identification de tendance: utilise la SMA de 50 périodes pour déterminer la direction du marché, en tenant compte de la tendance haussière lorsque la fermeture est au-dessus de la MA et de la tendance baissière lorsqu'elle est en dessous. Confirme également les tendances en utilisant le mouvement des prix au cours des 30 dernières minutes (6 bougies). 2. Analyse du volume: Calcule les volumes d'achat et de vente en fonction du mouvement des prix, en répartissant le volume dans chaque bougie en fonction de la position de prix de clôture. Génération de signal: Génère des signaux longs lorsque le volume d'achat dépasse le volume de vente en tendance haussière; génère des signaux courts lorsque le volume de vente dépasse le volume d'achat en tendance baissière. 4. Gestion des risques: met en œuvre des objectifs de stop-loss de 3% et de prise de profit de 29% pour gérer le ratio risque-rendement pour chaque transaction.
Cette stratégie combine le suivi des tendances et l'analyse du volume pour créer un système de trading à haute fréquence complet. Ses principales forces résident dans la confirmation du signal multidimensionnel et le contrôle robuste des risques. Bien qu'il existe des risques inhérents, les directions d'optimisation proposées peuvent encore améliorer la stabilité et l'adaptabilité de la stratégie.
/*backtest start: 2024-01-10 00:00:00 end: 2025-01-08 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Jerryorange //@version=6 //@version=6 strategy("Autonomous 5-Minute Robot", overlay=true, fill_orders_on_standard_ohlc=true) // --- Inputs --- maLength = input.int(50, title="Trend MA Length") // Moving average length for trend detection volumeLength = input.int(10, title="Volume Length") // Length for volume analysis stopLossPercent = input.float(3, title="Stop Loss (%)") // 3% stop loss takeProfitPercent = input.float(29, title="Take Profit (%)") // 29% take profit // --- Market Trend Detection --- ma = ta.sma(close, maLength) // Simple moving average for trend direction isBullish = close > ma // Market is bullish if the close is above the moving average isBearish = close < ma // Market is bearish if the close is below the moving average // --- Volume Analysis --- buyVolume = (high != low) ? volume * (close - low) / (high - low) : 0 sellVolume = (high != low) ? volume * (high - close) / (high - low) : 0 totalVolume = volume // --- Define Market Direction over Last 30 Minutes (6 candles in 5-minute chart) --- lookback = 6 // 30 minutes / 5 minutes = 6 bars prevClose = close[lookback] // Previous close 30 minutes ago currentClose = close // Current close uptrend = currentClose > prevClose and isBullish // Uptrend condition downtrend = currentClose < prevClose and isBearish // Downtrend condition // --- Strategy Logic --- longCondition = uptrend and buyVolume > sellVolume // Buy signal when trend is up and buy volume exceeds sell volume shortCondition = downtrend and sellVolume > buyVolume // Sell signal when trend is down and sell volume exceeds buy volume // --- Entry and Exit Strategy --- if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) // --- Exit Strategy based on Stop Loss and Take Profit --- strategy.exit("Exit Long", "Long", stop=close * (1 - stopLossPercent / 100), limit=close * (1 + takeProfitPercent / 100)) strategy.exit("Exit Short", "Short", stop=close * (1 + stopLossPercent / 100), limit=close * (1 - takeProfitPercent / 100)) // --- Plotting for Visualization --- plot(ma, color=color.blue, title="50-period MA") // Trend line plotshape(longCondition, style=shape.labelup, location=location.belowbar, color=color.green, text="BUY") plotshape(shortCondition, style=shape.labeldown, location=location.abovebar, color=color.red, text="SELL")