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

Многоразовый EMA с ретрекшеном Фибоначчи и торговой стратегией по поводу ключевых точек

Автор:Чао Чжан, Дата: 2024-12-11 15:58:20
Тэги:ЕМАPPFIBOSLТП

 Multi-Timeframe EMA with Fibonacci Retracement and Pivot Points Trading Strategy

Обзор

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

Принципы стратегии

Основная логика стратегии основана на следующих ключевых элементах: 1. Использует 20 и 50-периодные перекрестки EMA для определения общего направления тренда 2. Использует уровни ретрациации Фибоначчи (23,6%, 38,2%, 50%, 61,8%) для определения потенциальных уровней поддержки/сопротивления 3. Интегрирует ключевые точки (PP) и их уровни поддержки/сопротивления (S1/S2, R1/R2) для подтверждения ключевых уровней цен 4. Условия въезда должны одновременно удовлетворять: - Краткосрочная EMA пересекается выше долгосрочной EMA (для длинных) или ниже (для коротких) - цена выше/ниже соответствующих уровней Фибоначчи - Цена подтверждает уровень поддержки/сопротивления в ключевой точке 5. Внедряет фиксированные стоп-лосс (30 пипсов) и прибыль (60 пипсов) для управления рисками

Преимущества стратегии

  1. Взаимная проверка нескольких технических показателей повышает надежность сигнала
  2. Комбинирует тренд и поддержку/сопротивление для сбалансированного времени входа
  3. Фиксированные параметры управления рисками облегчают количественное исполнение
  4. Визуализированные торговые сигналы обеспечивают мониторинг в режиме реального времени
  5. Подходит для средне- и долгосрочной трендовой торговли, уменьшая влияние краткосрочной волатильности

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

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

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

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

Резюме

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


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-09 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Forex Strategy with EMA, Pivot, Fibonacci and Signals", overlay=true)

// Input for EMAs and Pivot Points
emaShortPeriod = input.int(20, title="Short EMA Period", minval=1)
emaLongPeriod = input.int(50, title="Long EMA Period", minval=1)
fibRetraceLevel1 = input.float(0.236, title="Fibonacci 23.6% Level")
fibRetraceLevel2 = input.float(0.382, title="Fibonacci 38.2% Level")
fibRetraceLevel3 = input.float(0.5, title="Fibonacci 50% Level")
fibRetraceLevel4 = input.float(0.618, title="Fibonacci 61.8% Level")

// Function to calculate Pivot Points and Levels
pivot(high, low, close) =>
    pp = (high + low + close) / 3
    r1 = 2 * pp - low
    s1 = 2 * pp - high
    r2 = pp + (high - low)
    s2 = pp - (high - low)
    [pp, r1, s1, r2, s2]

// Calculate Pivot Points
[pp, r1, s1, r2, s2] = pivot(high, low, close)

// Calculate 20 EMA and 50 EMA
emaShort = ta.ema(close, emaShortPeriod)
emaLong = ta.ema(close, emaLongPeriod)

// Plot the EMAs
plot(emaShort, color=color.blue, title="20 EMA", linewidth=2)
plot(emaLong, color=color.red, title="50 EMA", linewidth=2)

// Fibonacci Levels (manually drawn between the most recent high and low)
var float fibHigh = na
var float fibLow = na

if (not na(high[1]) and high > high[1])  // Check if new high is formed
    fibHigh := high
if (not na(low[1]) and low < low[1])    // Check if new low is formed
    fibLow := low

fib23_6 = fibLow + (fibHigh - fibLow) * fibRetraceLevel1
fib38_2 = fibLow + (fibHigh - fibLow) * fibRetraceLevel2
fib50 = fibLow + (fibHigh - fibLow) * fibRetraceLevel3
fib61_8 = fibLow + (fibHigh - fibLow) * fibRetraceLevel4

plot(fib23_6, color=color.green, linewidth=1, title="Fibonacci 23.6%")
plot(fib38_2, color=color.green, linewidth=1, title="Fibonacci 38.2%")
plot(fib50, color=color.green, linewidth=1, title="Fibonacci 50%")
plot(fib61_8, color=color.green, linewidth=1, title="Fibonacci 61.8%")

// Entry conditions (Crossovers)
longCondition = ta.crossover(emaShort, emaLong) and close > fib23_6 and close > s1
shortCondition = ta.crossunder(emaShort, emaLong) and close < fib23_6 and close < r1

// Exit conditions (Stop Loss and Take Profit)
stopLossPips = 30 * syminfo.mintick  // 30 pips Stop Loss
takeProfitPips = 60 * syminfo.mintick // 60 pips Take Profit

if (longCondition)
    strategy.entry("Buy", strategy.long, stop=stopLossPips, limit=takeProfitPips)
if (shortCondition)
    strategy.entry("Sell", strategy.short, stop=stopLossPips, limit=takeProfitPips)

// Plot Pivot Points for visual reference
plot(pp, color=color.yellow, linewidth=2, title="Pivot Point")
plot(r1, color=color.purple, linewidth=1, title="Resistance 1")
plot(s1, color=color.purple, linewidth=1, title="Support 1")
plot(r2, color=color.purple, linewidth=1, title="Resistance 2")
plot(s2, color=color.purple, linewidth=1, title="Support 2")

// Adding Buy and Sell Signals
plotshape(longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", textcolor=color.white, size=size.small)
plotshape(shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", textcolor=color.white, size=size.small)


Связанные

Больше