Это передовая количественная стратегия торговли, которая сочетает в себе экспоненциальную скользящую среднюю (EMA), подтверждение объема и средний истинный диапазон (ATR).
Основная логика состоит из трех основных компонентов: 1. Определение тренда: использует EMA ((50) в качестве основного индикатора тренда. 2. Подтверждение объема: рассчитывает скользящую среднюю величину объема за 20 периодов, требуя, чтобы текущий объем превышал как 1,5 раза скользящую среднюю величину, так и объем предыдущего периода, чтобы обеспечить достаточное участие на рынке. Управление рисками: динамически устанавливает уровни стоп-лосса и прибыли на основе 14-периодного ATR. Стоп-лосс устанавливается на 2x ATR и прибыль на 3x ATR, сбалансируя защиту капитала с потенциалом развития тренда.
Эта стратегия устанавливает логически строгую торговую систему посредством всестороннего использования нескольких технических индикаторов. Ее основные сильные стороны заключаются в ее многочисленных механизмах подтверждения и динамическом управлении рисками, в то время как внимание должно быть уделено таким рискам, как изменение тренда и ложные прорывы объема. Благодаря постоянной оптимизации и усовершенствованию эта стратегия обещает улучшить производительность в фактической торговле.
/*backtest start: 2019-12-23 08:00:00 end: 2025-01-16 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=5 strategy("Enhanced Volume + Trend Strategy", overlay=true) // Inputs emaLength = input.int(50, title="EMA Length") atrLength = input.int(14, title="ATR Length") atrMultiplierSL = input.float(2.0, title="ATR Multiplier for Stop Loss") atrMultiplierTP = input.float(3.0, title="ATR Multiplier for Take Profit") volLength = input.int(20, title="Volume Moving Average Length") volMultiplier = input.float(1.5, title="Volume Multiplier (Relative to Previous Volume)") // Trend Detection using EMA ema = ta.ema(close, emaLength) // ATR Calculation for Stop Loss/Take Profit atr = ta.atr(atrLength) // Volume Moving Average volMA = ta.sma(volume, volLength) // Additional Volume Condition (Current Volume > Previous Volume + Multiplier) volCondition = volume > volMA * volMultiplier and volume > volume[1] // Entry Conditions based on Trend (EMA) and Volume (Volume Moving Average) longCondition = close > ema and volCondition shortCondition = close < ema and volCondition // Stop Loss and Take Profit Levels longStopLoss = close - (atr * atrMultiplierSL) longTakeProfit = close + (atr * atrMultiplierTP) shortStopLoss = close + (atr * atrMultiplierSL) shortTakeProfit = close - (atr * atrMultiplierTP) // Strategy Execution if (longCondition) strategy.entry("Long", strategy.long) strategy.exit("Take Profit/Stop Loss", "Long", stop=longStopLoss, limit=longTakeProfit) if (shortCondition) strategy.entry("Short", strategy.short) strategy.exit("Take Profit/Stop Loss", "Short", stop=shortStopLoss, limit=shortTakeProfit) // Plotting EMA plot(ema, color=color.yellow, title="EMA") // Plot Volume Moving Average plot(volMA, color=color.blue, title="Volume Moving Average") // Signal Visualizations plotshape(series=longCondition, color=color.green, style=shape.labelup, location=location.belowbar, title="Buy Signal") plotshape(series=shortCondition, color=color.red, style=shape.labeldown, location=location.abovebar, title="Sell Signal")