В процессе загрузки ресурсов... загрузка...

Многоуровневая EMA Фибоначчи

Автор:Чао Чжан, Дата: 2024-11-29 15:09:56
Тэги:ФИБЕМАМ.А.SMA

img

Обзор

Эта стратегия представляет собой трендоустойчивую торговую систему, которая сочетает в себе ретракции Фибоначчи, множественные экспоненциальные скользящие средние и анализ объема. Она определяет потенциальные торговые возможности путем анализа ценовых позиций на разных уровнях ретракции Фибоначчи (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")



Связанные

Больше