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


Дата создания: 2024-02-04 15:44:54 Последнее изменение: 2024-02-04 15:44:54
Копировать: 0 Количество просмотров: 575
1
Подписаться
1617
Подписчики

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

Обзор

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

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

Эта стратегия основана на следующих принципах:

  1. Используйте скользящие средние показатели для определения направления общей тенденции. Длина цикла по умолчанию составляет 200 K-линий.
  2. Вычислите средний реальный диапазон колебаний последних 10 K-линий.
  3. При закрытии цены выше скользящего среднего + среднего истинного диапазона колебаний скольжение определяется как тенденция к повышению.
  4. При закрытии цены ниже скользящей средней - средней реальной диапазона колебаний - оценивается как нисходящая тенденция.
  5. В восходящем тренде - больше, в нисходящем - меньше.
  6. По умолчанию, стратегия использует скользящую среднюю для сдерживания. Также можно выбрать скользящую среднюю для сдерживания в обратном направлении ± средний реальный диапазон колебаний.

Анализ преимуществ

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

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

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

Однако есть и потенциальные риски этой стратегии:

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

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

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

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

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

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

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Inkedlau

//@version=5
strategy('Swing Trend Strategy', overlay=true, pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=100, initial_capital=1000, commission_value=0.1)

use_short = input.bool(false, 'Open Short Positions?')
exit_type = input.bool(true, 'Exit trade on Moving Average Cross?')
src = input.source(close, 'Source')
len = input.int(200, 'Trend Length')
ma_type = input.string('ema', 'Moving Average Type', options=['sma', 'ema', 'rma', 'wma', 'vwma'], tooltip='Select the type of Moving Average to use to calculate the Trend')
atr_multiplier = input.float(1., 'ATR Threshold', step=0.5, tooltip='Filter the ranging market using the Average True Range')

// ----------------------- DESCRIPTION -----------------------
// THIS SCRIPT IS A TREND FOLLOWING SYSTEM THAT USES A COMBINATION OF MOVING AVERAGE AND AVERAGE TRUE RANGE
// TO SPOT THE TRENDS AND ENTER THE MARKET ACCODINGLY.
// THE MARKET IS CONSIDERED IN AN UPTREND WHEN THE PRICE CLOSES ABOVE THE MOVING AVERAGE + THE AVERAGE TRUE RANGE OF THE LAST 10 PERIODS
// THE MARKET IS CONSIDERED IN AN DOWNTREND WHEN THE PRICE CLOSES BLOW THE MOVING AVERAGE - THE AVERAGE TRUE RANGE OF THE LAST 10 PERIODS
// BY DEFAULT, THE STRATEGY WILL ENTER LONG WHEN AN UPTREND IS SPOTTED, THEN CLOSES WHEN THE PRICE CLOSES BELOW THE MOVING AVERAGE
// THE STRATEGY WILL ENTER SHORT WHEN A DOWNTREND IS SPOTTED, THEN CLOSES WHEN THE PRICE CLOSES ABOVE THE MOVING AVERAGE

// ------------------ INDICATORS CALCULATION------------------
my_ma()=>
    ma = close
    if ma_type == 'sma'
        ma := ta.sma(src, len)
    if ma_type == 'ema'
        ma := ta.ema(src, len)
    if ma_type == 'rma'
        ma := ta.rma(src, len)
    if ma_type == 'wma'
        ma := ta.wma(src, len)
    if ma_type == 'vwma'
        ma := ta.vwma(src, len)
    ma

trend = my_ma()
atr = ta.atr(10)
uptrend = trend + atr * atr_multiplier
downtrend = trend - atr * atr_multiplier

// ---------------- ENTRY AND EXIT CONDITIONS ----------------

open_long = strategy.position_size == 0 and src > uptrend
close_long = exit_type ? strategy.position_size > 0 and src < trend : strategy.position_size > 0 and src < downtrend

open_short = use_short and strategy.position_size == 0 and src < downtrend
close_short = exit_type ? strategy.position_size < 0 and src > trend : strategy.position_size < 0 and src > uptrend

strategy.entry('long', strategy.long, when=open_long)
strategy.close('long', when=close_long)

strategy.entry('short', strategy.short, when=open_short)
strategy.close('short', when=close_short)


// ------------------ PLOTTING AND COLORING ------------------
tcolor = src > uptrend ? color.green : src < downtrend ? color.red : na

ptrend = plot(trend, color=color.blue, linewidth=1)
puptrend = plot(uptrend, color=color.green, linewidth=1)
pdowntrend = plot(downtrend, color=color.red, linewidth=1)
pclose = plot(close, color=na)

fill(puptrend, pclose, color=close > uptrend ? color.green : na, transp = 90)
fill(pdowntrend, pclose, color=close < downtrend ? color.red : na, transp = 90)