Стратегия слияния "Supertrend BarUpDn"

Автор:Чао Чжан, Дата: 2024-01-31 14:43:06
Тэги:

img

Обзор

Стратегия Supertrend BarUpDn Fusion - это стратегия, которая объединяет индикатор Supertrend и индикатор BarUpDn. Стратегия будет длинной, если либо индикатор Supertrend, либо индикатор BarUpDn дает длинный сигнал, и будет короткой, если любой из индикаторов дает короткий сигнал.

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

Стратегия в основном использует два показателя:

  1. Индикатор супертенденции: Этот индикатор определяет направление тренда на основе среднего истинного диапазона и фактора. Он дает длинные сигналы, когда цена находится в канале восходящего тренда, и короткие сигналы, когда цена находится в канале нисходящего тренда.

  2. Индикатор BarUpDn: Этот индикатор определяет, является ли текущая панель быстрой (закрытие выше, чем открытие) или медвежьей (открытие выше, чем закрытие).

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

  1. Продолжайте, когда Supertrend длинный, а BarUpDn быстрый.

  2. Идите коротко, когда Supertrend короткий, а BarUpDn медвежий.

  3. Закрыть позиции своевременно, когда Supertrend изменит направление.

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

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

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

  1. Улучшенная точность путем слияния нескольких индикаторов. Использование как суждения о тренде Supertrend, так и краткосрочного суждения BarUpDn может улучшить точность времени входа.

  2. Своевременная остановка убытков. Быстрое сокращение убытков, когда основной индикатор Supertrend меняет направление, может избежать увеличения потерь.

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

  4. Сильная адаптивность: сам Supertrend имеет регулируемые параметры для адаптации к различным продуктам и временным рамкам.

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

Эта стратегия также сопряжена с некоторыми рисками:

  1. Неправильное суждение от неправильного слияния может привести к ошибочному суждению.

  2. Неправильная настройка параметров влияет на производительность.

  3. Небольшие потери могут возникнуть во время краткосрочных переворотов цен до того, как Supertrend изменит направление.

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

Стратегия может быть оптимизирована из следующих аспектов:

  1. Добавьте стратегии стоп-лосса, такие как перемещение стоп-лосса, время стоп-лосса, вырыв стоп-лосса и т.д., чтобы еще больше контролировать риски.

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

  3. Добавить еще несколько индикаторов слияния для создания механизма голосования и улучшения стабильности оценки.

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

Резюме

Стратегия Supertrend BarUpDn Fusion объединяет суждение о тренде и краткосрочное суждение путем объединения простых индикаторов, улучшения точности времени входа при сохранении простоты и простоты использования.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Supertrend and BarUpDn Indicator Fusion", overlay=true)

// Supertrend indicator
atrLength = input(10, title="ATR Length")
factor = input(3.0, title="Factor")
[supertrend, direction] = ta.supertrend(factor, atrLength)
lastBar = 0

// BarUpDn indicator
barUpDn = close > open and open > close[1] ? 1 : close < open and open < close[1] ? -1 : 0

if (barUpDn == 1)
    lastBar := 1
else if barUpDn == -1
    lastBar := -1


// Determine long or short position
longCondition = (direction > 0 and barUpDn > 0) or (direction > 0 and lastBar == 1)
shortCondition = (direction < 0 and barUpDn < 0) or (direction < 0 and lastBar == -1)

// Enter long or short position
if (longCondition)
    strategy.entry("Long", strategy.long)
    lastBar := 1
else if (shortCondition)
    strategy.entry("Short", strategy.short)
    lastBar := -1

if (direction < 0 and barUpDn > 0)
    strategy.entry("Long", strategy.long)

// Exit long or short position
if (direction > 0 and barUpDn < 0)
    strategy.entry("Short", strategy.short)

// Exit long or short position
// if (direction < 0 and barUpDn > 0 or direction > 0 and barUpDn < 0)
//   strategy.close_all()


Больше