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


Дата создания: 2024-01-05 13:48:07 Последнее изменение: 2024-01-05 13:48:07
Копировать: 0 Количество просмотров: 673
1
Подписаться
1621
Подписчики

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

Обзор

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

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

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

  1. h1 и l1 составляют систему подвижных средних с восходящим отслеживанием. h1 является простой подвижной средней с самой высокой ценой, показывающей тенденцию рынка вверх; l1 - это низкая траектория, составленная из h1 минус значение ATR.

  2. h2 и l2 составляют движущуюся среднюю систему для слежения вниз. h2 - это простая движущаяся средняя по наименьшей цене, которая представляет собой нижнюю полосу рыночной тенденции; l2 - это верхняя полоса, составленная из h2 и ATR.

Использование системы двойных треков позволяет более точно определить переломные моменты тренда, отфильтровывая часть шумовых сделок. В то же время, значения ATR используются для установления уровня остановки и остановки, чтобы контролировать риск-прибыль на каждый пункт.

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

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

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

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

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

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

Ответ:

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

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

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

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

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

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

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

//@version=4
strategy("I Like Winners And Love Loosers!", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

highest_length = input(200, type=input.integer, minval=1, title="Highest Length")
highest_average = input(10, type=input.integer, minval=1, title="Highest Average Length")

lowest_length = input(200, type=input.integer, minval=1, title="Lowest Length")
lowest_average = input(10, type=input.integer, minval=1, title="Lowest Average Length")

atr_length = input(14, type=input.integer, minval=1, title="ATR Length")
atr_multiplier = input(2, type=input.integer, minval=1, title="ATR Multiplier")
a = atr(atr_length) * atr_multiplier

h1 = sma(highest(high, highest_length), highest_average)
l1 = h1 - a

h2 = sma(lowest(low, lowest_length), lowest_average)
l2 = h2 + a

buy1_signal = crossover(close, h1)
sell1_signal = crossunder(close, l1)
strategy.entry("Buy", strategy.long, when=buy1_signal)
strategy.close("Buy", when=sell1_signal)

buy2_signal = crossunder(close, h2)
sell2_signal = crossover(close, l2)
strategy.entry("Sell", strategy.short, when=buy2_signal)
strategy.close("Sell", when=sell2_signal)

y1 = plot(h1, title="H1", color=color.green, transp=50, linewidth=2)
y2 = plot(l1, title="L1", color=color.red, transp=50, linewidth=2)
y3 = plot(h2, title="H2", color=color.green, transp=50, linewidth=2)
y4 = plot(l2, title="L2", color=color.red, transp=50, linewidth=2)

fill(y1,y2,color=color.green)
fill(y3,y4,color=color.red)