Стратегия отслеживания тренда «Золотой крест» и «Мертвый крест» с двойным прорывом линии


Дата создания: 2024-02-22 16:01:12 Последнее изменение: 2024-02-22 16:01:12
Копировать: 1 Количество просмотров: 563
1
Подписаться
1617
Подписчики

Стратегия отслеживания тренда «Золотой крест» и «Мертвый крест» с двойным прорывом линии

Обзор

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

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

Стратегия состоит из четырех основных частей:

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

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

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

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

Эта стратегия имеет следующие преимущества:

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

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

В этой стратегии также есть некоторые риски, о которых следует помнить:

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

Решение проблемы:

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

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

В этой стратегии есть место для дальнейшей оптимизации:

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

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

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

Исходный код стратегии
/*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)