Стратегия отслеживания прорыва импульса в двух направлениях


Дата создания: 2023-12-18 10:47:46 Последнее изменение: 2023-12-18 10:47:46
Копировать: 0 Количество просмотров: 625
1
Подписаться
1621
Подписчики

Стратегия отслеживания прорыва импульса в двух направлениях

Обзор

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

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

  1. Средняя цена рассчитывается с помощью индикатора активатора HiLo, который принимает за среднюю цену среднюю точку между самой высокой и самой низкой ценой. При повышении цены он создает сигнал покупки, когда цена превышает среднюю цену, и сигнал продажи, когда цена снижается и превышает среднюю цену.

  2. Средний трендовый индекс ADX используется для определения силы тренда. Чем больше значение ADX, тем сильнее тренд. Эта стратегия работает в сочетании с использованием определенного пониженного значения ADX для фильтрации сигнала, который будет производиться только тогда, когда тренд будет достаточно сильным.

  3. Многонаправленные индикаторы DI+ и DI- обозначают, соответственно, силу многого и пустого голов. Эта стратегия одновременно используется с определенным пороговым значением DI+ и DI- для подтверждения силы многого и пустого голов, чтобы предотвратить ошибочный сигнал.

  4. Сигнал “купить” возникает, когда цена вверх пробивает среднюю цену, ADX выше обесценения, DI+ выше обесценения; сигнал “продать” возникает, когда цена вниз пробивает среднюю цену, ADX выше обесценения, DI- выше обесценения.

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

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

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

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

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

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

Для снижения риска випсава можно соответствующим образом настроить параметры активатора HiLo, увеличив прорывную величину. Для получения большего количества возможностей можно снизить требование к порогу ADX и DI, но необходимо взвесить качество сигнала.

Кроме того, пользователям необходимо обращать внимание на различия в параметрах настройки в разных сортах и рыночных условиях. Как правило, для товаров требуется более высокая настройка на настройку на настройку на настройку на настройку на настройку на настройку на настройку на настройку на настройку на настройку на настройку на настройку на настройку на настройку на настройку настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настройки настрой

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

Эта стратегия может быть оптимизирована путем корректировки параметров. Основные направления оптимизации включают:

  1. Настройка цикла и частоты активатора HiLo, чтобы сбалансировать риски випсава и время входа.

  2. Регулирование циклов ADX и требований к порогу, балансируя качество сигнала и частоту входа.

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

  4. Добавление стратегии стоп-лосса, установка стоп-лосса для контроля одиночных потерь.

  5. Оптимизация в сочетании с другими вспомогательными показателями повышает общую стабильность стратегии.

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

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

Исходный код стратегии
/*backtest
start: 2022-12-11 00:00:00
end: 2023-12-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("HiLo Activator with ADX", shorttitle="HASB_ADX", overlay=true)

// Parameters for the HiLo Activator
length_ha = input(14, title="HiLo Activator Period")
offset_ha = input(0, title="Offset")
trigger_ha = input(1, title="Trigger for Buy/Sell")

// Parameters for ADX
adx_length = input(14, title="ADX Period", minval=1)
adx_threshold = input(25, title="ADX Threshold")
di_threshold = input(50, title="DI Threshold")

// Parameter for choosing the number of candles for backtest
backtest_candles = input(1000, title="Number of Candles for Backtest", minval=1)

// Function to get backtest data
getBacktestData() =>
    var float data = na
    if bar_index >= backtest_candles
        data := security(syminfo.tickerid, "D", close[backtest_candles])
    data

// HiLo Activator calculations
ha = (highest(high, length_ha) + lowest(low, length_ha)) / 2

// ADX calculations
trh = high - high[1]
trl = low[1] - low
tr = max(trh, trl)
atr = sma(tr, adx_length)
plus_dm = high - high[1] > low[1] - low ? max(high - high[1], 0) : 0
minus_dm = low[1] - low > high - high[1] ? max(low[1] - low, 0) : 0
smoothed_plus_dm = sma(plus_dm, adx_length)
smoothed_minus_dm = sma(minus_dm, adx_length)
di_plus = 100 * (smoothed_plus_dm / atr)
di_minus = 100 * (smoothed_minus_dm / atr)
dx = 100 * abs(di_plus - di_minus) / (di_plus + di_minus)
adx = sma(dx, adx_length)

// Buy and Sell signals based on HiLo Activator and ADX
signalLong = crossover(close, ha) and adx > adx_threshold and di_plus > di_threshold
signalShort = crossunder(close, ha) and adx > adx_threshold and di_minus > di_threshold

// Plot HiLo Activator and ADX
plot(ha, color=color.blue, title="HiLo Activator")
plot(offset_ha, color=color.red, style=plot.style_histogram, title="Offset")
plot(adx, color=color.purple, title="ADX")

// Backtest strategy
strategy.entry("Buy", strategy.long, when = signalLong)
strategy.entry("Sell", strategy.short, when = signalShort)
strategy.close("Buy", when = signalShort)
strategy.close("Sell", when = signalLong)

// Accuracy percentage
var accuracy = 0.0
var totalTrades = 0
var winningTrades = 0

if (signalLong or signalShort)
    totalTrades := totalTrades + 1

if (signalLong and (not na(signalLong[1]) and (not signalLong[1])))
    winningTrades := winningTrades + 1

if (signalShort and (not na(signalShort[1]) and (not signalShort[1])))
    winningTrades := winningTrades + 1

accuracy := totalTrades > 0 ? (winningTrades / totalTrades) * 100 : 0

// Plot accuracy percentage on the chart
plot(accuracy, title="Accuracy Percentage", color=color.purple, style=plot.style_histogram)