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


Дата создания: 2024-01-22 17:26:04 Последнее изменение: 2024-01-22 17:26:04
Копировать: 0 Количество просмотров: 575
1
Подписаться
1617
Подписчики

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

Обзор

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

Стратегический принцип

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

Когда быстрая линия сверху пересекает медленную линию снизу, это означает, что рынок вступает в восходящую тенденцию, создавая сигнал покупки; когда быстрая линия снизу пересекает медленную линию сверху, это означает, что рынок вступает в нисходящую тенденцию, создавая сигнал продажи.

Стратегические преимущества

Эта стратегия имеет следующие преимущества:

  1. Основанная на равнолинейной конструкции, она эффективно устраняет шум рынка в краткосрочной перспективе.
  2. Применение стратегии двойной равномерности позволяет четко определить направление тенденции.
  3. Для оптимизации параметров можно настроить скоростной и среднелинейный циклы.
  4. С функцией отслеживания средне- и долгосрочных тенденций и краткосрочных корректировок.
  5. Правила простые, понятные, легко понятные и подходят для начинающих.

Анализ рисков

Однако эта стратегия также несет в себе некоторые риски:

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

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

Эта стратегия может быть оптимизирована в следующих аспектах:

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

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2023-01-21 00:00:00
end: 2024-01-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("EMA Strategy v2", shorttitle = "EMA Strategy v2", overlay=true, pyramiding = 3,default_qty_type = strategy.percent_of_equity, default_qty_value = 10)


// === Inputs ===
// short ma
maFastSource   = input(defval = close, title = "Fast MA Source")
maFastLength   = input(defval = 30, title = "Fast MA Period", minval = 1)

// long ma
maSlowSource   = input(defval = close, title = "Slow MA Source")
maSlowLength   = input(defval = 100, title = "Slow MA Period", minval = 1)

// invert trade direction
tradeInvert = input(defval = false, title = "Invert Trade Direction?")
// risk management
useStop     = input(defval = true, title = "Use Initial Stop Loss?")
slPoints    = input(defval = 0, title = "Initial Stop Loss Points", minval = 1)
useTS       = input(defval = true, title = "Use Trailing Stop?")
tslPoints   = input(defval = 0, title = "Trail Points", minval = 1)
useTSO      = input(defval = false, title = "Use Offset For Trailing Stop?")
tslOffset   = input(defval = 0, title = "Trail Offset Points", minval = 1)

// === Vars and Series ===
fastMA = ema(maFastSource, maFastLength)
slowMA = ema(maSlowSource, maSlowLength)

plot(fastMA, color=blue)
plot(slowMA, color=purple)

goLong() => crossover(fastMA, slowMA)
killLong() => crossunder(fastMA, slowMA)
strategy.entry("Buy", strategy.long, when = goLong())
strategy.close("Buy", when = killLong())

// Shorting if using
goShort() => crossunder (fastMA, slowMA)
killShort() => crossover(fastMA, slowMA)
//strategy.entry("Sell", strategy.short, when = goShort())
//strategy.close("Sell", when = killShort())

if (useStop)
    strategy.exit("XLS", from_entry ="Buy", stop = strategy.position_avg_price / 1.08 )
    strategy.exit("XSS", from_entry ="Sell", stop = strategy.position_avg_price * 1.58)