В процессе загрузки ресурсов... загрузка...

Стратегия пересечения тенденции с использованием нескольких индикаторов: торговая система поддержки рыночной линейки быка

Автор:Чао Чжан, Дата: 2024-12-27 14:35:53
Тэги:SMABMSBЕМА

img

Обзор

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

Принципы стратегии

Основная логика стратегии заключается в мониторинге относительной позиции 20-недельной SMA и 21-недельной EMA для оценки рыночных тенденций. Когда краткосрочная средняя (20-недельная SMA) превышает долгосрочную среднюю (21-недельную EMA), это указывает на потенциальный восходящий тренд, запуская вход в длинную позицию. Когда краткосрочная средняя падает ниже долгосрочной средней, это сигнализирует о потенциальном конце восходящего тренда, запуская закрытие позиции. Стратегия использует управление позициями %_of_equity с комиссией на 0,1% и скольжением в 3 базисных пункта.

Преимущества стратегии

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

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

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

Руководство по оптимизации

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

Резюме

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


/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0
// © zkdev

//@version=6
strategy(title='Demo GPT - Bull Market Support Band', 
     overlay=true, 
     default_qty_type=strategy.percent_of_equity, 
     default_qty_value=100, 
     commission_type=strategy.commission.percent, 
     commission_value=0.1, 
     slippage=3)

// -------------------------------------------------------------------------
// Compile-time timestamp constants for default date range
// (2018-01-01 00:00:00 UTC -> 1514764800000
//  2069-12-31 23:59:59 UTC -> 3155759999000)
// -------------------------------------------------------------------------
const int defaultFromDate = 1514764800000
const int defaultToDate   = 3155759999000

// -------------------------------------------------------------------------
// Inputs: date range
// -------------------------------------------------------------------------
fromDate = input(title='Start Date', defval=defaultFromDate)
toDate   = input(title='End Date',   defval=defaultToDate)

// -------------------------------------------------------------------------
// Indicator settings & calculations
// -------------------------------------------------------------------------
smaLength = 20
emaLength = 21

source = close
sma    = ta.sma(source, smaLength)
ema    = ta.ema(source, emaLength)

// -------------------------------------------------------------------------
// Fetch weekly SMA & EMA
// -------------------------------------------------------------------------
outSma = request.security(syminfo.tickerid, 'W', sma, gaps=barmerge.gaps_on, lookahead=barmerge.lookahead_off)
outEma = request.security(syminfo.tickerid, 'W', ema, gaps=barmerge.gaps_on, lookahead=barmerge.lookahead_off)

// -------------------------------------------------------------------------
// Plot visuals (20w SMA, 21w EMA, fill in between)
// -------------------------------------------------------------------------
smaPlot = plot(outSma, color=color.new(color.red,   0), title='20w SMA')
emaPlot = plot(outEma, color=color.new(color.green, 0), title='21w EMA')
fill(smaPlot, emaPlot, color=color.new(color.orange, 75), fillgaps=true)

// -------------------------------------------------------------------------
// We evaluate crossover/crossunder on *every bar* and store the result
// -------------------------------------------------------------------------
crossUp   = ta.crossover(outSma, outEma)
crossDown = ta.crossunder(outSma, outEma)

// -------------------------------------------------------------------------
// Trade logic: only operate within chosen date range
// Buy when outSma crosses above outEma; Sell (close) when outSma crosses below outEma
// -------------------------------------------------------------------------
inDateRange = true

if inDateRange
    // If we have a crossUp event on this bar, buy (go Long)
    if crossUp
        strategy.entry('Long', strategy.long)

    // If we have a crossDown event on this bar, sell (close Long)
    if crossDown
        strategy.close('Long')


Связанные

Больше