Стратегия отслеживания тренда на основе многоуровневой скользящей средней Фибоначчи

FIB EMA MA SMA
Дата создания: 2024-11-29 15:09:56 Последнее изменение: 2024-11-29 15:09:56
Копировать: 0 Количество просмотров: 486
1
Подписаться
1617
Подписчики

Стратегия отслеживания тренда на основе многоуровневой скользящей средней Фибоначчи

Обзор

Стратегия представляет собой торговую систему для отслеживания тенденций, которая сочетает в себе фибоначевые отступления, многочисленные скользящие средние индексы и количество сделок. Стратегия подтверждает тенденции путем анализа того, где цены находятся на разных уровнях фибоначевых отступлений (0,0,382,0,618,1), в сочетании с многоциклической EMA (20/50/100/200) и идентифицирует потенциальные торговые возможности с помощью фильтрации на переходное значение сделок.

Стратегический принцип

Основная логика стратегии основана на многоуровневом методе технического анализа:

  1. Используйте 30 циклов в качестве промежутков отсчета для вычисления уровня фибоначевых отступлений и создания рамки поддержки и сопротивления ценовому движению
  2. Построение многоуровневой системы подтверждения тенденций с помощью показателей с движущимися средними по 20/50/100/200 циклам
  3. Приближаясь к уровню 0.382 Фибоначчи и имея объем торгов больше, чем убыль, если цена находится выше средней линии, активируйте многосигнал
  4. Приближаясь к уровню 0.618 Фибонача и имея объем сделки выше отклонения, если цена находится ниже средней линии, то запускается сигнал о потере позиций
  5. Устройство стоп-стоп на основе процентов, 6% и 3% соответственно

Стратегические преимущества

  1. Многомерный анализ: объединение трех измерений ценовой структуры, тренда и объема сделок повышает надежность сигналов
  2. Управление рисками: установление четких условий стоп-стоп, эффективно контролирующих риск каждой сделки
  3. Полное подтверждение трендов: использование многомерной системы средних линий позволяет более точно оценить силу и направление трендов
  4. Строгая фильтрация сигналов: требуется одновременное удовлетворение условий цены, средней линии и объема сделок, чтобы снизить вероятность ложного прорыва
  5. Высокий уровень визуализации: с помощью системы ярлыков четко обозначены входные и выходные точки, что позволяет легко анализировать и оптимизировать

Стратегический риск

  1. Риск шокирующего рынка: возможны частые ложные сигналы на рынках с горизонтальными колебаниями, рекомендуется увеличить фильтрацию индикаторов колебаний
  2. Риск скольжения: при ограничениях по объему поставок, возможно, столкнуться с выполнением скольжения, необходимость корректировки порога объема поставок в соответствии с реальными обстоятельствами
  3. Управление рисками капитала: фиксированный процент стоп-лосса может быть недостаточно гибким в некоторых ситуациях и рекомендуется адаптироваться к динамике волатильности
  4. Тенденционная зависимость: стратегия хорошо работает в явном тренде, но может иметь последовательные потери во время перехода в тренд
  5. Чувствительность параметров: комбинация нескольких параметров увеличивает риск перенастройки и требует обратной проверки в разные периоды времени

Направление оптимизации стратегии

  1. Динамическая оптимизация стоп-ложа: рекомендуется внедрение динамического регулирования стоп-дистанции ATR-индикатора для повышения адаптивности к рыночным колебаниям
  2. Количественное измерение силы тренда: можно добавить индикаторы силы тренда, такие как ADX, увеличить позиции во время сильной тенденции и уменьшить торговлю во время слабой тенденции
  3. углубление анализа объемов сделок: рекомендуется увеличить средний и аномальный анализ объемов сделок, чтобы повысить точность анализа объемов сделок
  4. Оптимизация времени входа: можно использовать колеблющиеся индикаторы, такие как RSI, для поиска возможности перекупа и перепродажи в направлении тренда
  5. Улучшение управления позициями: рекомендуется корректировать долю позиций в зависимости от силы тенденции и динамики рыночной волатильности

