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


Дата создания: 2023-09-28 15:50:01 Последнее изменение: 2023-09-28 15:50:01
Копировать: 2 Количество просмотров: 670
1
Подписаться
1617
Подписчики

Обзор

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

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

Основная логика движущейся средней стратегии инверсии заключается в следующем:

  1. Для вычисления выбранного скользящего среднего, можно выбрать простое скользящее среднее SMA, показательное скользящее среднее EMA, весомое скользящее среднее WMA или линейное скользящее среднее.

  2. Оценить соотношение величины текущего циклического скользящего среднего с предыдущим циклическим скользящим средним. Если текущий скользящий средний выше предыдущего цикла, то присваивается значение 1, и наоборот присваивается значение 0。

  3. Записывается количество циклов, следующих вверх и следующих вниз. Если текущий цикл имеет скользящую среднюю выше предыдущего цикла, то число циклов вверх +1, число циклов вниз равно нулю; если текущий цикл имеет скользящую среднюю ниже предыдущего цикла, то число циклов вниз +1, число циклов вверх равно нулю.

  4. Когда количество последовательных циклов вверх или вниз превышает пользовательский определённый порог, выполняются соответствующие операции плюс-минус.

  5. В то же время, цвет столба K и цвет фона окрашиваются, чтобы визуально показать направление тенденции.

  6. Выборный график изменения скользящих средних, обозначенный переломными точками.

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

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

Стратегия обратного трейдинга в направлении движущейся средней имеет следующие преимущества:

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

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

  3. Можно настроить параметры скользящих средних и параметры статистических циклов, чтобы адаптироваться к различным видам и условиям.

  4. Интуитивное отображение изменения направления тренда на K-линии, формирующее визуальную помощь.

  5. Можно выбрать различные типы скользящих средних, имея гибкость.

  6. Нарисуйте кривую изменения скользящих средних, чтобы было ясно, происходит ли поворот.

  7. Правила простые, понятные, легко понятные и подходят для новичков.

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

Однако, есть определенные риски, связанные со стратегией обратной торговли в направлении движущейся средней:

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

  2. Принимая слишком много лишних решений, вы можете упустить возможность быстрее обратиться вспять.

  3. Слишком длинный продолжительный цикл может пропустить тренд, а слишком короткий - легко поддаться.

  4. В результате, в случае свершений, может быть создано большое количество пустых торговых сигналов.

  5. Определенный риск ложного сигнала существует, так как только направление движущейся средней не позволяет полностью определить истинное изменение тренда.

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

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

Решение проблемы:

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

  2. В сочетании с другими индикаторами, фильтрующие сигналы подтверждают обратный тренд.

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

  4. Увеличение арбитражного стоп-лосса и контроль убытков.

  5. Используются различные комбинации скользящих средних для повышения точности.

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

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

  1. Оптимизируйте параметры скользящих средних, тестируйте скользящие средние с различными длинами цикла, чтобы найти оптимальные параметры. Можно попробовать комбинацию из трех: SMA, EMA, WMA.

  2. В сочетании с другими вспомогательными показателями, такими как RSI, KD и т. д., повышается надежность сигнала.

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

  4. Добавление механизма хранения убытков, чтобы контролировать убытки от одной сделки.

  5. Тестирование эффективности оптимизации параметров различных сортов, корректировка параметров в зависимости от разных торговых сортов.

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

  7. Попытайтесь открыть позицию по методу “Breakout” и войти в нее, когда движущаяся средняя фактически прорвется.

  8. Повышение оценки направления общей тенденции, избежание обратной торговли.

  9. Улучшение графического оформления кривых, например, увеличение гладкости кривых.

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

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

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

//@version=2
strategy("Moving Average Consecutive Up/Down Strategy (by ChartArt)", overlay=true)

// ChartArt's Moving Average Consecutive Up/Down Strategy
//
// Version 1.0
// Idea by ChartArt on December 30, 2015.
//
// This strategy goes long (or short) if there are several
// consecutive increasing (or decreasing) moving average
// values in a row in the same direction.
//
// The bars can be colored using the raw moving average trend.
// And the background can be colored using the consecutive
// moving average trend setting. In addition a experimental
// line of the moving average change can be drawn.
//
// The strategy is based upon the "Consecutive Up/Down Strategy"
// created by Tradingview.


// Input
Switch1 = input(true, title="Enable Bar Color?")
Switch2 = input(true, title="Enable Background Color?")
Switch3 = input(false, title="Enable Moving Average Trend Line?")

ConsecutiveBars = input(4,title="Consecutive Trend in Bars",minval=1)

// MA Calculation
MAlen = input(1,title="Moving Average Length: (1 = off)",minval=1)
SelectMA = input(2, minval=1, maxval=4, title='Moving Average: (1 = SMA), (2 = EMA), (3 = WMA), (4 = Linear)')
Price = input(close, title="Price Source")
Current =
 SelectMA == 1 ? sma(Price, MAlen) :
 SelectMA == 2 ? ema(Price, MAlen) :
 SelectMA == 3 ? wma(Price, MAlen) :
 SelectMA == 4 ? linreg(Price, MAlen,0) :
 na
Last =
 SelectMA == 1 ? sma(Price[1], MAlen) :
 SelectMA == 2 ? ema(Price[1], MAlen) :
 SelectMA == 3 ? wma(Price[1], MAlen) :
 SelectMA == 4 ? linreg(Price[1], MAlen,0) :
 na

// Calculation
MovingAverageTrend = if Current > Last
    1
else
    0

ConsecutiveBarsUp = MovingAverageTrend > 0.5 ? nz(ConsecutiveBarsUp[1]) + 1 : 0
ConsecutiveBarsDown = MovingAverageTrend < 0.5 ? nz(ConsecutiveBarsDown[1]) + 1 : 0
BarColor = MovingAverageTrend > 0.5 ? green : MovingAverageTrend < 0.5 ? red : blue
BackgroundColor = ConsecutiveBarsUp >= ConsecutiveBars ? green : ConsecutiveBarsDown >= ConsecutiveBars ? red : gray
MovingAverageLine = change(MovingAverageTrend) != 0 ? close : na

// Strategy
if (ConsecutiveBarsUp >= ConsecutiveBars)
    strategy.entry("ConsUpLE", strategy.long, comment="Bullish")
    
if (ConsecutiveBarsDown >= ConsecutiveBars)
    strategy.entry("ConsDnSE", strategy.short, comment="Bearish")

// output
barcolor(Switch1?BarColor:na)
bgcolor(Switch2?BackgroundColor:na)
plot(Switch3?MovingAverageLine:na, color=change(MovingAverageTrend)<0?green:red, linewidth=4)
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)