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

Исторический высокий прорыв с ежемесячным скользящим средним фильтром

Автор:Чао Чжан, Дата: 2024-12-13 10:25:18
Тэги:АТГSMAМ.А.

img

Обзор

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

Принципы стратегии

Основная логика состоит из двух ключевых компонентов:

  1. Сигнал покупки: генерируется, когда последняя цена закрытия превышает предыдущий исторический максимум (за исключением текущего максимума порога).
  2. Сигнал продажи: запускается, когда цена закрытия месяца падает ниже 8-периодного простого скользящего среднего. Стратегия также включает в себя механизм отслеживания состояния сигнала для предотвращения повторения сигнала в одном и том же состоянии, улучшая стабильность стратегии.

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

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

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

  1. Риск задержки: исторические высокие сигналы прорыва по своей сути несколько отстают, потенциально отсутствуют оптимальные точки входа.
  2. Риск ложного прорыва: несмотря на фильтрацию ежемесячной скользящей средней, ложные прорывы могут происходить на различных рынках.
  3. Риск снижения: стратегия может испытывать значительные снижения в моменты перелома тренда.
  4. Риск управления позициями: в стратегии отсутствуют механизмы размещения позиций, что требует дополнительных правил управления деньгами.

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

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

Резюме

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


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-11 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Buy Signal on Close Greater Than Previous All-Time High Strategy", overlay=true)

// Initialize the previous all-time high
var float prevAllTimeHigh = na

// Update the all-time high, excluding the current bar's high (use previous bar's high)
if (na(prevAllTimeHigh) or high[1] > prevAllTimeHigh)
    prevAllTimeHigh := high[1]

// Monthly closing price and 8 SMA on monthly time frame
monthlyClose = request.security(syminfo.tickerid, "M", close)
monthlySMA = ta.sma(monthlyClose, 8)

// Variables to track the last signal type
var int lastSignal = 0 // 0 = None, 1 = Buy, 2 = Sell

// Debugging output to check the all-time high and conditions
plot(prevAllTimeHigh, color=color.blue, linewidth=1, title="Previous All-Time High")
plot(monthlySMA, color=color.green, linewidth=1, title="8 SMA (Monthly)")

// Buy signal: when the latest close is greater than the previous all-time high
buySignal = close > prevAllTimeHigh and lastSignal != 1

// Sell signal: when the monthly close is below the 8 SMA
sellSignal = monthlyClose < monthlySMA and lastSignal != 2

// Update the last signal type after triggering a signal
if (buySignal)
    lastSignal := 1
if (sellSignal)
    lastSignal := 2

// Execute the strategy orders
if (buySignal)
    strategy.entry("Buy", strategy.long)

if (sellSignal)
    strategy.close("Buy")

// Optional: Plot buy and sell signals on the chart for visual reference
plotshape(series=buySignal, style=shape.labelup, location=location.belowbar, color=color.green, text="BUY", size=size.small)
plotshape(series=sellSignal, style=shape.labeldown, location=location.abovebar, color=color.red, text="SELL", size=size.small)


Связанные

Больше