Многопериодная скользящая средняя в сочетании с коррекцией Фибоначчи и торговой стратегией точек разворота

EMA PP FIBO SL TP
Дата создания: 2024-12-11 15:58:20 Последнее изменение: 2024-12-11 15:58:20
Копировать: 1 Количество просмотров: 459
1
Подписаться
1617
Подписчики

Многопериодная скользящая средняя в сочетании с коррекцией Фибоначчи и торговой стратегией точек разворота

Обзор

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

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

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

  1. Используйте пересечение 20- и 50-циклических ЭМА для определения направления общего тренда
  2. Используйте уровни фибоначевой обратной связи ((23.6%, 38.2%, 50%, 61.8%) для выявления потенциальных уровней сопротивления поддержки
  3. В сочетании с центральной точкой ((PP) и ее поддерживающими сопротивлениями ((S1/S2, R1/R2) для подтверждения критического уровня цены
  4. Условия входа должны быть выполнены одновременно:
    • Краткосрочная средняя линия вверх через долгосрочную среднюю линию (сделать больше) или вниз через (сделать меньше)
    • Цена находится над/под соответствующим уровнем Фибоначчи
    • Подтверждение того, что цена удовлетворяет резистентному уровню поддержки в центре
  5. Управление рисками с помощью фиксированного стоп-лосса (30 баллов) и целевой прибыли (60 баллов)

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

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

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

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

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

  1. Внедрение механизма сдерживания убытков, адаптирующегося к колебаниям
  2. Добавить индикатор объема в качестве вспомогательного подтверждения
  3. Динамика корректировки среднелинейных параметров в зависимости от различных рыночных условий
  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)