Историческая система торговли гибридным трендом на основе прорыва цены (HBTS)

MA SMA EMA WMA VWMA
Дата создания: 2024-12-05 14:40:05 Последнее изменение: 2024-12-05 14:40:05
Копировать: 0 Количество просмотров: 431
1
Подписаться
1617
Подписчики

Историческая система торговли гибридным трендом на основе прорыва цены (HBTS)

Обзор

Стратегия представляет собой систему отслеживания тенденций, основанную на исторических ценовых прорывах и фильтрах на равновесии. Она сочетает в себе многоциклические ценовые прорывы и движущиеся средние значения для идентификации тенденций рынка и захвата средне- и долгосрочных движений рынка с помощью строгих правил входа и выхода. Стратегия использует 55-дневный ценовой прорыв в качестве сигнала плюса, 20-дневный ценовой прорыв в качестве сигнала равновесия, а также вводит 200-дневную среднюю линию в качестве фильтра на тенденции, эффективно снижая риск, связанный с ложными прорывами.

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

Основная логика стратегии основана на ценовых прорывах и отслеживании тенденций. В частности:

  1. Сигнал входа: система подает сигнал, когда цена достигла нового 55-дневного максимума и закрытие находится выше 200-дневного среднего
  2. Выходный сигнал: система закрывает торговлю, когда цена падает до 20-дневного минимума
  3. Тренд-фильтр: используйте 200-дневную среднюю линию в качестве основы для определения большого тренда, открывайте позиции только над средней линией
  4. Управление позициями: 10% от чистой стоимости счета используется в качестве доли капитала для каждой сделки
  5. Выбор однородности: поддержка четырех однородности: SMA, EMA, WMA, VWMA, гибкий выбор в зависимости от особенностей рынка

Стратегические преимущества

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

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

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

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

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

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

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

Исходный код стратегии
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-04 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Turtle Traders - Andrei", overlay=true, 
     default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// ====== Inputs ======
// Período para a máxima das compras
lookback_buy = input.int(title="Período para Máxima de Compra", defval=55, minval=1)

// Período para a mínima das vendas
lookback_sell = input.int(title="Período para Mínima de Venda", defval=20, minval=1)

// Período da Média Móvel
ma_length = input.int(title="Período da Média Móvel", defval=200, minval=1)

// Tipo de Média Móvel
ma_type = input.string(title="Tipo de Média Móvel", defval="SMA", options=["SMA", "EMA", "WMA", "VWMA"])

// ====== Cálculos ======
// Cálculo da Média Móvel baseada no tipo selecionado
ma = switch ma_type
    "SMA" => ta.sma(close, ma_length)
    "EMA" => ta.ema(close, ma_length)
    "WMA" => ta.wma(close, ma_length)
    "VWMA" => ta.vwma(close, ma_length)

// Cálculo da máxima dos últimos 'lookback_buy' candles
highest_buy = ta.highest(high, lookback_buy)

// Cálculo da mínima dos últimos 'lookback_sell' candles
lowest_sell = ta.lowest(low, lookback_sell)

// ====== Condições de Negociação ======
// Condição de entrada: fechamento acima da máxima dos últimos 'lookback_buy' candles E acima da MA
longCondition = (high == highest_buy) and (close > ma)

if (longCondition)
    strategy.entry("Comprar", strategy.long)

// Condição de saída: fechamento abaixo da mínima dos últimos 'lookback_sell' candles
exitCondition = (low == lowest_sell)

if (exitCondition)
    strategy.close("Comprar")

// ====== Plotagens ======
// Plotar a máxima de 'lookback_buy' candles
plot(highest_buy, color=color.green, title="Máxima", linewidth=2)

// Plotar a mínima de 'lookback_sell' candles
plot(lowest_sell, color=color.red, title="Mínima", linewidth=2)

// Plotar a Média Móvel
plot(ma, color=color.blue, title="Média Móvel", linewidth=2)

// ====== Sinais Visuais ======
// Sinal de entrada
plotshape(series=longCondition, location=location.belowbar, color=color.green, 
          style=shape.labelup, title="Sinal de Compra", text="")

// Sinal de saída
plotshape(series=exitCondition, location=location.abovebar, color=color.red, 
          style=shape.labeldown, title="Sinal de Venda", text="")