Система торговли с использованием фильтра SMA на основе разрыва тренда

GAP SMA MA
Дата создания: 2024-11-29 15:07:43 Последнее изменение: 2024-11-29 15:07:43
Копировать: 0 Количество просмотров: 377
1
Подписаться
1617
Подписчики

Система торговли с использованием фильтра SMA на основе разрыва тренда

Обзор

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

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

Стратегия основана на следующих ключевых факторах:

  1. Идентификация взлетов - система определяет взлеты, рассчитывая процентную разницу между ценой открытия и ценой закрытия, и устанавливает минимальный порог взлетов для фильтрации незначительных колебаний.
  2. Направленный выбор - предлагает множество вариантов торговли вверх и вниз (например, “сделай больше взлетов и падений”, “сделай меньше падений” и т. д.), позволяя пользователю гибко выбирать в зависимости от рыночной ситуации.
  3. Тренд-фильтр SMA - определяет общую тенденцию с помощью простых движущихся средних и открывает позиции только в том случае, если цена совпадает с направлением тренда.
  4. Управление позицией - использование заранее заданного периода хранения для управления позицией и эффективного контроля риска.

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

  1. Сигнал ясен - сигнал прыжка четко виден, что облегчает суждение и выполнение.
  2. Контролируемый риск - эффективное управление рисками путем установления минимального отрыва и времени удержания позиции.
  3. Гибкость - вы можете выбрать различные направления торговли в зависимости от рыночных условий.
  4. Подтверждение тренда - SMA-фильтр обеспечивает дополнительное подтверждение тренда, повышая вероятность успешной торговли.
  5. Высокий уровень автоматизации - четкая логика стратегии, легкость в реализации автоматизированных сделок.

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

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

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

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

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

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

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

//@version=5
strategy("Simplified Gap Strategy with SMA Filter", overlay=true)

// Input fields for user control
long_gap_threshold = input.float(0.1, title="Gap Threshold (%)", minval=0.01, step=0.01)  // Minimum percentage for gaps
hold_duration = input.int(10, title="Hold Duration (bars)", minval=1)  // Duration to hold the position
gap_trade_option = input.string("Long Up Gap", title="Select Trade Option", options=["Long Up Gap", "Short Down Gap", "Short Up Gap", "Long Down Gap"])  // Combined option
use_sma_filter = input.bool(false, title="Use SMA Filter")  // Checkbox to activate SMA filter
sma_length = input.int(200, title="SMA Length", minval=1)  // Length of the SMA

// RGB color definitions for background
color_up_gap = color.new(color.green, 50)    // Green background for up gaps
color_down_gap = color.new(color.red, 50)    // Red background for down gaps

// Gap size calculation in percentage terms
gap_size = (open - close[1]) / close[1] * 100  // Gap size in percentage

// Calculate gaps based on threshold input
up_gap = open > close[1] and gap_size >= long_gap_threshold  // Long gap condition
down_gap = open < close[1] and math.abs(gap_size) >= long_gap_threshold  // Short gap condition

// Calculate the SMA
sma_value = ta.sma(close, sma_length)

// Define the trading logic based on selected option and SMA filter
if (gap_trade_option == "Long Up Gap" and up_gap and (not use_sma_filter or close > sma_value))
    strategy.entry("Long", strategy.long)
if (gap_trade_option == "Short Down Gap" and down_gap and (not use_sma_filter or close < sma_value))
    strategy.entry("Short", strategy.short)
if (gap_trade_option == "Short Up Gap" and up_gap and (not use_sma_filter or close < sma_value))
    strategy.entry("Short", strategy.short)
if (gap_trade_option == "Long Down Gap" and down_gap and (not use_sma_filter or close > sma_value))
    strategy.entry("Long", strategy.long)

// Exit position after the hold duration
if (strategy.opentrades > 0)
    if (bar_index - strategy.opentrades.entry_bar_index(0) >= hold_duration)
        strategy.close("Long")
        strategy.close("Short")

// Background coloring to highlight gaps on the chart
bgcolor((gap_trade_option == "Long Up Gap" and up_gap) ? color_up_gap : na, title="Up Gap Background")
bgcolor((gap_trade_option == "Short Down Gap" and down_gap) ? color_down_gap : na, title="Down Gap Background")
bgcolor((gap_trade_option == "Short Up Gap" and up_gap) ? color_down_gap : na, title="Short Up Gap Background")
bgcolor((gap_trade_option == "Long Down Gap" and down_gap) ? color_up_gap : na, title="Long Down Gap Background")

// Plot the SMA for visualization
plot(use_sma_filter ? sma_value : na, color=color.white, title="SMA", linewidth=1)