Многопериодная сглаженная система отслеживания тренда Heikin Ashi с количественной оценкой

MTF TFS
Дата создания: 2024-12-11 15:42:36 Последнее изменение: 2024-12-11 15:42:36
Копировать: 0 Количество просмотров: 455
1
Подписаться
1617
Подписчики

Многопериодная сглаженная система отслеживания тренда Heikin Ashi с количественной оценкой

Обзор

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

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

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

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

  1. Многоциклическая комбинация уменьшает ложные сигналы: эффективно уменьшает помехи, вызванные краткосрочными колебаниями, путем расчета показателя Heikin Ashi на более высоких временных периодах.
  2. Усовершенствованный риск-менеджмент: интегрированная функция остановки убытков, позволяющая гибко корректировать параметры в зависимости от рыночных колебаний.
  3. Гибкость в выборе направления: в зависимости от рыночных особенностей можно выбрать только плюс, только минус или двустороннюю торговлю.
  4. Полностью автоматизированная работа: четкая логика стратегии, регулируемые параметры, подходящие для автоматизированной торговли.
  5. Умение адаптироваться: может применяться в различных рынках и временных периодах, имеет хорошую универсальность.

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

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

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

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

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

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

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

//@version=5
strategy("Optimized Heikin Ashi Strategy with Buy/Sell Options", overlay=true)

// User inputs for customizing backtest settings
startDate = input(timestamp("2023-01-01 00:00"), title="Backtest Start Date", tooltip="Start date for the backtest")
endDate = input(timestamp("2024-01-01 00:00"), title="Backtest End Date", tooltip="End date for the backtest")

// Input for Heikin Ashi timeframe optimization
ha_timeframe = input.timeframe("D", title="Heikin Ashi Timeframe", tooltip="Choose the timeframe for Heikin Ashi candles")

// Inputs for optimizing stop loss and take profit
use_stop_loss = input.bool(true, title="Use Stop Loss")
stop_loss_percent = input.float(2.0, title="Stop Loss (%)", minval=0.0, tooltip="Set stop loss percentage")
use_take_profit = input.bool(true, title="Use Take Profit")
take_profit_percent = input.float(4.0, title="Take Profit (%)", minval=0.0, tooltip="Set take profit percentage")

// Input to choose Buy or Sell
trade_type = input.string("Buy Only", options=["Buy Only", "Sell Only"], title="Trade Type", tooltip="Choose whether to only Buy or only Sell")

// Heikin Ashi calculation on a user-defined timeframe
ha_open = request.security(syminfo.tickerid, ha_timeframe, ta.sma(open, 2), barmerge.gaps_off, barmerge.lookahead_on)
ha_close = request.security(syminfo.tickerid, ha_timeframe, ta.sma(close, 2), barmerge.gaps_off, barmerge.lookahead_on)
ha_high = request.security(syminfo.tickerid, ha_timeframe, math.max(high, close), barmerge.gaps_off, barmerge.lookahead_on)
ha_low = request.security(syminfo.tickerid, ha_timeframe, math.min(low, open), barmerge.gaps_off, barmerge.lookahead_on)

// Heikin Ashi candle colors
ha_bullish = ha_close > ha_open // Green candle
ha_bearish = ha_close < ha_open // Red candle

// Backtest period filter
inDateRange = true

// Trading logic depending on user input
if (inDateRange)  // Ensures trades happen only in the selected period
    if (trade_type == "Buy Only")  // Buy when green, Sell when red
        if (ha_bullish and strategy.position_size <= 0)  // Buy on green candle only if no position is open
            strategy.entry("Buy", strategy.long)
        if (ha_bearish and strategy.position_size > 0)  // Sell on red candle (close the long position)
            strategy.close("Buy")

    if (trade_type == "Sell Only")  // Sell when red, Exit sell when green
        if (ha_bearish and strategy.position_size >= 0)  // Sell on red candle only if no position is open
            strategy.entry("Sell", strategy.short)
        if (ha_bullish and strategy.position_size < 0)  // Exit the sell position on green candle
            strategy.close("Sell")

// Add Stop Loss and Take Profit conditions if enabled
if (use_stop_loss)
    strategy.exit("Stop Loss", from_entry="Buy", stop=strategy.position_avg_price * (1 - stop_loss_percent / 100))
    
if (use_take_profit)
    strategy.exit("Take Profit", from_entry="Buy", limit=strategy.position_avg_price * (1 + take_profit_percent / 100))

// Plot Heikin Ashi candles on the chart
plotcandle(ha_open, ha_high, ha_low, ha_close, color=ha_bullish ? color.green : color.red)