La stratégie de négociation espacée est une stratégie de suivi des tendances basée sur des moyennes mobiles. Elle utilise une moyenne mobile exponentielle (EMA) de 30 jours pour identifier les tendances des prix et entre dans les transactions lorsque les prix dépassent/dépassent la EMA. Elle sort des transactions lorsque les prix reculent en dessous/au-dessus de la ligne EMA. Cette stratégie fonctionne bien avec des délais de 30 minutes à quotidiens.
La logique de base repose sur la relation entre le prix et l'EMA de 30 jours pour générer des signaux d'entrée et de sortie.
En capturant les ruptures de tendance, il vise à capitaliser sur les mouvements de dynamique et les opportunités de tendance.
Les principaux avantages de cette stratégie sont les suivants:
Les principaux risques sont les suivants:
Certaines façons d'améliorer la stratégie:
La stratégie de négociation espacée vise à capturer les tendances en négociant les écarts de prix des niveaux de l'EMA. C'est une stratégie quantitative simple et pratique. Avec des limites de perte personnalisables et des optimisations judicieuses, elle peut être une stratégie stable offrant des rendements durables sur des périodes de détention à moyen et long terme.
/*backtest start: 2024-01-23 00:00:00 end: 2024-02-22 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Spaced Out Trading Strategy", overlay=true) // Define strategy parameters emaPeriod = input(30, title="EMA Period") // Longer EMA period for more spaced-out trades stopLossPct = input(2.0, title="Stop Loss Percentage") // Stop loss percentage takeProfitPct = input(3.0, title="Take Profit Percentage") // Take profit percentage // Calculate EMA emaValue = ta.ema(close, emaPeriod) // Define entry and exit conditions enterLong = ta.crossover(close, emaValue) exitLong = ta.crossunder(close, emaValue) // Place orders contractsQty = 5 // Number of contracts to buy var float lastTradePrice = na // Track the last trade price if enterLong and strategy.position_size == 0 strategy.entry("Buy Call", strategy.long, qty = contractsQty) lastTradePrice := close else if exitLong and strategy.position_size > 0 strategy.close("Buy Call") lastTradePrice := na // Calculate stop loss and take profit stopLossPrice = lastTradePrice * (1 - stopLossPct / 100) takeProfitPrice = lastTradePrice * (1 + takeProfitPct / 100) strategy.exit("Sell Call", "Buy Call", stop = stopLossPrice, limit = takeProfitPrice)