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

Автор:Чао Чжан, Дата: 2023-12-19 11:55:25
Тэги:

img

Обзор

Эта стратегия использует линии отката Фибоначчи для установки уровней входа и остановки потерь / прибыли для захвата краткосрочных отступлений цен.

Логика стратегии

В основе этой стратегии лежат две скользящие средние - 14-дневная EMA и 56-дневная SMA. Она запускает сигнал покупки, когда 14-дневная EMA пересекает 56-дневную SMA снизу. После этого стратегия оглядывается назад на 20 дней, чтобы найти волатильное низкое в качестве поддержки. В сочетании с ценой закрытия в точке перекрестка, линии оттягивания Фибоначчи графизируются, с линией оттягивания 1.272 в качестве входа и 0.618 в качестве выхода. Таким образом, стратегия устанавливает точку входа, чтобы идти коротко после золотых пересечений, и получает прибыль, если цены действительно оттягиваются до линии 0.618.

Ключевыми этапами этой стратегии являются:

  1. Расчет 14-дневной EMA и 56-дневной SMA;
  2. Проверьте, пересекает ли EMA верхний знак золотого креста SMA;
  3. Оглянись назад и найди поддержку.
  4. Програмируйте линии отклонения Фибоначчи с низкой и пересекающейся точками;
  5. Установите вход на короткий срок на линии 1.272;
  6. Стойка прибыли на линии отступления 0,618.

Выше приведены основные рабочие процессы и логика этой стратегии снижения.

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

Ключевыми преимуществами этой стратегии снижения скользящей средней являются:

  1. Идея стратегии проста и понятна;
  2. Использовать теорию Фибоначчи для установления лучшего контроля рисков;
  3. Может использовать краткосрочные возможности для получения хорошей прибыли;
  4. Требуется только скользящий средний золотой крест, чтобы запустить записи.

В целом, это очень подходит для краткосрочной торговли в стиле среднего обратного движения.

Риски

Несмотря на преимущества, есть также определенные риски, которые следует отметить для этой стратегии:

  1. Долгое удержание может привести к огромным потерям, поскольку мы проводим контратенд короткий;
  2. Масштаб отклонения слишком мал, чтобы достичь прибыли;
  3. Слишком агрессивные настройки линии отступления.

Для смягчения рисков мы можем установить короткие временные рамки остановки потерь для контроля потерь; также оптимизировать диапазоны линии отзыва, чтобы стремиться к разумным целям прибыли.

Возможности для расширения

Еще есть много возможностей для оптимизации этой стратегии сбора движущейся средней:

  1. Проверьте различные параметры на таких элементах, как скользящие средние периоды, дни обратного отсчета, кратные Фибоначчи и т. д., чтобы найти оптимальное;

  2. Добавить механизмы стоп-лосса, такие как многократные стопы или задержки, чтобы лучше контролировать риски;

  3. Ввести другие показатели в качестве фильтров, чтобы избежать неблагоприятных рыночных условий;

  4. Оптимизировать правила размещения позиций и управления рисками.

Благодаря тщательному тестированию и оптимизации можно добиться значительного улучшения этой торговой стратегии.

Заключение

Стратегия отката скользящих средних - это очень практичная краткосрочная стратегия торговли. Она захватывает возможности для отката среднего значения, когда цены отступают в краткосрочной перспективе. Идея стратегии проста и легко понятна.


/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("MAC Pullback", overlay=true)

// Setting up timeperiod for testing
startPeriodYear = input(2014, "Backtest Start Year")
startPeriodMonth = input(1, "Backtest Start Month")
startPeriodDay = input(2, "Backtest Start Day")
testPeriodStart = timestamp(startPeriodYear, startPeriodMonth, startPeriodDay, 0, 0)

stopPeriodYear = input(2035, "Backtest Stop Year")
stopPeriodMonth = input(12, "Backtest Stop Month")
stopPeriodDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(stopPeriodYear, stopPeriodMonth, stopPeriodDay, 0, 0)

// Moving Averages
ema14 = ema(close, 14)
ema28 = ema(close, 28)
sma56 = sma(close, 56)

// Plot
plot(ema14, title="ema14", linewidth=2, color=green)
plot(ema28, title="ema28", linewidth=2, color=red)
plot(sma56, title="sma56", linewidth=3, color=blue)


// Strategy
goLong = cross(ema14, sma56) and ema14 > ema28
goShort = cross(ema14, sma56) and ema14 < ema28


// Locate Swing Lows
leftBars = input(20)
rightBars=input(20)
swinglow = pivotlow(close, leftBars, rightBars)
plot(swinglow, style=cross, linewidth=8, color=#00FF00, offset=-rightBars)

if goLong == true and time >= testPeriodStart and time <= testPeriodStop
    // We try to make sure that we're catching the first Pullback after the crossover
    if ema14[12] < sma56[12] 
        pivotpoint = lowest(40)[0] //lowest value of the month as our swing low
        
        // We calculate a Fib 1.272 extension (from the previous swing low to 
        // the crossover long entry's open) and use this as our entry target to short the Pullback
        extensiontarget = ((close[1] - pivotpoint) * 1.27) + pivotpoint
        shorttarget = ((close[1] - pivotpoint) * 0.618) + pivotpoint        
        
        strategy.order("Pullback", strategy.short, 5.0, limit=extensiontarget)
        // I would like to use a trailing stop but for know we just hope to get 
        // filled if the pullback reaches all the way down to the 0.618.
        // We also place a tight stop loss since we trying to short an uptrend
        strategy.exit("Pullback Exit", "Pullback", limit=shorttarget, loss=400)

Больше