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


Дата создания: 2023-12-18 10:24:08 Последнее изменение: 2023-12-18 10:24:08
Копировать: 0 Количество просмотров: 600
1
Подписаться
1621
Подписчики

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

Обзор

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

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

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

  1. 123 Стратегия переворота

Торговые сигналы, используемые в стратегии 123 reversal, заключаются в следующем: обратный курс закрытия на два дня подряд (то есть, цена закрытия на предыдущий день была высокой, а на следующий день - низкой; или цена закрытия на предыдущий день была низкой, а на следующий день - высокой), в то время как на 9 день случайная линия K находится ниже определенного уровня (то есть, по умолчанию 50), что создает сигнал к покупке; обратный курс закрытия на два дня подряд, в то время как на 9 день случайная линия K находится выше определенного уровня (то есть, по умолчанию 50), что создает сигнал к продаже.

  1. Стратегия ценового разрыва от средней

Стратегия отклонения цены от средней линии - это расчет процента отклонения цены от средней линии за указанный цикл (например, 14 дней). При отклонении меньше определенного уровня (например, 3%) создается сигнал покупки, а при отклонении больше определенного уровня (например, 0,54%) - сигнал продажи.

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

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

Двойная равнолинейная обратная прорывная стратегия сочетает в себе преимущества обратной стратегии и стратегии тренда.

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

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

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

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

Для 123-й обратной части два дня подряд не гарантируют полного обратного курса, это может быть ложным обратным курсом, вызванным краткосрочной реверсией. Кроме того, неправильная настройка параметров случайного индикатора может привести к снижению качества сигнала.

Неправильная настройка параметров средней линии может привести к задержке сигнала. Кроме того, разница между ценой и средней линией не позволяет определить направление тенденции, а только механически генерирует сигнал.

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

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

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

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

Вместе с тем, в рамках реализации этой стратегии планируется повысить уровень стабильности и прибыльности.

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

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

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 13/04/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
// Percent difference between price and MA
//
// 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


DBP_MA(Length,SellZone,BuyZone) =>
    pos = 0.0
    xSMA = sma(close, Length)
    nRes = abs(close - xSMA) * 100 / close
    pos:= iff(nRes < BuyZone, 1,
           iff(nRes > SellZone, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Difference between price and 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, "---- Difference between price and MA ----")
LengthDBP = input(14, minval=1)
SellZone = input(0.54, minval=0.01, step = 0.01)
BuyZone = input(0.03, minval=0.01, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDBP_MA = DBP_MA(LengthDBP,SellZone,BuyZone)
pos = iff(posReversal123 == 1 and posDBP_MA == 1 , 1,
	   iff(posReversal123 == -1 and posDBP_MA == -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 )