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

Двойная стратегия отслеживания импульса скользящей средней

Автор:Чао Чжан, Дата: 2024-11-27 15:06:57
Тэги:М.А.SMAЕМАСММАRMAWMAVWMA

img

Обзор

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

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

Стратегия использует два уровня расчетов скользящей средней. Сначала вычисляется основная скользящая средняя (период по умолчанию 9), а затем вторичный процесс сглаживания (период по умолчанию 5). Стратегия предлагает различные методы расчета скользящей средней, включая простую скользящую среднюю (SMA), экспоненциальную скользящую среднюю (EMA), сглаженную скользящую среднюю (SMMA), взвешенную скользящую среднюю (WMA) и объемную взвешенную скользящую среднюю (VWMA).

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

  1. Ясный и простой механизм генерации сигнала, легкий для понимания и реализации
  2. Эффективное уменьшение ложных сигналов посредством вторичного сглаживания
  3. Многочисленные методы расчета скользящей средней, доступные для различных рыночных характеристик
  4. Гибкая конфигурация параметров для различных рыночных циклов
  5. Ясная структура кода, легкая в обслуживании и расширении
  6. Сильные возможности отслеживания тенденций

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

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

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

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

Резюме

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


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

//@version=5
strategy("Moving Average 1.0 Strategy", overlay=true)

// Input for Moving Average Length
len = input.int(9, minval=1, title="Length")
src = input(close, title="Source")
offset = input.int(title="Offset", defval=0, minval=-500, maxval=500)

// Calculate the Moving Average
out = ta.sma(src, len)

// Plot the Moving Average
plot(out, color=color.blue, title="MA", offset=offset)

// Function to choose the type of moving average
ma(source, length, type) =>
    switch type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "SMMA (RMA)" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)

// Input for Smoothing Method and Length
typeMA = input.string(title="Method", defval="SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="Smoothing")
smoothingLength = input.int(title="Smoothing Length", defval=5, minval=1, maxval=100, group="Smoothing")

// Calculate the Smoothing Line
smoothingLine = ma(out, smoothingLength, typeMA)

// Plot the Smoothing Line
plot(smoothingLine, title="Smoothing Line", color=color.rgb(120, 66, 134, 35), offset=offset)

// Strategy Logic
if (ta.crossover(close, smoothingLine))
    strategy.entry("Buy", strategy.long)

if (ta.crossunder(close, smoothingLine))
    strategy.entry("Sell", strategy.short)





Связанные

Больше