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

Автор:Чао Чжан, Дата: 2023-09-26 15:27:58
Тэги:

Обзор

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

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

Стратегия состоит из двух частей:

  1. 123 Стратегия отмены

Стратегия 123 возникает из книги Как я утроил свои деньги на фьючерсном рынке. Она основана на идее, что если цена закрытия падает с высокого до низкого уровня в течение 2 дней, а 9-дневный медленный стохастик ниже 50, это сигнализирует о обратной точке для длинного. Если цена закрытия повышается с низкого до высокого уровня в течение 2 дней, а 9-дневный быстрый стохастик выше 50, это сигнализирует о обратной точке для короткого.

  1. 2/20 Стратегия экспоненциальной скользящей средней

Эта стратегия использует 2/20 EMA для определения долгосрочной тенденции. Когда цена находится выше линии 2/20 EMA, она сигнализирует о восходящем тренде. Когда цена находится ниже линии 2/20 EMA, она сигнализирует о нисходящем тренде. Это отфильтровывает ложные прорывы.

Стратегия генерирует торговые сигналы только тогда, когда сигнал 123 обратного движения совпадает с сигналом 2/20 EMA.

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

Эта стратегия имеет следующие преимущества, объединяя краткосрочные изменения и долгосрочные тенденции:

  1. Захватывает высокие возможности получения прибыли от краткосрочных перемен

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

  1. Фильтр EMA 2/20 позволяет избежать рисков ложного прорыва

Фильтр EMA 2/20 устраняет сигналы против тренда, предотвращая плохие сделки во время фейкоутов.

  1. Двойные условия улучшают профиль риска и вознаграждения

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

  1. Ясная логика делает оптимизацию интуитивно понятной

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

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

Несмотря на преимущества, необходимо учитывать некоторые риски:

  1. Перемены могут не произойти.

Прошлые результаты не гарантируют будущие результаты.

  1. Тенденции могут расширяться

2/20 EMA не может полностью отфильтровать сильные трендовые рынки.

  1. Оптимизация параметров имеет решающее значение

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

  1. Долгосрочная эффективность неизвестна

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

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

Возможности для расширения

Некоторые способы дальнейшей оптимизации стратегии:

  1. Оптимизировать параметры обратного движения

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

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

Экспериментировать с различными параметрами MA или включать несколько проверок MA для более точной оценки тенденции.

  1. Добавить больше фильтров

Для уменьшения ложных сигналов и улучшения стабильности могут быть включены фильтры объема, волатильности и другие.

  1. Реализация динамической оптимизации

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

  1. Включить стратегии стоп-лосса

Интеллектуальные правила стоп-лосса помогают контролировать максимальное снижение и риск.

  1. Оптимизировать управление деньгами

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

Заключение

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


/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-25 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 06/08/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// This indicator plots 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos


EMA220(Length) =>
    pos = 0.0
    xPrice = close
    xXA = ema(xPrice, Length)
    nHH = max(high, high[1])
    nLL = min(low, low[1])
    nXS = iff((nLL > xXA)or(nHH < xXA), nLL, nHH)
    pos :=  iff(close > xXA and close > nXS , 1,
    	     iff(close < xXA and close < nXS, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & 2/20 Exponential MA", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- 2/20 Exponential MA ----")
LengthMA = input(20, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posEMA220 = EMA220(LengthMA)
pos = iff(posReversal123 == 1 and posEMA220 == 1 , 1,
	   iff(posReversal123 == -1 and posEMA220 == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1 ) 
    strategy.entry("Long", strategy.long)
if (possig == -1 )
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

Больше