Стратегия торговли по инерции с количественным двуфакторным обратным движением

Автор:Чао Чжан, Дата: 2024-01-12 14:38:02
Тэги:

img

Обзор

Стратегия торговли количественной инерцией с обратным движением двух факторов - это количественная стратегия торговли, которая сочетает в себе сигналы обратного движения цен и сигналы инерции рынка.

Принципы

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

  1. Часть обмена цены принимает идею, предложенную Ульфом Дженсеном в его книге, в частности: когда цена закрытия непрерывно повышается в течение 2 дней, а 9-дневный медленный стохастический показатель ниже 50, перейдите в длинный; когда цена закрытия непрерывно падает в течение 2 дней, а 9-дневный быстрый стохастический показатель выше 50, перейдите в короткий.

  2. Часть инерции рынка использует индекс относительной волатильности (RVI). Значение этого показателя колеблется от 0 до 100. Выше 50 указывает на долгосрочную тенденцию рынка вверх; ниже 50 указывает на долгосрочную тенденцию рынка вниз.

В целом, эта стратегия объединяет сигналы переворота цен и сигналы инерции рынка, чтобы окончательно определить текущее направление рынка.

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

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

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

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

К основным рискам этой стратегии относятся:

  1. Риск того, что сигналы обратного движения будут идентифицированы неточно.

  2. Риск того, что сигналы инерции генерируют неправильные сигналы.

  3. Риск упущенных торговых возможностей из-за плохого выравнивания времени двойного фактора сигналов.

Кроме того, стратегии реверсии подвергаются повышенному риску потерь на трендовых рынках.

Руководство по оптимизации

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

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

  2. Оптимизировать параметр сглаживания индикатора RVI для повышения точности оценки инерции.

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

  4. Включите механизмы остановки потери.

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

Резюме

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


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 27/11/2020
// 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
// The inertia indicator measures the market, stock or currency pair momentum and 
// trend by measuring the security smoothed RVI (Relative Volatility Index). 
// The RVI is a technical indicator that estimates the general direction of the 
// volatility of an asset.
// The inertia indicator returns a value that is comprised between 0 and 100. 
// Positive inertia occurs when the indicator value is higher than 50. As long as 
// the inertia value is above 50, the long-term trend of the security is up. The inertia 
// is negative when its value is lower than 50, in this case the long-term trend is 
// down and should stay down if the inertia stays below 50.
//
// You can change long to short in the Input Settings
// 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

Inertia(Period, Smooth) =>
    pos = 0.0
    nU = 0.0
    nD = 0.0
    xPrice = close
    StdDev = stdev(xPrice, Period)
    d = iff(close > close[1], 0, StdDev)
    u = iff(close > close[1], StdDev, 0)
    nU := (13 * nz(nU[1],0) + u) / 14
    nD := (13 * nz(nD[1],0) + d) / 14
    nRVI = 100 * nU / (nU + nD)
    nRes = ema(nRVI, Smooth)
    pos :=iff(nRes > 50, 1,
    	   iff(nRes < 50, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Inertia Strategy", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Period = input(10, minval=1)
Smooth = input(14, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posInertia = Inertia(Period, Smooth)
pos = iff(posReversal123 == 1 and posInertia == 1 , 1,
	   iff(posReversal123 == -1 and posInertia == -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 )

Больше