Двойные трендовые линии Взрыв Золотой крест Смертный крест Тенденция Следующая стратегия

Автор:Чао Чжан, Дата: 2024-02-22 16:01:12
Тэги:

img

Обзор

Стратегия двойного тренда Breakout Golden Cross Death Cross Trend Following является количественной торговой стратегией, которая использует как линии тренда поддержки/сопротивления, так и скользящие средние в качестве альтернативных сигналов для следования тренду.

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

Эта стратегия состоит из четырех основных компонентов:

  1. Линия поддержки на графике с минимальными минимумами за последние 30 дней
  2. Линия сопротивления с наивысшими максимумами за последние 30 недель
  3. Простая скользящая средняя за 10 периодов, используемая для подтверждения тенденции фильтрации торговых сигналов
  4. Модуль идентификации прорыва для выявления торговых возможностей, когда цена превышает критические уровни поддержки/сопротивления

В частности, стратегия сначала использует функции запроса безопасности для получения наивысших максимумов и самых низких минимумов за последние 30 дней и 30 недель соответственно, составляя динамические линии поддержки и сопротивления. Затем она объединяет сигналы золотого креста и смертельного креста из 10-периодного SMA для фильтрации возможностей выхода. Долгие сигналы генерируются, когда цена превышает 30-дневный уровень поддержки и 10-периодный SMA, в то время как короткие сигналы генерируются, когда цена превышает 30-недельный уровень сопротивления и 10-периодный SMA.

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

Анализ преимуществ

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

  1. Использует как среднесрочную, так и долгосрочную поддержку/сопротивление для захвата более крупных прорывов.
  2. Фильтр MA контролирует потери, избегая ложных сигналов во время колебаний рынков.
  3. Динамические обновления уровней поддержки/сопротивления позволяют своевременно отслеживать новые направления тренда.
  4. Механизмы управления рисками стоп-лосса и прибыли помогают обеспечить прибыль.

Анализ рисков

Для этой стратегии также существуют некоторые риски:

  1. Стратегии прорыва требуют точного планирования, с проблемами перевыхода или отставания.
  2. Недействительные прорывы могут возникнуть, когда уровни поддержки/сопротивления не выполняются, вызывая огромные потери.
  3. Задержка движущихся средних может вызвать поздние сигналы об изменении тренда.
  4. Высокие риски привлечения делают его непригодным для небольших счетов.

Решения:

  1. Настроить логику идентификации и добавить больше фильтров.
  2. Используйте более длительные периоды MA, чтобы гарантировать, что сигналы появляются только после стабилизации трендов.
  3. Установите соответствующие уровни стоп-лосса, чтобы ограничить снижение на одиночных сделках.

Руководство по оптимизации

Есть возможности для дальнейшего совершенствования:

  1. Включить меры волатильности, такие как ATR для более умной остановки потери и увеличения прибыли.
  2. Добавить модели машинного обучения для обнаружения отказа поддержки/сопротивления.
  3. Используйте адаптивные скользящие средние для более быстрого обнаружения перемен.
  4. Прекрасные параметры настройки для различных продуктов.

Заключение

Стратегия Dual Trendlines Breakout Golden Cross Death Cross Trend Following эффективно сочетает в себе средне- и долгосрочную поддержку/сопротивление и показатели скользящей средней для фильтрации прибыльных сигналов во время основных трендов, что делает ее относительно зрелой количественной торговой стратегией.


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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © neosaid

//@version=5
strategy("Support and resistant Strategy", overlay=true)

// Function to check for breakout
f_breakoutCondition(closingPrice, highestHigh, lowestLow) =>
    closingPrice > highestHigh or closingPrice < lowestLow

// Step 1: 30 Days Trend Line (Lower Lows)
low30Days = request.security(syminfo.tickerid, "D", low)

// Step 2: 30 Weeks Upper Trend Line (Higher Highs)
high30Weeks = request.security(syminfo.tickerid, "W", high)

// Step 3: Trend Line for Lowest Low within the Last Month
var float lowestLowLastMonth = na
for i = 0 to 29
    lowestLowLastMonth := na(lowestLowLastMonth) ? low[i] : math.min(lowestLowLastMonth, low[i])

lowestLowLastMonthValue = lowestLowLastMonth[1]

// Breakout Strategy
highestHighLast3Candles = request.security(syminfo.tickerid, "D", ta.highest(close, 3))
lowestLowLast3Candles = request.security(syminfo.tickerid, "D", ta.lowest(close, 3))

// Additional conditions to filter signals
buyCondition = f_breakoutCondition(close, highestHighLast3Candles, lowestLowLast3Candles) and close > low30Days

sellCondition = f_breakoutCondition(close, highestHighLast3Candles, lowestLowLast3Candles) and close < high30Weeks

// Additional filters to reduce the number of orders
buyFilter = ta.crossover(close, ta.sma(close, 10)) // Buy only when price crosses above a 10-period SMA
sellFilter = ta.crossunder(close, ta.sma(close, 10)) // Sell only when price crosses below a 10-period SMA

buyCondition := buyCondition and buyFilter
sellCondition := sellCondition and sellFilter

// Plot Buy and Sell signals on the chart
plotshape(series=buyCondition, title="Buy Signal", color=color.green, style=shape.triangleup, location=location.belowbar)
plotshape(series=sellCondition, title="Sell Signal", color=color.red, style=shape.triangledown, location=location.abovebar)

// Strategy entries
strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.entry("Sell", strategy.short, when = sellCondition)


Больше