Эта стратегия сочетает в себе стратегию обратного тренда со стратегией статистической волатильности для получения более сильных торговых сигналов.
Стратегия состоит из двух частей:
Стратегия обратной тенденции
Стратегия статистической волатильности
Стратегия генерирует торговый сигнал только тогда, когда обе стратегии согласны с направлением (и длинные, и короткие).
Комбо-стратегия улучшает надежность сигнала путем объединения двух различных типов стратегий:
Уображение 123 точно отражает точки переворота тренда и не вводит в заблуждение одноразовыми скачками цен.
Статистическая волатильность сосредоточена на периодах высокой волатильности и высокой возможности, основанных на движении рынка за последний месяц.
Проверяя друг друга, обе стратегии объединяются, чтобы более точно улавливать ключевые переломные моменты рынка и генерировать более точные торговые сигналы.
123 модели не могут полностью избежать риска ложных прорывов. Нерегулярные сдвиги могут вызвать плохие сигналы.
Статистическая волатильность рассматривает только исторические данные и не может предсказать будущие изменения волатильности.
Обе стратегии сильно зависят от настройки параметров. Плохие настройки параметров могут значительно ухудшить качество сигнала.
Хотя в целом более надежный, комбинированный подход может пропустить некоторые сильные сигналы от отдельных стратегий.
Включить больше индикаторов, таких как полосы Боллинджера, KDJ, чтобы сформировать механизм голосования.
Добавьте алгоритмы машинного обучения для определения вероятности изменения тренда с использованием более исторических данных.
Установите пороги силы сигнала, чтобы отфильтровать шум.
Оптимизировать параметры для различных продуктов и временных рамок.
Добавить механизмы стоп-лосса для контроля риска комбинированной стратегии.
Стратегия улучшает качество сигнала путем сочетания стратегий обратного тренда и статистической волатильности, обеспечивая более точные торговые сигналы вокруг переломных моментов на рынке.
/*backtest start: 2023-09-23 00:00:00 end: 2023-10-23 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 31/07/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 indicator used to calculate the statistical volatility, sometime // called historical volatility, based on the Extreme Value Method. // Please use this link to get more information about Volatility. // // 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 SV(Length,TopBand,LowBand) => pos = 0.0 xMaxC = highest(close, Length) xMaxH = highest(high, Length) xMinC = lowest(close, Length) xMinL = lowest(low, Length) SqrTime = sqrt(253 / Length) Vol = ((0.6 * log(xMaxC / xMinC) * SqrTime) + (0.6 * log(xMaxH / xMinL) * SqrTime)) * 0.5 nRes = iff(Vol < 0, 0, iff(Vol > 2.99, 2.99, Vol)) pos := iff(nRes > TopBand, 1, iff(nRes < LowBand, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Statistical Volatility", 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, "---- Statistical Volatility ----") LengthSV = input(30, minval=1) TopBand = input(0.005, step=0.001) LowBand = input(0.0016, step=0.001) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posSV = SV(LengthSV,TopBand,LowBand) pos = iff(posReversal123 == 1 and posSV == 1 , 1, iff(posReversal123 == -1 and posSV == -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 )