Количественная стратегия с использованием пересечения нескольких таймфреймов SMA-EMA

SMA EMA RSI HTF TP/SL Trailing Stop
Дата создания: 2025-06-16 14:55:14 Последнее изменение: 2025-06-16 14:55:14
Копировать: 4 Количество просмотров: 257
2
Подписаться
319
Подписчики

Количественная стратегия с использованием пересечения нескольких таймфреймов SMA-EMA Количественная стратегия с использованием пересечения нескольких таймфреймов SMA-EMA

Обзор

Стрелка SMA-EMA с множеством временных колебаний - это стратегия технического анализа, которая сочетает в себе пересекающиеся сигналы простой скользящей средней (SMA) и индексной скользящей средней (EMA) и использует множественные фильтры времени для фильтрации и RSI для дополнительного суждения. Основная идея этой стратегии заключается в том, чтобы захватить точки пересечения EMA15 и SMA60 в качестве входа, в то же время ввести EMA200 в качестве долгосрочного трендового ориентира и в сочетании с более высокими временными колебаниями EMA200 для фильтрации направления торговли, чтобы в конечном итоге избежать торговли в районах чрезмерной покупки и продажи по RSI. Кроме того, стратегия также имеет хорошо разработанные механизмы стоп-лопа и стоп-стопа, а также контроль за периодом торговли, чтобы сформировать общую торговую систему.

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

