Комбинированная количественная стратегия, основанная на развороте и относительной силе


Дата создания: 2023-12-13 17:17:10 Последнее изменение: 2023-12-13 17:17:10
Копировать: 0 Количество просмотров: 377
1
Подписаться
1213
Подписчики

Комбинированная количественная стратегия, основанная на развороте и относительной силе

Обзор

Эта стратегия первоначально была объединена с реверсивной стратегией, предложенной Ульфом Дженсеном на странице 183 в его книге “Как я тройную сумму на фьючерсных рынках”, и сравнительным показателем относительной силы, чтобы получить более сильный сигнал. Эта комбинационная стратегия называется комбинационная количественная стратегия, основанная на реверсии и относительной силе.

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

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

Первая часть - это стратегия реверса. Эта стратегия выполняется при следующих условиях: цена закрытия за последние два дня непрерывно повышалась, и на 9 день стохастическая медленная линия находилась ниже 50. Условие занижения: цена закрытия за последние два дня непрерывно падала, и на 9 день стохастическая быстрая линия находилась выше 50.

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

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

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

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

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

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

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

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

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

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

  1. Тестирование большего количества обратных факторов в поисках более эффективной стратегии обратного обращения. В настоящее время используется только простая N-дневная новая высокая / новая низкая статистическая стратегия.

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

  3. Увеличение стратегии стоп-лосса. В настоящее время в этой стратегии нет установки стоп-лосса, а увеличение разумного стоп-лосса позволяет контролировать риск потери.

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

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

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

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 30/10/2019
// 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
// Comparative Relative Strength Strategy for ES
//
// 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

CRS(a, b, len, BuyBand, SellBand, CloseBand) =>
    pos = 0.0
    as = security(a, timeframe.period, close) 
    bs = security(b, timeframe.period, close) 
    nRes = sma(as/bs, len)
    pos := iff(nRes > BuyBand, 1,
	         iff(nRes < SellBand, -1,
	          iff(pos[1] == 1 and nRes < CloseBand, 0,
    	       iff(pos[1] == -1 and nRes > CloseBand, 0, nz(pos[1], 0)))))
    pos

strategy(title="Combo Backtest 123 Reversal & Comparative Relative Strength", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
a = syminfo.tickerid 
b = input("BTC_USDT:swap", type=input.symbol) 
LengthCRS = input(10) 
BuyBand = input(0.9988, step = 0.0001)
SellBand = input(0.9960, step = 0.0001)
CloseBand = input(0.9975, step = 0.0001)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posCRS = CRS(a, b, LengthCRS, BuyBand, SellBand, CloseBand)
pos = iff(posReversal123 == 1 and posCRS == 1 , 1,
	   iff(posReversal123 == -1 and posCRS == -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 )