Стратегия Mean Reversion with Incremental Entry, разработанная HedgerLabs, является передовым сценарием стратегии торговли, ориентированным на технику среднего реверсия на финансовых рынках.
Центральным элементом этой стратегии является простая скользящая средняя (SMA), вокруг которой вращаются все входы и выходы.
Уникальность этой стратегии заключается в системе инкрементального входа. Она инициирует первую позицию, когда цена отклоняется от MA на определенный процент. Последующие входы затем производятся в инкрементальных шагах, как определено трейдером, по мере того как цена отходит от MA. Это направлено на извлечение выгоды из растущей волатильности.
Стратегия интеллектуально управляет позициями, входя в длинный, когда цена ниже MA и короткий, когда выше, чтобы адаптироваться к изменяющимся рыночным условиям.
Выходы определяются, когда цена достигает MA, с целью закрытия позиций в потенциальных точках переворота для получения оптимальных результатов.
При включенном Calc_on_every_tick стратегия постоянно оценивает рынок для обеспечения быстрого реагирования.
Стратегия средней реверсии с постепенным входом имеет следующие основные преимущества:
К рискам, которые следует учитывать, относятся:
Выходы могут быть оптимизированы, добавлены фильтры тренда, размер позиций уменьшен для смягчения вышеуказанных рисков.
Стратегия может быть усилена путем:
Стратегия среднего обратного движения с инкрементальным входом фокусируется на методах среднего обратного движения с использованием систематизированного инкрементального подхода к размещению позиций.
/*backtest start: 2023-12-29 00:00:00 end: 2024-01-28 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Mean Reversion with Incremental Entry by HedgerLabs", overlay=true, calc_on_every_tick=true) // Input for adjustable settings maLength = input.int(30, title="MA Length", minval=1) initialPercent = input.float(5, title="Initial Percent for First Order", minval=0.01, step=0.01) percentStep = input.float(1, title="Percent Step for Additional Orders", minval=0.01, step=0.01) // Calculating Moving Average ma = ta.sma(close, maLength) // Plotting the Moving Average plot(ma, "Moving Average", color=color.blue) var float lastBuyPrice = na var float lastSellPrice = na // Function to calculate absolute price percentage difference pricePercentDiff(price1, price2) => diff = math.abs(price1 - price2) / price2 * 100 diff // Initial Entry Condition Check Function initialEntryCondition(price, ma, initialPercent) => pricePercentDiff(price, ma) >= initialPercent // Enhanced Entry Logic for Buy and Sell if (low < ma) if (na(lastBuyPrice)) if (initialEntryCondition(low, ma, initialPercent)) strategy.entry("Buy", strategy.long) lastBuyPrice := low else if (low < lastBuyPrice and pricePercentDiff(low, lastBuyPrice) >= percentStep) strategy.entry("Buy", strategy.long) lastBuyPrice := low if (high > ma) if (na(lastSellPrice)) if (initialEntryCondition(high, ma, initialPercent)) strategy.entry("Sell", strategy.short) lastSellPrice := high else if (high > lastSellPrice and pricePercentDiff(high, lastSellPrice) >= percentStep) strategy.entry("Sell", strategy.short) lastSellPrice := high // Exit Conditions - Close position if price touches the MA if (close >= ma and strategy.position_size > 0) strategy.close("Buy") lastBuyPrice := na if (close <= ma and strategy.position_size < 0) strategy.close("Sell") lastSellPrice := na // Reset last order price when position is closed if (strategy.position_size == 0) lastBuyPrice := na lastSellPrice := na