Стратегия следования за трендом, основанная на прорыве и частотной фильтрации (только длинные позиции)

EMA AO
Дата создания: 2024-05-28 14:00:24 Последнее изменение: 2024-05-28 14:00:24
Копировать: 0 Количество просмотров: 267
1
Подписаться
1166
Подписчики

Стратегия следования за трендом, основанная на прорыве и частотной фильтрации (только длинные позиции)

Обзор

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

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

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

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

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

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

  1. Чувствительные к параметрам: эффективность стратегии зависит от выбора параметров, и различные параметры могут привести к значительным различиям в эффективности стратегии. Необходимо проводить полное тестирование и оптимизацию параметров.
  2. Прорывная неудача: ценовые прорывы не гарантируют продолжение тренда, и возможны случаи прорыва неудачи, что приводит к последовательным потерям в стратегии.
  3. Идентификация тенденций: стратегия зависит от показателя EMA, чтобы определить тенденцию, но показатель EMA может задерживаться или ошибочно оценивать ситуацию, что влияет на точность стратегии.
  4. Частые сделки: несмотря на то, что в стратегии введены частотные фильтры, в случае больших колебаний на рынке может возникать частота открытия и закрытия позиций, что увеличивает стоимость сделки.
  5. Стоп-риск: установка стоп-пойнтов может не позволить полностью избежать максимального отступления от стратегии, в крайних случаях возможны большие потери.

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

  1. Параметровая оптимизация: оптимизация ключевых параметров стратегии, таких как длина EMA, длина ретроспективного периода, стоп-проценты и т. Д., для поиска оптимальной комбинации параметров, повышения стабильности и прибыльности стратегии.
  2. Фильтрация сигнала: после появления прорывного сигнала, можно ввести другие технические показатели или условия для повторного подтверждения сигнала, повысить качество сигнала, уменьшить ошибочные и ложные сигналы.
  3. Определение тенденций: можно попробовать использовать другие индикаторы определения тенденций, такие как MACD, DMI и т. Д., Или объединить несколько показателей для определения тенденций, чтобы повысить точность идентификации тенденций.
  4. Динамические остановки: динамическая корректировка стоп-стоп в зависимости от рыночных колебаний, например, использование индикатора ATR для расчета динамических стоп-стоп или внедрение стратегии отслеживания стоп-стоп для лучшего контроля риска.
  5. Управление позициями: оптимизация стратегии управления позициями, динамическая корректировка размеров позиций в зависимости от рыночных колебаний и состояния средств на счетах, контроль рисковых выходов в отдельных сделках, повышение эффективности использования средств.

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2023-05-22 00:00:00
end: 2024-05-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Trend Following with Breakout and Frequency Filter (Long Only)", overlay=true)

// 输入参数
emaLength = input.int(50, title="EMA长度")
lookbackPeriodMin = input.int(80, title="最短回溯期")
lookbackPeriodMax = input.int(120, title="最长回溯期")
stopLossPct = input.float(2, title="止损百分比") / 100  // 止损百分比
minHoldBars = input.int(10, title="最小持仓K线数量")  // 最小持仓K线数量

// 计算EMA
ema = ta.ema(close, emaLength)

// 计算最高价和最低价
highestHigh = ta.highest(high, lookbackPeriodMax)
lowestLow = ta.lowest(low, lookbackPeriodMax)

// 定义趋势方向
isBullish = close > ema

// 定义突破信号
breakoutCondition = (ta.crossover(close, highestHigh[lookbackPeriodMin]) or ta.crossover(close, highestHigh[lookbackPeriodMax])) and isBullish

// 计算止损点
stopLossLevelLong = close * (1 - stopLossPct)

// 绘制EMA
plot(ema, title="EMA", color=color.blue)

// 记录上次开仓时间
var float lastEntryTime = na

// 策略执行并标注信号
if (breakoutCondition and (na(lastEntryTime) or (time - lastEntryTime) > minHoldBars * timeframe.multiplier))
    strategy.entry("做多", strategy.long)
    label.new(bar_index, high, text="买入", style=label.style_label_up, color=color.green, textcolor=color.white)
    strategy.exit("止损", from_entry="做多", stop=stopLossLevelLong)
    lastEntryTime := time

// 定义趋势结束信号
exitCondition = close < ema

if (exitCondition and (strategy.position_size > 0) and (time - lastEntryTime) > minHoldBars * timeframe.multiplier)
    strategy.close("做多")
    label.new(bar_index, low, text="卖出", style=label.style_label_down, color=color.red, textcolor=color.white)