Рекурсивная средняя скользящая тенденция в сочетании со стратегией 123 обратной модели

Автор:Чао Чжан, Дата: 2024-02-21 16:02:32
Тэги:

img

Обзор

Эта стратегия объединяет рекурсивную скользящую среднюю тенденцию и 123 обратный шаблон в составный сигнал для повышения стабильности и рентабельности.

Принцип

123 Образец обратного движения

Эта часть вдохновлена книгой "Как я утроил свои деньги на фьючерсном рынке" Ульфа Дженсена. Он покупает, когда цена закрытия растет в течение двух дней подряд, а 9-дневная STO SLOWK ниже 50. Он продает, когда цена закрытия падает в течение двух дней подряд, а 9-дневная STO FASTK выше 50.

Рекурсивная средняя движущаяся тенденция

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

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

Комбинированная стратегия использует сильные стороны обеих стратегий, чтобы избежать ограничений одной. 123 Reversal Pattern может поймать основные тенденции, когда происходит перелом цены. Рекурсивный средний движущийся тренд может более точно оценить направление движения цены. Вместе они образуют более сильные композитные сигналы.

Риски и решения

  • 123 Reversal Pattern может генерировать ложные сигналы из-за краткосрочных колебаний цен.
  • Рекурсивный средний движущийся тренд может медленно реагировать на внезапные события.
  • Одно из решений заключается в том, чтобы открывать позиции только тогда, когда появляются двойные сигналы, или следовать только одному сигналу на основе рыночных условий.

Руководство по улучшению

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

Заключение

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


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 01/06/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
// Taken from an article "The Yen Recused" in the December 1998 issue of TASC, 
// written by Dennis Meyers. He describes the Recursive MA in mathematical terms 
// as "recursive polynomial fit, a technique that uses a small number of past values 
// of the estimated price and today's price to predict tomorrows price."
// Red bars color - short position. Green is long.
//
// 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


RMTA(Length) =>
    pos = 0.0
    Bot = 0.0
    nRes = 0.0
    Alpha = 2 / (Length+1)
    Bot := (1-Alpha) * nz(Bot[1],close) + close
    nRes := (1-Alpha) * nz(nRes[1],close) + (Alpha*(close + Bot - nz(Bot[1], 0)))
    pos:= iff(nRes > close[1], -1,
    	     iff(nRes < close[1], 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Recursive Moving Trend Average", 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, "---- Recursive Moving Trend Average ----")
LengthRMTA = input(21, minval=3)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posRMTA = RMTA(LengthRMTA)
pos = iff(posReversal123 == 1 and posRMTA == 1 , 1,
	   iff(posReversal123 == -1 and posRMTA == -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 )

Больше