Стратегия Spaced Out Trading - это стратегия, основанная на скользящих средних. Она использует 30-дневную экспоненциальную скользящую среднюю (EMA) для выявления ценовых тенденций и вступает в сделки, когда цены выходят выше/ниже линии EMA. Она выходит из сделок, когда цены опускаются ниже/выше линии EMA. Эта стратегия хорошо работает с 30-минутными и ежедневными временными рамками.
Основная логика основана на взаимосвязи между ценой и 30-дневным EMA для генерации сигналов входа и выхода.
Захватив прорывы тренда, он стремится извлечь выгоду из динамичных движений и трендовых возможностей.
К основным преимуществам этой стратегии относятся:
Некоторые из основных рисков:
Некоторые способы улучшения стратегии:
Стратегия Spaced Out Trading направлена на отслеживание тенденций путем торговли ценовыми прорывами уровней EMA. Это простая и практичная количественная стратегия. С настраиваемыми лимитами потерь и разумными оптимизациями это может быть стабильная стратегия, обеспечивающая устойчивую доходность в среднесрочные и долгосрочные периоды хранения.
/*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)