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

Стратегия торговли с несколькими скользящими средними

Автор:Чао Чжан, Дата: 2024-05-11 17:32:49
Тэги:SMAМ.А.

img

Обзор

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

Стратегия использует три простых скользящих средних (SMA): долгосрочные (200 периодов по умолчанию), среднесрочные (21 период по умолчанию) и краткосрочные (9 периодов по умолчанию). Сигнал покупки запускается, когда цена превышает долгосрочные и среднесрочные скользящие средние и пересекает краткосрочную скользящую среднюю, при условии отсутствия открытых позиций. Стратегия также устанавливает фиксированные точки стоп-прибыли и стоп-потерь для управления риском. Кроме того, все позиции закрываются в 17:00 каждый торговый день.

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

  1. Вычислить простые скользящие средние долгосрочные (по умолчанию 200 периодов), среднесрочные (по умолчанию 21 период) и краткосрочные (по умолчанию 9 периодов).

  2. Определить, стоит ли текущая цена выше долгосрочных и среднесрочных скользящих средних.

  3. Проверьте, не превышает ли текущая цена краткосрочную скользящую среднюю.

  4. Когда оба условия 2 и 3 выполнены, и нет открытых позиций, запускается сигнал покупки.

  5. После покупки устанавливайте фиксированные уровни стоп-прибыли и стоп-потери.

  6. Закрывать все позиции в 17:00 каждый торговый день.

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

  1. Простая и понятная: стратегия основана на скользящих средних, что делает ее простой для понимания и реализации.

  2. Следование тенденции: путем анализа ценовой позиции относительно скользящих средних различных периодов, стратегия эффективно фиксирует тенденции роста рынка.

  3. Контроль рисков: Стратегия включает фиксированные уровни стоп-прибыли и стоп-потери, что помогает управлять рисками для отдельных сделок.

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

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

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

  2. Рынки с перебоями: при переменчивых рыночных условиях частые перекрестные сигналы могут привести к не оптимальной эффективности стратегии.

  3. Риск скольжения: при высокой волатильности рынка, фиксированные уровни стоп-принашивания и стоп-потери могут не выполняться как предполагалось, что приводит к риску скольжения.

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

  1. Динамическая стоп-прибыль и стоп-потеря: динамически корректировать уровни стоп-прибыли и стоп-потерь на основе волатильности рынка или тенденции цен для оптимизации соотношения риск-прибыль.

  2. Фильтры трендов: включить дополнительные технические индикаторы, такие как ADX, чтобы подтвердить силу тренда и отфильтровать ложные сигналы на нестабильных рынках.

  3. Многоинструментальная адаптация: уточнение стратегии для адаптации к различным фьючерсным инструментам и характеристикам рынка.

  4. Управление деньгами: ввести более сложные правила управления деньгами, такие как размер позиций и контроль рисков, чтобы повысить надежность стратегии.

Резюме

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


/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Médias Móveis de MarcosJR", overlay=true)

// Inputs para data inicial e final
start_year = input.int(2020, title="Ano Inicial")
start_month = input.int(1, title="Mês Inicial")
start_day = input.int(1, title="Dia Inicial")

end_year = input.int(2020, title="Ano Final")
end_month = input.int(12, title="Mês Final")
end_day = input.int(31, title="Dia Final")

// Convertendo dia, mês e ano para timestamp
start_date = timestamp(start_year, start_month, start_day, 00, 00)
end_date = timestamp(end_year, end_month, end_day, 23, 59)

// Condição para verificar se a data está dentro do intervalo especificado
date_within_range = true

// Parâmetros para os períodos das médias móveis
ma_short_period = input.int(9, title="MA Curta")
ma_medium_period = input.int(21, title="MA Média")
ma_long_period = input.int(200, title="MA Longa")

// Definindo médias móveis
ma_short = ta.sma(close, ma_short_period)
ma_medium = ta.sma(close, ma_medium_period)
ma_long = ta.sma(close, ma_long_period)

// Plotando as médias móveis no gráfico com espessura aumentada
plot(ma_short, color=color.blue, title="MA Curta", linewidth=2)
plot(ma_medium, color=color.orange, title="MA Média", linewidth=2)
plot(ma_long, color=color.red, title="MA Longa", linewidth=2)

// Verificando se o preço está acima das médias móveis
above_ma_long = close > ma_long
above_ma_medium = close > ma_medium

// Verificando se o preço tocou na média móvel curta
touch_ma_short = ta.crossover(close, ma_short)

// Condições de compra
buy_condition = date_within_range and above_ma_long and above_ma_medium and touch_ma_short

// Sinais de entrada e saída de compra
var float entry_price = na
if (buy_condition and strategy.opentrades == 0) // Verifica se não há operações em andamento
    entry_price := close // Define o preço de entrada ao comprar

// Parâmetros para o tamanho do stop gain e stop loss em pontos
stop_gain_points = input.int(100, title="Stop Gain (pontos)", minval=1)
stop_loss_points = input.int(100, title="Stop Loss (pontos)", minval=1)

// Calcular o preço de saída alvo (Stop Gain) e de stop loss
target_price = entry_price + stop_gain_points * syminfo.mintick
stop_loss_price = entry_price - stop_loss_points * syminfo.mintick

// Sair da operação de compra quando o preço atingir o stop gain ou stop loss
if (strategy.position_size > 0)
    strategy.exit("Venda", "Compra", limit=target_price, stop=stop_loss_price)

// Sinais de entrada de compra
if (buy_condition and strategy.opentrades == 0) // Verifica se não há operações em andamento
    strategy.entry("Compra", strategy.long)

// Plotando setas de compra
plotshape(series=buy_condition, title="Sinal de Compra", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)

// Função para verificar se é 17:00 do mesmo dia
is_17_oclock_same_day = hour == 17 and minute == 0 and hour[1] < 17

// Sair de todas as operações às 17:00 do mesmo dia
if (is_17_oclock_same_day)
    strategy.close_all()


Связанные

Больше