Эта стратегия сочетает в себе фактор переворота цен и фактор импульса акций для построения двухфакторной модели для захвата возможностей, возникающих в результате краткосрочных переворотов и долгосрочного пребывания на рынке.
Стратегия состоит из двух частей:
123 Фактор обратной модели
Эта часть обнаруживает краткосрочные сигналы переворота цен путем изучения изменения цен закрытия за последние два дня. В частности, если вчерашняя цена закрытия ниже, чем за предыдущие два дня, и сегодняшняя цена закрытия выше, чем вчера, это может быть определено как бычий сигнал переворота цен.
Лагуер фильтрованный фактор RSI
Эта часть создает более чувствительный индикатор RSI с использованием фильтров Лагуэра. Чувствительность традиционных индикаторов RSI к изменениям цен относительно низкая.
В конечном счете, стратегия сочетает сигналы от обоих факторов, обеспечивая краткосрочные изменения в соответствии с общими рыночными тенденциями, с тем чтобы извлечь выгоду из возможностей ретрекшенса.
Наибольшее преимущество этой стратегии заключается в успешном сочетании факторов обратного движения и факторов тренда. Фактор обратного движения захватывает краткосрочные возможности отката после консолидации цен, в то время как фактор тренда гарантирует, что общий длинный/короткий уклон не меняется. По сравнению с автономными моделями обратного движения или импульса, эта двойная модель может улучшить точность длинных/коротких сигналов, снижая при этом ложные сигналы.
Кроме того, внедрение RSI Laguerre повышает чувствительность модели к изменениям цен, что особенно важно для высокочастотных торгов.
Основной риск, с которым эта стратегия сталкивается, заключается в возможности противоречивых сигналов от двух факторов. Особенно во время волатильных коррекций рынка, краткосрочные цены могут часто перегибаться, в то время как среднесрочные и долгосрочные тенденции также начинают смещаться. В таких случаях два типа сигналов могут легко не совпадать или испытывать задержки. Это приводит к неправильным сигналам стратегии и упущенным возможностям входа или ненужным потерям.
Кроме того, плохая конфигурация параметров также может привести к плохой эффективности стратегии. Параметры для технических индикаторов, относящихся к факторам обратного движения и тренда, должны быть отдельно оптимизированы и протестированы. Неправильные комбинации параметров могут значительно снизить эффективность стратегии.
Основные направления будущей оптимизации этой стратегии включают фильтрацию сигналов и выбор параметров. Больше условий фильтрации могут быть введены, чтобы вступить в силу при конфликте сигналов с двумя факторами, гарантируя, что сделки размещаются только в сценариях с высокой степенью достоверности. Это может резко уменьшить ложные сигналы.
Для выбора параметров можно использовать методы машинного обучения и научных экспериментов для систематического тестирования различных комбинаций параметров и получения оптимальной конфигурации.
Эта стратегия успешно объединила факторы обратного движения и тренда с помощью двухфакторной модели, чтобы извлечь выгоду из краткосрочных отклонений и среднесрочной и долгосрочной стойкости. Внедрение фильтрованного RSI Лагуэра также улучшает чувствительность модели к изменениям цен. Следующая фаза будет сосредоточена на фильтрации сигналов и оптимизации параметров для дальнейшего совершенствования стратегии.
/*backtest start: 2024-01-10 00:00:00 end: 2024-01-17 00:00:00 period: 5m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 21/01/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 // This is RSI indicator which is more sesitive to price changes. // It is based upon a modern math tool - Laguerre transform filter. // With help of Laguerre filter one becomes able to create superior // indicators using very short data lengths as well. The use of shorter // data lengths means you can make the indicators more responsive to // changes in the price. // // 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 LB_RSI(gamma,BuyBand,SellBand) => pos = 0.0 xL0 = 0.0 xL1 = 0.0 xL2 = 0.0 xL3 = 0.0 xL0 := (1-gamma) * close + gamma * nz(xL0[1], 1) xL1 := - gamma * xL0 + nz(xL0[1], 1) + gamma * nz(xL1[1], 1) xL2 := - gamma * xL1 + nz(xL1[1], 1) + gamma * nz(xL2[1], 1) xL3 := - gamma * xL2 + nz(xL2[1], 1) + gamma * nz(xL3[1], 1) CU = (xL0 >= xL1 ? xL0 - xL1 : 0) + (xL1 >= xL2 ? xL1 - xL2 : 0) + (xL2 >= xL3 ? xL2 - xL3 : 0) CD = (xL0 >= xL1 ? 0 : xL1 - xL0) + (xL1 >= xL2 ? 0 : xL2 - xL1) + (xL2 >= xL3 ? 0 : xL3 - xL2) nRes = iff(CU + CD != 0, CU / (CU + CD), 0) pos := iff(nRes > BuyBand, 1, iff(nRes < SellBand, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Laguerre-based RSI", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- gamma = input(0.5, minval=-0.1, maxval = 0.9) BuyBand = input(0.8, step = 0.01) SellBand = input(0.2, step = 0.01) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posLB_RSI = LB_RSI(gamma,BuyBand,SellBand) pos = iff(posReversal123 == 1 and posLB_RSI == 1 , 1, iff(posReversal123 == -1 and posLB_RSI == -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 )