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

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

Автор:Чао Чжан, Дата: 2024-04-30 17:33:09
Тэги:М.А.SMA

img

Обзор

Эта стратегия использует два скользящих средних (MA) для генерации торговых сигналов. Когда короткосрочный MA пересекает длинносрочный MA, генерируется сигнал покупки; когда короткосрочный MA пересекает длинносрочный MA, генерируется сигнал продажи. Стратегия также устанавливает период торговли (8 утра до 20 вечера UTC) и цель прибыли (150 пунктов).

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

  1. Вычислить две скользящие средние с разными периодами (по умолчанию 5 и 20 периодов).
  2. Определить, пересекает ли кратковременный МО выше/ниже длительного МО, который служит сигналом покупки/продажи.
  3. Установите период торговли с 8 утра до 20 вечера по UTC и торгуйте только в течение этого периода времени.
  4. Определить, закрылись ли последние 4 свечи выше/ниже МА, чтобы подтвердить тенденцию.
  5. Если условия покупки/продажи выполнены, открыть позицию и установить целевую прибыль в 150 пунктов.

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

  1. Использование двух МА с разными периодами может эффективно отражать тенденции, подходящие для трендовых рынков.
  2. Установление периода торговли позволяет избежать торговли в периоды низкой ликвидности, снижая риск.
  3. Подтверждение тенденции путем проверки того, закрылись ли последние 4 свечи выше/ниже МО, может улучшить надежность сигнала.
  4. Установление фиксированной цели прибыли может эффективно зафиксировать прибыль и контролировать риск.

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

  1. На нестабильных рынках такая стратегия может часто вызывать ложные сигналы, что приводит к убыткам.
  2. Цель фиксированной прибыли может ограничивать потенциал прибыли стратегии.
  3. Стратегия не устанавливает стоп-лосс, который может представлять собой значительный риск при быстром переходе рынка.

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

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

Резюме

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


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

//@version=4
strategy("Moving Average Crossover Strategy", overlay=true)

// User-defined moving average periods
ma1Periods = input(5, title="First Moving Average Periods")
ma2Periods = input(20, title="Second Moving Average Periods")

// Calculate moving averages
ma1 = sma(close, ma1Periods)
ma2 = sma(close, ma2Periods)

// Plot moving averages
plot(ma1, color=color.red, linewidth=2, title="First Moving Average")
plot(ma2, color=color.blue, linewidth=2, title="Second Moving Average")

// Detect crossovers and crossunders
bullishCross = crossover(ma1, ma2)
bearishCross = crossunder(ma1, ma2)

// Define trading hours (8 AM to 2 PM UTC)
startHour = 8
endHour = 20
utcHour = hour(time, "UTC")
isMarketOpen = true

// Define profit target
profitTarget = 150

// Check if the price has closed above/below the MA for the past 4 bars
aboveMa = close[4] > ma1[4] and close[3] > ma1[3] and close[2] > ma1[2] and close[1] > ma1[1]
belowMa = close[4] < ma1[4] and close[3] < ma1[3] and close[2] < ma1[2] and close[1] < ma1[1]

// Create buy and sell signals
if (bullishCross and isMarketOpen and aboveMa)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Sell", "Buy", profit=profitTarget)
if (bearishCross and isMarketOpen and belowMa)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Cover", "Sell", profit=profitTarget)

// Plot shapes on crossovers
plotshape(series=bullishCross and isMarketOpen and aboveMa, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(series=bearishCross and isMarketOpen and belowMa, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")


Связанные

Больше