Подвести итог

Это хорошо разработанная многоуровневая стратегия отслеживания тенденций, построенная на основе классических инструментов технического анализа, чтобы создать трехмерную аналитическую структуру. Преимущества стратегии заключаются в строгости признания сигналов и целостности управления рисками, но при этом следует обратить внимание на ее эффективность на волатильных рынках.

Исходный код стратегии
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("ALD Fib Ema SAKALAM", overlay=true)

// Inputs
lookback = input.int(30, title="Lookback Period for Fibonacci", minval=10)
volumeThreshold = input.float(500000, title="24h Volume Threshold", step=50000)
stopLossPct = input.float(3.0, title="Stop Loss %", minval=0.5)
takeProfitPct = input.float(6.0, title="Take Profit %", minval=1.0)
maLength = input.int(50, title="Trend Filter MA Length", minval=1)

// Moving Average (Trend Filter)
ma = ta.sma(close, maLength)

// High and Low for Fibonacci Levels
var float swingHigh = na
var float swingLow = na

if bar_index > lookback
    swingHigh := ta.highest(high, lookback)
    swingLow := ta.lowest(low, lookback)

// Fibonacci Levels Calculation
fib0 = swingLow
fib1 = swingHigh
fib382 = swingHigh - 0.382 * (swingHigh - swingLow)
fib618 = swingHigh - 0.618 * (swingHigh - swingLow)

// 24-hour Volume Calculation
volume24h = ta.sma(volume, 24)

// Plot Fibonacci Levels
plot(fib0, title="Fib 0", color=color.new(color.red, 80))
plot(fib382, title="Fib 0.382", color=color.new(color.green, 50))
plot(fib618, title="Fib 0.618", color=color.new(color.blue, 50))
plot(fib1, title="Fib 1", color=color.new(color.red, 80))
plot(ma, title="Trend Filter MA", color=color.orange)

// Entry Condition: Buy Signal
longCondition = (close <= fib382) and (volume24h > volumeThreshold) and (close > ma)
if (longCondition)
    strategy.entry("Buy", strategy.long)
    label.new(bar_index, low, "BUY", style=label.style_label_up, color=color.green, textcolor=color.white)

// Exit Conditions
takeProfitPrice = strategy.position_avg_price * (1 + takeProfitPct / 100)
stopLossPrice = strategy.position_avg_price * (1 - stopLossPct / 100)

// Place Exit Orders
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", limit=takeProfitPrice, stop=stopLossPrice)

// Add Labels for Exits
if (strategy.position_size > 0)
    if (high >= takeProfitPrice)
        label.new(bar_index, high, "EXIT (Take Profit)", style=label.style_label_down, color=color.blue, textcolor=color.white)

    if (low <= stopLossPrice)
        label.new(bar_index, low, "EXIT (Stop Loss)", style=label.style_label_down, color=color.red, textcolor=color.white)

// Short Selling Conditions
shortCondition = (close >= fib618) and (volume24h > volumeThreshold) and (close < ma)
if (shortCondition)
    strategy.entry("Sell", strategy.short)
    label.new(bar_index, high, "SELL", style=label.style_label_down, color=color.red, textcolor=color.white)

// Short Exit Conditions
if (strategy.position_size < 0)
    strategy.exit("Short Take Profit/Stop Loss", from_entry="Sell", limit=strategy.position_avg_price * (1 - takeProfitPct / 100), stop=strategy.position_avg_price * (1 + stopLossPct / 100))

// Add EMA 20/50/100/200
shortest = ta.ema(close, 20)
short = ta.ema(close, 50)
longer = ta.ema(close, 100)
longest = ta.ema(close, 200)

plot(shortest, color=color.orange, title="EMA 20")
plot(short, color=color.red, title="EMA 50")
plot(longer, color=color.black, title="EMA 100")
plot(longest, color=color.green, title="EMA 200")