В процессе загрузки ресурсов... загрузка...

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

Автор:Чао Чжан, Дата: 2024-05-28 14:00:24
Тэги:ЕМАAO

img

Обзор

Эта стратегия представляет собой следующую стратегию тренда, основанную на прорыве и частоте фильтрации, принимая только длинные позиции. Основная идея стратегии заключается в использовании индикатора 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)

Связанные

Больше