Долгосрочная стратегия обратного тренда - это механическая торговая система, которая сочетает в себе следующие тренды и краткосрочные обратные тренды. Она использует 7-дневный максимум и минимум для построения канала и 200-дневную скользящую среднюю для определения долгосрочного направления тренда.
Стратегия основывается главным образом на следующих принципах:
Используйте 7-дневный максимум и минимум, чтобы оценить рост и падение за последнюю неделю.
Движущаяся средняя за 200 дней определяет направление долгосрочного тренда.
Когда цена проходит ниже 7-дневного минимума и превышает 200-дневную скользящую среднюю, генерируется сигнал покупки. Это указывает на конец краткосрочной понижающей коррекции и тенденция может перевернуться вверх.
Когда цена превышает 7-дневный максимум и находится ниже 200-дневной скользящей средней, генерируется сигнал продажи. Это указывает на конец краткосрочной восходящей коррекции, и тенденция может измениться вниз.
Использовать 2x ATR стоп-лосс для контроля риска на одну сделку.
Ключом является рассмотрение как краткосрочных, так и долгосрочных временных рамок. 7-дневный канал оценивает недавнее движение цены, а 200-дневный MA оценивает многомесячную тенденцию. Торговые сигналы генерируются только тогда, когда оба указывают на одно и то же направление. Это избегает ложных сигналов от краткосрочных коррекций.
Основными преимуществами этой стратегии являются:
Простые и понятные сигналы, основанные на цене и скользящей средней.
Рассматривает как краткосрочные, так и долгосрочные тенденции, эффективно фильтрует шум.
Следование тренду и среднее изменение в сочетании сглаживает доходы.
ATR ограничивает риск, меньше максимального снижения.
Применимо к акциям, валюте, криптовалютам на разных рынках.
Может работать в условиях высокой и низкой частоты.
Основными рисками являются:
Может пропустить большие тенденции на сильных рынках.
Стоп-лосс может часто возникать на нестабильных рынках.
Неправильные параметры могут привести к чрезмерной торговле.
Неправильные краткосрочные и долгосрочные показатели тренда могут фильтровать слишком много сигналов.
Неисправность модели из-за отсутствия данных о выборке.
Основные методы управления рисками:
Оптимизировать параметры для разумного стоп-лосса и частоты торговли.
Устойчивое обратное тестирование на рынках и временных рамках.
Диверсификация портфеля для снижения риска единой стратегии.
Экспоненциальный стоп-лосс для ограничения потерь на одну сделку.
Стратегия может быть улучшена:
Оптимизировать длину канала для лучшего краткосрочного тренда.
Оптимизировать длину MA для улучшения долгосрочного тренда.
Попробуйте другие методы стоп-лосса, например, процент, отставание.
При изменении тренда часто наблюдается увеличение объема.
Машинное обучение для поиска оптимальных краткосрочных и долгосрочных параметров.
Динамические правила выхода, основанные на принципах и настроениях.
Оптимизировать стоп-лосс для экспоненциальных или алгоритмов блокировки прибыли.
Оптимизация параметров и комбинации могут еще больше улучшить показатели доходности и риска.
Долгосрочная стратегия обратного тренда сочетает в себе как следующий тренд, так и средний реверс. Судя как о краткосрочных, так и долгосрочных тенденциях, она генерирует сигналы в точках обратного тренда. По сравнению с чистыми тенденциями или средними стратегиями обратного тренда, она отфильтровывает рыночный шум и достигает устойчивой доходности и контроля рисков. В целом эта стратегия подходит трейдерам с рыночными взглядами и обеспечивает стабильную производительность для количественных портфелей.
/*backtest start: 2023-11-05 00:00:00 end: 2023-11-12 00:00:00 period: 45m basePeriod: 5m 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/ // © racer8 //@version=4 // This Algo Strategy Has Only 3 rules and 62% Win Rate (Youtube) strategy("Trend Bounce", overlay=true) nn = input(7,"Channel Length") hi = highest(high,nn) lo = lowest(low,nn) n2 = input(200,"Ma Length") ma = sma(close,n2) if close>ma and close<lo[1] strategy.entry("Buy",strategy.long) if close>hi[1] strategy.close("Buy") if close<ma and close>hi[1] strategy.entry("Sell",strategy.short) if close<lo[1] strategy.close("Sell") plot(hi,"high",color=color.aqua) plot(lo,"low",color=color.aqua) plot(ma,"sma",color=color.yellow) //-----------------------------------------Stop Loss------------------------------------------------------- atr = sma(tr,10)[1] bought = strategy.position_size[0] > strategy.position_size[1] sold = strategy.position_size[0] < strategy.position_size[1] slm = input(2.0,"ATR Stop Loss",minval=0) StopPrice_Long = strategy.position_avg_price - slm*atr // determines stop loss's price StopPrice_Short = strategy.position_avg_price + slm*atr // determines stop loss's price FixedStopPrice_Long = valuewhen(bought,StopPrice_Long,0) // stores original StopPrice FixedStopPrice_Short = valuewhen(sold,StopPrice_Short,0) // stores original StopPrice plot(FixedStopPrice_Long,"ATR Stop Loss Long",color=color.blue,linewidth=1,style=plot.style_cross) plot(FixedStopPrice_Short,"ATR Stop Loss Short",color=color.red,linewidth=1,style=plot.style_cross) if strategy.position_size > 0 strategy.exit(id="Stop", stop=FixedStopPrice_Long) // commands stop loss order to exit! if strategy.position_size < 0 strategy.exit(id="Stop", stop=FixedStopPrice_Short) // commands stop loss order to exit!