Стратегия прорыва тренда на основе отклонения скользящей средней

Автор:Чао Чжан, Дата: 2023-10-23 15:38:37
Тэги:

img

Обзор

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

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

  1. Вычислить перемещаемую среднюю стоимость FPrice за 3 периода как сглаженную линию MA.

  2. Вычислить 17-дневную стандартную отклонение stdev и 17-дневную простую скользящую среднюю EMA2 FPrice.

  3. Вычислить отклонение Rate1 цены от среднего как (FPrice-ema2) /stdev.

  4. Когда Rate1 опускается ниже -1 и начинает расти, он сигнализирует прорыв ниже линии нисходящего тренда и генерирует сигнал покупки.

  5. Когда Rate1 поднимается выше 1 и начинает падать, он сигнализирует о прорыве выше линии восходящего тренда и генерирует сигнал продажи.

  6. Открыть или закрыть позиции в соответствии с сигналами.

Стратегия использует диапазон стандартного отклонения от отклонения цены от MA для выявления обратных тенденций. Динамически корректируя эталонный диапазон, она адаптируется к волатильности рынка. Когда цена выходит из MA более чем на одно стандартное отклонение, она запускает торговый сигнал. Это эффективно фильтрует краткосрочный рыночный шум и улавливает средне- и долгосрочные сдвиги тренда.

Анализ преимуществ

  1. Динамический базовый диапазон автоматически адаптируется к изменяющейся волатильности рынка.

  2. Сглаженный MA эффективно фильтрует короткий шум.

  3. Стандартное отклонение устанавливает разумные пороги выхода и предотвращает переоценку.

  4. Фильтр импульса предотвращает ложные прорывы.

  5. Логика стратегии проста и понятна, легко понять и реализовать.

  6. Параметры могут быть скорректированы для различных торговых инструментов.

  7. Он может быть объединен с другими показателями для улучшения результатов.

Анализ рисков

  1. В течение длительных периодов низкой волатильности может быть меньше торговых возможностей.

  2. Неправильные параметры стандартного отклонения могут привести к отсутствию хороших сделок или созданию чрезмерных ложных сигналов.

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

  4. Больше ложных прорывов может произойти вокруг переходов тренда.

  5. Системы МО отстают в выявлении краткосрочных сдвигов.

  6. Параметры и фильтры должны быть правильно настроены для конкретных рыночных условий.

Руководство по улучшению

  1. Оптимизировать дни и тип MA на основе характеристик прибора.

  2. Настройка множителя стандартного отклонения для определения оптимального диапазона отсчета.

  3. Добавьте фильтры динамики цены, чтобы уменьшить ложные сигналы.

  4. Включить индикаторы волатильности для динамической корректировки параметров по волатильности.

  5. Комбинируйте с другими аналогичными стратегиями для улучшения показателя выигрыша.

  6. Подумайте о снижении размеров позиций вокруг поворотных точек тренда для управления рисками.

  7. Добавить стоп-лосс для контроля одиночных потерь.

Заключение

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


/*backtest
start: 2023-09-22 00:00:00
end: 2023-10-22 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Mustafaozver

//@version=4
strategy("Escaping of Rate from Avarage By Mustafa OZVER", "EoRfA", overlay=false)
//strategy("Escaping of Rate from Avarage By Mustafa OZVER", "EoRfA", overlay=false)

src = input(ohlc4,"Source")
FPrice = wma(src,3)
len = input(17,"Length")

stdev = stdev(FPrice,len)
ema2 = ema(FPrice,len)

Rate1 = (FPrice - ema2) / stdev
//bgcolor(color=((stdev/ema)>0.0015)?color.green:#00000000,transp=80)

colorG = color.lime
colorR = color.red

hline(0,linestyle=hline.style_solid,editable=false)
hline1=hline(1,linestyle=hline.style_dotted,editable=false)
hlinen1=hline(-1,linestyle=hline.style_dotted,editable=false)
fill(hline1,hlinen1,color=color.silver,transp=85,editable=true)

//plot(Rate,color=(Rate>0?colorG:colorR),transp=75,style=plot.style_area,editable=false)

plot(Rate1,title="ESC1",color=(Rate1>0?colorG:colorR),style=plot.style_line,linewidth=1,editable=true)

BUYSIGNAL = Rate1 < -1 and change(Rate1) > 0
SELLSIGNAL = Rate1 > 1 and change(Rate1) < 0

if (BUYSIGNAL)
    strategy.order("LONG1",true)
    //strategy.close("SHORT1")

if (SELLSIGNAL)
   // strategy.order("SHORT1",false)
    strategy.close("LONG1")

Больше