
Обзор стратегии
Эта стратегия является системой поглощенной торговли, основанной на перекрестных простых скользящих средних (SMA) и специализирующейся на захвате нисходящих тенденций на рынке. Эта стратегия использует простые скользящие средние с 20 и 50 циклами в качестве центральных показателей, когда краткосрочные SMA (20) вниз пересекают длинные SMA (50), система генерирует пустой сигнал; когда краткосрочные SMA (20) вверх пересекают длинные SMA (50), система плавно.
Стратегический принцип
Эта стратегия основана на классической теории пересечения скользящих средних в техническом анализе. Ее основная логика такова:
- Вычислить 20-циклическую простую скользящую среднюю ((SMA20) и 50-циклическую простую скользящую среднюю ((SMA50)
- Когда SMA20 пересекает SMA50 ниже, это рассматривается как переход ценовой динамики в отрицательное направление, а тренд начинается с переворота, который вызывает сигнал дефолта
- Когда SMA20 пробивает SMA50, это считается ослаблением или завершением нисходящей тенденции, что вызывает сигнал о закрытии позиции.
- Стратегия использует режим полного позиционирования с использованием 100% доступных средств для каждой сделки.
С точки зрения реализации кода, стратегия использует функции ta.crossunder () и ta.crossover () языка Pine Script для точного захвата событий пересечения равнолинейной линии и выполнения сделок с помощью функций strategy.entry () и strategy.close (). Кроме того, стратегия также визуально отображает торговые сигналы на графике, помогая трейдерам мгновенно понимать выполнение логики торговли.
Стратегические преимущества
- Простые и эффективныеСтратегия использует только два технических показателя, логика ясна, легко понятна и реализуется, снижается риск перенастройки.
- Способность отслеживать тенденцииКомбинация SMA20 и SMA50 эффективно улавливает изменения среднесрочной тенденции, и, как правило, указывает на большую возможность падения, когда краткосрочная средняя линия проходит под долгосрочной средней.
- Улучшенное управление рискамиСтратегия включает четкие условия входа и выхода, не позволяет бесконечно расширять убытки, автоматически ликвидирует позиции при обратном тренде.
- Визуальные отзывыС помощью форм-маркетинга и текстовых меток на графике трейдер может четко видеть каждый торговый сигнал, что позволяет отслеживать анализ и мониторинг в реальном времени.
- Высокая степень адаптацииХотя стратегия хорошо работает в 15-минутных временных рамках, ее основная логика также применима к другим временным периодам, имея хорошую адаптивность к различным временным рамкам.
- Торговля людьмиВ то же время, в некоторых странах, например, в Китае, и в некоторых других странах, в частности, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае, в Китае.
Стратегический риск
- Риск волатильности рынков: В рыночных волатильность поперечного диапазона, частое пересечение средних линий может привести к многократным ложным сигналам, создавая последовательные убыточные сделки. Улучшение является добавление подтверждающих показателей, таких как индикатор силы тренда или волатильность фильтра.
- ОтсталостьДвижущаяся средняя сама по себе имеет отсталость, которая может привести к недостаточно идеальным входным и выходным временам, пропуску оптимальных торговых точек. Можно рассмотреть возможность использования более чувствительных показателей, таких как EMA или корректировки среднего цикла, чтобы смягчить эту проблему.
- Односторонние ограниченияСтратегия: просто не делать много свободных позиций, в долгосрочном бычьем рынке может быть упущено много возможностей для роста. Одним из решений является разработка сопутствующей многоголовой стратегии или расширение существующей стратегии в двухстороннюю торговую систему.
- Недостаточное управление финансами: Стратегия использования 100% капитала для торговли без учета управления позициями, что может привести к быстрому сокращению капитала в случае последовательных потерь. Рекомендуется добавить модуль управления рисками, чтобы скорректировать размер позиции в зависимости от динамики волатильности рынка.
- Отсутствие механизмов сдерживания: текущая стратегия зависит от равнолинейного пересечения в качестве отправной точки, не имеет установленного стоп-ущерба, в крайних случаях может быть подвергнута большому отступлению. Должен быть добавлен механизм стоп-ущерба на основе ATR или фиксированного процента.
Направление оптимизации стратегии
- Добавить фильтр трендовВнедрение индикаторов силы тренда, таких как ADX (индекс среднего направления), для совершения торговли только в том случае, если ADX превышает определенную отметку, чтобы избежать ложных сигналов о колебаниях рынка. Такая оптимизация может значительно повысить коэффициент выигрыша и убыточность.
- Оптимизация среднелинейных цикловВ настоящее время используется классическая установка 20⁄50 циклов, однако можно улучшить адаптивность стратегии, отслеживая различные комбинации параметров, чтобы найти оптимальные параметры для конкретных видов торгов.
- Введение многократного анализа временных рамокПрименение более высоких временных рамок для определения тренда, выполнение сигналов пустой формы на 15-минутных графиках только в том случае, если солнечная линия или 4-часовой график движутся вниз, чтобы избежать торговли против большого тренда.
- Добавить управление позициямиДинамическая корректировка размеров позиций на основе ATR, уменьшение позиций в условиях высокой волатильности рынка, умеренное увеличение позиций при низкой волатильности, оптимизация плавности кривой капитала.
- Дополнительный механизм по устранению потерьУстановка остановок на основе ATR или ключевых уровней поддержки, а также остановки на основе рисково-рентабельного соотношения или предварительных минимумов, повышение способности защиты средств.
- Фильтрация времени транзакцииАнализируйте эффективность различных торговых периодов, избегайте неэффективных или рискованных периодов, когда время сдачи на рынках Азии, Европы и США может колебаться.
- Учитывайте затратыВключение в стратегическую оценку комиссионных и скользящих факторов позволяет более точно оценить реальную эффективность сделки.
Подвести итог
SMA20/50 - это простая и эффективная количественная торговая стратегия для выполнения воздушных сделок путем захвата перекрестных сигналов простых движущихся средних. Стратегия отлично работает в нисходящих тенденциях, ее логика ясна, ее легко понять и реализовать. Несмотря на присущие риски, такие как ложные сигналы в рыночных волнов и задержка в равной линии, эффективность стратегии может быть значительно улучшена путем добавления фильтров на тенденции, оптимизации параметров и улучшения механизмов управления капиталом и остановки убытков.
Исходный код стратегии
/*backtest
start: 2025-01-01 00:00:00
end: 2025-03-31 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("SMA20/50 Short-Only Strategy", overlay=true, initial_capital=5000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Input sources and calculations
src = close
sma20 = ta.sma(src, 20)
sma50 = ta.sma(src, 50)
// Generate sell signal when sma20 crosses below sma50
sellSignal = ta.crossunder(sma20, sma50)
// Generate exit signal when sma20 crosses above sma50
exitSignal = ta.crossover(sma20, sma50)
// Plot SMAs
plot(sma20, color = color.blue, title = "SMA 20")
plot(sma50, color = color.black, title = "SMA 50")
// Plot sell signal
plotshape(sellSignal, style = shape.triangledown, location = location.abovebar, color = color.red, size = size.tiny, title = "Sell Signal")
// Plot exit signal
plotshape(exitSignal, style = shape.xcross, location = location.belowbar, color = color.green, size = size.tiny, title = "Exit Signal")
// Add label for sell signals
if sellSignal
label.new(bar_index, high, text="SELL", color = color.red, style = label.style_label_down, textcolor = color.white, size = size.small)
// Add label for exit signals
if exitSignal
label.new(bar_index, low, text="EXIT", color = color.green, style = label.style_label_up, textcolor = color.white, size = size.small)
// Strategy entry and exit - SHORT ONLY
if sellSignal
strategy.entry("Short", strategy.short)
if exitSignal
strategy.close("Short")
// Strategy performance stats
var cumPnL = 0.0
if strategy.closedtrades > 0
cumPnL := strategy.netprofit