Стратегия торговли движущейся средней тенденцией с несколькими временными рамками

Автор:Чао Чжан, Дата: 2023-09-23 16:10:08
Тэги:

Обзор

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

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

Стратегия рассчитывает быстрые и медленные скользящие средние на основе трех разных временных рамок. Она использует ежедневные, 4-часовые и 15-минутные временные рамки и рассчитывает 21-периодную быструю EMA и 34-периодную медленную EMA на каждом временном диапазоне. Когда быстрая EMA пересекает над медленной EMA на ежедневных, 4-часовых и 15-минутных временных рамах, она определяет восходящий тренд и идет в длительный. Когда быстрая EMA пересекает ниже медленной EMA на всех трех временных рамах, она определяет нисходящий тренд и идет в короткий.

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

В частности, ключевые моменты стратегии включают:

  1. Введите различные временные рамки: ежедневно, 4 часа, 15 минут

  2. Вычислить быстрые и медленные EMA на каждом временном диапазоне

  3. Пройти длинный курс, когда быстрая EMA пересекается над медленной EMA на всех временных отрезках, идти короткий, когда ниже

  4. Установленный месяц и диапазон дат

  5. Открыть длинные/короткие позиции на условиях, закрыть, если условия не выполнены

Суждение о тенденции в разных временных рамках может эффективно отфильтровать ложные прорывы.

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

Основными преимуществами этой стратегии являются:

  1. Определение тенденции в разных временных рамках эффективно фильтрует ложные прорывы.

  2. Размер позиций в нескольких временных рамках снижает риск от одного временного периода.

  3. Торговый временной диапазон избегает застрять на неблагоприятных рынках.

  4. Быстрая и медленная комбинация EMA легко улавливает тренд.

  5. Простые и понятные правила, легкая настройка параметров делают стратегию легкой для реализации.

  6. Широко применяется для всех классов активов с высокой гибкостью.

Риски

Некоторые риски, которые следует учитывать для этой стратегии:

  1. Лучше работает на рынках с длинными трендами, рыночные диапазоны увеличивают риск.

  2. Консервативные параметры могут пропустить более сильные тенденции. могут сократить периоды EMA или сократить количество торговых временных рамок.

  3. EMA плохо работает на нестабильных рынках. Подумайте о сочетании с индикаторами волатильности или динамики.

  4. Ежедневные временные рамки медленно определяют тренд, не могут своевременно выходить из позиций.

  5. Фиксированный временной диапазон торговли не адаптируется к изменяющимся рынкам.

Усовершенствования

Некоторые способы улучшения этой стратегии:

  1. Оптимизировать периоды EMA для более плавного следования тренду.

  2. Добавьте индикатор импульса для силы тренда, например MACD, RSI для дополнительного сигнала.

  3. Оптимизировать размер позиций на основе рыночных условий, адаптировать размер стратегии позиций на основе волатильности рынка.

  4. Включить индикаторы волатильности для улучшения входа и выхода. Добавить ATR или вариантность для динамической адаптации к волатильности.

  5. Проверьте больше комбинаций временных рамок, чтобы найти оптимальный баланс.

  6. Использование машинного обучения для автоматической оптимизации параметров.

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

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

Заключение

Эта стратегия использует концепцию фильтрации трендов с использованием быстрого / медленного EMA для создания стабильной и эффективной системы, следующей за трендом. Она имеет преимущества точной идентификации трендов и управления рисками. Однако для достижения последовательной доходности необходим контроль рисков на волатильных рынках и непрерывное улучшение параметров. В целом многочасовая структура EMA широко применима и рекомендуется как подход к торговле трендами.


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

//@version=3
//Cryptocurrency Trading Tools by XMAXPRO
//ATA
//Test 1.0v Date  : 10.11.2018
//

strategy("MTF+MA", overlay=false, shorttitle="MTF-MA", overlay = true,default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type=strategy.commission.percent,commission_value=0.1,initial_capital=100000)
src = input(title= "Source", defval=close)
fast = input(title="Input For Fast MA",  defval=21)
slow = input(title="Input For Slow MA",defval=34)
//MTF source
long = input(title="LONGTERM",  defval="D")
mid = input(title="MIDTERM",  defval="180")
short = input(title="SHORTTERM",  defval="15")
//MTF Grafikleri
ln = security(syminfo.ticker, long, src)
md = security(syminfo.ticker, mid, src)
sh = security(syminfo.ticker, short, src)
//0
lnma = ema(ln,fast) - ema(ln,slow)
mdma = ema(sh,fast) - ema(md,slow)
shma = ema(sh,fast) - ema(sh,slow)

plot(lnma,color=green,linewidth=3)
plot(mdma,color=blue,linewidth=3)
plot(shma,color=red,linewidth=3)
plot(0,color=white,linewidth=3)

longCond = lnma>0 and mdma>0  and shma>0
shortCond= lnma<0  and mdma<0  and shma <0 



monthfrom =input(8)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)
yearfrom=input(2018)
yearuntil=input(2020)

if (  longCond  ) 
    strategy.entry("LONG", strategy.long, stop=close, oca_name="TREND",  comment="LONG")
    
else
    strategy.cancel(id="LONG")
    



if ( shortCond   ) 

    strategy.entry("SHORT", strategy.short,stop=close, oca_name="TREND",  comment="SHORT")
else
    strategy.cancel(id="SHORT")


Больше