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


Дата создания: 2024-01-15 12:35:29 Последнее изменение: 2024-01-15 12:35:29
Копировать: 0 Количество просмотров: 547
1
Подписаться
1617
Подписчики

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

Обзор

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

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

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

  1. Стратегия обратного трейдинга

Используйте две линии в индикаторе брин-лайна - %K и %D. Делайте больше, когда цена закрытия была ниже предыдущего дня два дня подряд, а линия %K была выше линии %D. Делайте пробел, когда цена закрытия была выше предыдущего дня два дня подряд, а линия %K была ниже линии %D.

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

20 дней и 20 дней*2 Двойная скользящая средняя. Торговый сигнал генерируется, когда цена пересекает двойную скользящую среднюю сверху вниз или снизу.

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

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

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

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

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

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

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

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

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

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

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

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

  4. Подробно протестировать эффективность стратегии в различных вариантах (акции, валюты, криптовалюты и т. д.), чтобы выбрать наиболее подходящий вариант.

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

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

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

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 12/04/2019
// This is combo strategies for get 
// a cumulative signal. Result signal will return 1 if two strategies 
// is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
//
// 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.
//
// Secon 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.
// Please, use it only for learning or paper trading. Do not for real trading.
//
// 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

EMA2_20(MA_Length, MA_xPrice) =>
    xXA = ema(MA_xPrice, MA_Length)
    nHH = max(high, high[1])
    nLL = min(low, low[1])
    nXS = iff((nLL > xXA)or(nHH < xXA), nLL, nHH)
    pos = 0.0
    pos := iff(nXS > close[1] , -1, iff(nXS < close[1] , 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal and 2/20 EMA", shorttitle="Combo Backtest", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
MA_Length = input(20, minval=1)
reverse = input(false, title="Trade reverse")
MA_xPrice = close
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posEMA2_20 = EMA2_20(MA_Length, MA_xPrice)
pos = iff(posReversal123 == 1 and posEMA2_20 == 1 , 1,
	   iff(posReversal123 == -1 and posEMA2_20 == -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 ? red: possig == 1 ? green : blue )