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

Автор:Чао Чжан, Дата: 2023-09-28 15:50:01
Тэги:

Обзор

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

Логика стратегии

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

  1. Вычислить выбранную скользящую среднюю, которая может быть простой скользящей средней (SMA), экспоненциальной скользящей средней (EMA), взвешенной скользящей средней (WMA) или линейной регрессионной средней.

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

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

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

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

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

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

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

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

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

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

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

  4. Цветение свечей интуитивно отображает изменения направления тренда как визуальное пособие.

  5. Гибкость выбора различных типов скользящих средних.

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

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

Риски

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

  1. Отставание скользящей средней само по себе влияет на своевременное фиксирование точек преломления.

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

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

  4. На колеблющихся рынках может возникнуть большое количество коротких торговых сигналов.

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

  6. Когда рынок резко меняется, сам индикатор скользящей средней также быстро меняется, с большей вероятностью генерирования ложных сигналов.

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

Решения:

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

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

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

  4. Увеличить диапазон стоп-лосса для хеджирования для контроля потерь.

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

Руководство по оптимизации

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

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

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

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

  4. Добавить механизм стоп-лосса для контроля потерь от одной сделки.

  5. Испытать результаты оптимизации параметров на различных сортах и скорректировать параметры в соответствии с различными сортами торговли.

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

  7. Попробуйте открыть позиции, когда скользящая средняя действительно прорвется.

  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)

Больше