Основные принципы стратегии основаны на нескольких компонентах технического анализа:

  1. Система пересечения скользящих средних

    • Основным сигналом является перекрестный 15-циклический EMA и 60-циклический SMA
    • EMA15 через SMA60 образует полисигнал
    • EMA15 под SMA60 образует пусковой сигнал
    • 200-циклическая EMA в качестве долгосрочного тренда
  2. Многократная фильтрация

    • Введение более высокой временной шкалы (по умолчанию 60 минут) EMA200 в качестве инструмента для определения тенденций
    • Дополнительная ставка допускается только в том случае, если цена находится выше высокого часового пояса EMA 200
    • Пробег разрешен только тогда, когда цена находится ниже высокой часовой стрелки EMA200
    • Такой механизм фильтрации гарантирует, что направление торговли совпадает с тенденциями на более крупных временных периодах.
  3. Фильтрация RSI

    • Используйте 14-циклический RSI, чтобы избежать позиций в зонах чрезмерной торговли
    • RSI ниже 30 - это зона перепродажи, ограничивающая позиции
    • RSI выше 70 - это зона перекупа, ограничение на избыток
    • Такой дизайн помогает избежать неудачных сделок и улучшить качество входа.
  4. Система управления рисками

    • Гибкая настройка остановок, поддержка фиксированного балла или процента
    • Настройка стоп-лосса с фиксированным количеством очков
    • Механизм стоп-локации, закрепляющий прибыль
    • Контроль за временем торговли, чтобы избежать позиций до закрытия рынка

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

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

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

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

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

  3. Хороший контроль риска

    • Поддержка различных способов остановки ((фиксированный балл/процент)
    • Фиксированная защита от убытков
    • Задержка убытков для блокировки прибыли
    • Такой многоуровневый механизм управления рисками эффективно контролирует наибольший риск в каждой сделке.
  4. Управление временем транзакцийАвтоматическое назначение временного отсева перед закрытием позволяет избежать ночного риска и неопределенности, связанной с колебаниями в закрытии, особенно для трейдеров в течение дня.

  5. Фильтр трендов на высоких часовых поясахПовышение выигрышных коэффициентов, обеспечивающих соответствие направления торгов с основными тенденциями, путем введения более высоких временных линий.

  6. Модульный дизайн: компоненты стратегии (генерация сигналов, механизм фильтрации, управление рисками) четко разделены, что позволяет легко понимать и корректировать, а также оптимизировать и расширять в дальнейшем.

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

Несмотря на всеобъемлющий дизайн стратегии, существуют следующие потенциальные риски:

  1. Параметр ЧувствительностьЭффективность стратегии в значительной степени зависит от параметров, таких как цикличность движущихся средних, порог RSI. Различные рыночные условия могут требовать разных комбинаций параметров, а неправильная оптимизация параметров может привести к чрезмерной адаптации исторических данных.

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

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

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

  5. Риск фиксированной потери: фиксированный стоп может быть недостаточно гибким на рынках с изменяющейся волатильностью, стоп может быть слишком мягким при расширении волатильности и слишком жестким при сокращении волатильности.

Решение проблемы:

  • Отслеживание различных рынков и периодов, чтобы найти надежную комбинацию параметров
  • Повышение самостоятельной адаптации к волатильности
  • Добавление дополнительных фильтров на горизонтальных рынках, таких как понижение волатильности
  • Стратегия усиления в сочетании с фундаментальными факторами или индикаторами рыночных настроений
  • Рассматривается возможность включения механизма подтверждения объемов сделок для улучшения качества сигналов

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

На основе существующей структуры стратегии можно выделить несколько направлений оптимизации:

  1. Механизм адаптации к колебаниям

    • Введение показателя ATR (Average True Range) для корректировки уровней стоп-стоп
    • Расширять пределы убытков в условиях высокой волатильности и ужесточать убытки в условиях низкой волатильности
    • Такой механизм адаптации может лучше адаптироваться к различным рыночным условиям
  2. Усиление согласованности в многочасовом цикле

    • Добавление подтверждения промежуточного временного ряда, формирующего требования к согласованности трех временных рамок “краткосрочный + среднесрочный + долгосрочный”
    • Сделки выполняются только при совпадении сигналов в течение нескольких временных периодов
    • Это еще больше снижает риск ложных сигналов.
  3. Подтверждение объема сделки

    • Присоединение к анализу объема сделок, требующее увеличения объема сделок при появлении сигнала
    • Можно использовать показатели относительного объема торгов, такие как OBV или Chaikin Money Flow
    • Подтверждение объема транзакций может значительно повысить качество сигналов и эффективность прорыва
  4. Оптимизация динамических параметров

    • Осуществление механизма динамической корректировки параметров для автоматической оптимизации циклов движущихся средних и отступлений от RSI в соответствии с последними показателями рынка
    • Такой адаптивный подход может помочь стратегии лучше адаптироваться к изменению состояния рынка.
  5. Классификация состояния рынка

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

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

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

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

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

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

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

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

Исходный код стратегии
/*backtest
start: 2025-01-01 00:00:00
end: 2025-06-15 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy(title="PhaiSinh_SMA & EMA [VNFlow]", overlay=true, slippage=1, backtest_fill_limits_assumption=1, initial_capital=100.000, default_qty_type=strategy.fixed, default_qty_value=4, commission_type=strategy.commission.cash_per_order, commission_value=2700,fill_orders_on_standard_ohlc=true, calc_on_order_fills=true, process_orders_on_close=true)

// === Chỉ báo chính ===
sma60 = ta.sma(close, 60)
ema15 = ta.ema(close, 15)
ema200 = ta.ema(close, 200)
plot(sma60, title="SMA 60", color=color.rgb(227, 10, 251), linewidth=1)
plot(ema15, title="EMA 15", color=color.rgb(246, 222, 11), linewidth=1)
plot(ema200, title="EMA 200", color=color.rgb(13, 141, 245), linewidth=1)

// === Cấu hình thời gian thoát trước khi hết phiên ===
session_close_hour = input.int(14, title="Giờ đóng phiên (24h)")
session_close_minute = input.int(30, title="Phút đóng phiên")
minutes_before_close = input.int(5, title="Số phút thoát lệnh trước đóng phiên")
exit_hour = session_close_hour
exit_minute = session_close_minute - minutes_before_close
exit_hour := exit_minute < 0 ? exit_hour - 1 : exit_hour
exit_minute := exit_minute < 0 ? exit_minute + 60 : exit_minute
cutoff_time = (hour > exit_hour) or (hour == exit_hour and minute >= exit_minute)

// === Bộ lọc RSI ===
use_rsi_filter = input.bool(true, title="Bộ lọc RSI?")
rsi_period = input.int(14, title="Chu kỳ RSI")
rsi_overbought = input.int(70)
rsi_oversold = input.int(30)
rsi_val = ta.rsi(close, rsi_period)

// === Bộ lọc EMA từ HTF ===
use_htf_filter = input.bool(true, title="Bộ lọc EMA HTF?")
htf_tf = input.timeframe("60", title="Khung thời gian EMA cao hơn")
htf_ema = request.security(syminfo.tickerid, htf_tf, ta.ema(close, 200))
ema_trend_up = close > htf_ema
ema_trend_down = close < htf_ema

// === Cài đặt TP/SL/Trailing ===
use_percent_tp = input.bool(false, title="TP theo % (nếu không: tính theo tick)")
tp_value = input.float(1.0, title="Take Profit (tick hoặc %)")
sl_value = input.float(20.0, title="Stop Loss (tick)")
trail_offset = input.int(10, title="Trailing Stop (tick)")

// === Logic tín hiệu vào/ra ===
long_entry = ta.crossover(ema15, sma60) and close >= ema15 and not cutoff_time
short_entry = ta.crossunder(ema15, sma60) and close <= ema15 and not cutoff_time
long_ok = long_entry and (not use_htf_filter or ema_trend_up) and (not use_rsi_filter or rsi_val > rsi_oversold)
short_ok = short_entry and (not use_htf_filter or ema_trend_down) and (not use_rsi_filter or rsi_val < rsi_overbought)

// === Vào lệnh ===
if long_ok
    strategy.entry("Long", strategy.long)
if short_ok
    strategy.entry("Short", strategy.short)

// === Tính TP theo giá nếu chọn % ===
long_tp_price = close * (1 + tp_value / 100)
short_tp_price = close * (1 - tp_value / 100)

// === Thoát lệnh với TP/SL/Trailing ===
if strategy.position_size > 0
    if use_percent_tp
        strategy.exit("Dừng Long %", from_entry="Long", loss=sl_value, limit=long_tp_price, trail_points=trail_offset, trail_offset=trail_offset)
    else
        strategy.exit("Dừng Long Tick", from_entry="Long", loss=sl_value, profit=tp_value, trail_points=trail_offset, trail_offset=trail_offset)

if strategy.position_size < 0
    if use_percent_tp
        strategy.exit("Dừng Short %", from_entry="Short", loss=sl_value, limit=short_tp_price, trail_points=trail_offset, trail_offset=trail_offset)
    else
        strategy.exit("Dừng short Tick", from_entry="Short", loss=sl_value, profit=tp_value, trail_points=trail_offset, trail_offset=trail_offset)

// === Đóng toàn bộ trước phiên ===
if cutoff_time
    strategy.close_all()