
Стрелка SMA-EMA с множеством временных колебаний - это стратегия технического анализа, которая сочетает в себе пересекающиеся сигналы простой скользящей средней (SMA) и индексной скользящей средней (EMA) и использует множественные фильтры времени для фильтрации и RSI для дополнительного суждения. Основная идея этой стратегии заключается в том, чтобы захватить точки пересечения EMA15 и SMA60 в качестве входа, в то же время ввести EMA200 в качестве долгосрочного трендового ориентира и в сочетании с более высокими временными колебаниями EMA200 для фильтрации направления торговли, чтобы в конечном итоге избежать торговли в районах чрезмерной покупки и продажи по RSI. Кроме того, стратегия также имеет хорошо разработанные механизмы стоп-лопа и стоп-стопа, а также контроль за периодом торговли, чтобы сформировать общую торговую систему.
Основные принципы стратегии основаны на нескольких компонентах технического анализа:
Система пересечения скользящих средних:
Многократная фильтрация:
Фильтрация RSI:
Система управления рисками:
Торговая логика стратегии основана на принципе “следуйте за трендом + многократное подтверждение”, используя многоуровневый механизм фильтрации, чтобы гарантировать торговлю только в направлении высокой вероятности, а также защищать безопасность средств с помощью строгих мер контроля риска.
В результате глубокого анализа кода эта стратегия имеет следующие значительные преимущества:
Механизм многократного подтверждения: в сочетании с кратковременным пересечением скользящих средних, долгосрочным суждением о тенденциях и фильтрацией RSI, образуется механизм тройного подтверждения, значительно повышающий качество сигнала, уменьшающий ложные прорывы и ошибочные сигналы.
Адаптация к различным рыночным условиямПри использовании параметрической конструкции, стратегия может быть гибко адаптирована к различным рыночным условиям и торговым видам, таким как адаптация к циклам движущихся средних, RSI и т. д.
Хороший контроль риска:
Управление временем транзакцийАвтоматическое назначение временного отсева перед закрытием позволяет избежать ночного риска и неопределенности, связанной с колебаниями в закрытии, особенно для трейдеров в течение дня.
Фильтр трендов на высоких часовых поясахПовышение выигрышных коэффициентов, обеспечивающих соответствие направления торгов с основными тенденциями, путем введения более высоких временных линий.
Модульный дизайн: компоненты стратегии (генерация сигналов, механизм фильтрации, управление рисками) четко разделены, что позволяет легко понимать и корректировать, а также оптимизировать и расширять в дальнейшем.
Несмотря на всеобъемлющий дизайн стратегии, существуют следующие потенциальные риски:
Параметр ЧувствительностьЭффективность стратегии в значительной степени зависит от параметров, таких как цикличность движущихся средних, порог RSI. Различные рыночные условия могут требовать разных комбинаций параметров, а неправильная оптимизация параметров может привести к чрезмерной адаптации исторических данных.
ОтсталостьДвижущийся средний по своей сути является отстающим показателем, который может дать более поздний сигнал, пропустить оптимальную точку входа или привести к большему отступлению в сильно волатильном или быстро меняющемся рынке.
Недостаточно хорошие показатели на горизонтальном рынке: В случае отсутствия четкой тенденции на рынке, пересечение скользящих средних может привести к частому появлению ложных сигналов, что приводит к последовательным потерям.
Чрезмерная зависимость от технических показателейСтратегия, основанная исключительно на технических показателях, не учитывает фундаментальные факторы и рыночные настроения, которые могут оказаться неэффективными на рынках, движимых важными новостями или событиями.
Риск фиксированной потери: фиксированный стоп может быть недостаточно гибким на рынках с изменяющейся волатильностью, стоп может быть слишком мягким при расширении волатильности и слишком жестким при сокращении волатильности.
Решение проблемы:
На основе существующей структуры стратегии можно выделить несколько направлений оптимизации:
Механизм адаптации к колебаниям:
Усиление согласованности в многочасовом цикле:
Подтверждение объема сделки:
Оптимизация динамических параметров:
Классификация состояния рынка:
Оптимизация машинного обучения:
Эти направления оптимизации позволяют устранить недостатки стратегии и обеспечить ее устойчивую работу в более широкой рыночной среде.
Многочасовая 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()