
Quant Dual Factor Reversal Inertia Trading Strategy - это стратегия количественного трейдинга, которая сочетает в себе сигналы обратного ценового отклонения и сигналы рыночной инерции. Эта стратегия сначала использует случайные индикаторы для реализации сигналов обратного ценового отклонения, а затем в сочетании с рыночными инерционными сигналами для показателей относительной волатильности, в конечном итоге для достижения торговых решений, управляемых двумя факторами.
Стратегия основана на двух основных направлениях:
Часть реверсии цены использует идеи, выдвинутые Ульфом Дженсеном в его книге, а именно: когда цена закрытия повышается в течение 2 дней подряд, а на 9 день индикатор Slow Stochastic ниже 50, делайте больше; когда цена закрытия падает в течение 2 дней подряд, а на 9 день индикатор Fast Stochastic выше 50, делайте пустое место.
Инерционная часть рынка использует показатель относительной волатильности (RVI). Значение показателя колеблется от 0 до 100, выше 50 означает повышение долгосрочной тенденции рынка; ниже 50 означает снижение долгосрочной тенденции рынка.
В совокупности, эта стратегия объединяет сигналы об обратном движении цены и сигналы рыночной инерции, в конечном итоге определяя текущее направление рынка. Когда оба сигнала совпадают, генерируются торговые сигналы.
Наибольшее преимущество этой стратегии заключается в том, что она сочетает в себе два основных метода торговли: реверсивный и трендовый. Реверсивные сигналы позволяют уловить краткосрочные коррективы и предоставляют возможности для торговли; инерционные сигналы обеспечивают эффективную фильтрацию шума, открывая позиции только при соответствии долгосрочной тенденции.
Кроме того, двойной факторный драйв улучшает качество сигнала, в то время как оптимизация параметров стохастического показателя и оптимизация плавности RVI также предоставляют пространство для оптимизации стратегии.
Основные риски этой стратегии:
Риск неточного распознавания обратного сигнала. Необходимо проверить, являются ли параметры разумными.
Инерционный сигнал рискует подавать ошибочный сигнал. Сами показатели RVI могут иметь задержку, требующую корректировки параметров сглаживания.
Неправильное сопоставление времени двуфакторного сигнала, риск упущенной возможности для торгов. Сопоставление при различных параметрах требует тестирования.
Кроме того, реверсионная стратегия может привести к увеличению убытков в условиях трендового рынка. Требуется строгое соблюдение правил стоп-лосса.
Эта стратегия может быть оптимизирована в следующих аспектах:
Оптимизация параметров стохастического индикатора, определение качества и своевременности обратного сигнала.
Оптимизация параметров сглаживания показателей RVI, повышение точности инерциальных суждений.
Тестируйте различные периоды хранения, чтобы определить оптимальный период хранения.
Присоединение к механизму остановки. Отслеживание различных точек остановки, чтобы найти оптимальное место для остановки.
Можно рассмотреть возможность добавления других факторов, таких как дифференцированный объем торгов, в результате чего формируется многофакторный драйв.
Количественная двойная обратная инерционная торговая стратегия комплексно учитывает обратные и трендовые факторы, использует стохастические показатели и 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 )