Стратегия Fusion сочетает в себе стратегию 123 обращения и стратегию высокого низкого прорыва в количественной торговой системе. путем синтеза индикаторных сигналов в разные временные рамки, она направлена на достижение многовременного преимущества капитала и создание избыточной доходности в среднесрочной и долгосрочной перспективе.
Стратегия "Фьюзия" состоит из двух компонентов:
123 Стратегия отмены
Эта стратегия возникла из идеи на стр. 183 книги
Стратегия высокого низкого выхода Эта стратегия идентифицирует торговые сигналы путем обнаружения ценовых прорывов за предыдущие высокие/низкие уровни в разные периоды времени. Она рассчитывает самый высокий и самый низкий минимум за текущий и предыдущие периоды и генерирует сигналы покупки, когда цена превышает максимум, и сигналы продажи, когда цена превышает минимум. Преимущество этой стратегии заключается в ее способности идентифицировать изменения в моделях тренда в более высокие временные рамки, позволяя более раннее вхождение.
Стратегия Fusion объединяет сигналы из двух вышеперечисленных стратегий и генерирует фактические торговые сигналы только тогда, когда направления сигналов выравниваются.
Многочасовой синтез улучшает точность сигнала Интеграция ежедневных и более длительных временных паттернов повышает точность генерации торговых сигналов, избегая отвлечения от краткосрочных рыночных шумов.
Полностью использует суждение о перекуплении/перепродаже Stochastic Использование индикатора Stochastic Slow предотвращает стремление к покупке в перекупленных зонах. Индикатор Stochastic Fast предотвращает стремление к продаже в перепроданных зонах. Необходимые потери сокращаются.
Своевременное обнаружение тенденций, снижение упущенных возможностей Стратегия высокого низкого прорыва позволяет выявить начало тренда в более высокие временные рамки раньше, уменьшая упущенные торговые возможности.
Гибкая оптимизация с несколькими подстратегиями С несколькими подстратегиями огромное пространство оптимизации позволяет настраивать параметры подстратегий или вводить новые, чтобы сделать стратегию более стабильной и надежной.
Простая и понятная логика Простая структура и логика делают стратегию легкой для понимания, изменения и поддержания в будущем.
Многочасовой синтез вызывает задержку сигнала Хотя точность улучшается, объединение сигналов в разные временные рамки вызывает задержку и может упустить краткосрочные торговые возможности.
123 модели не могут идентифицировать более длительные временные колебания тренда Стратегия 123 отмены рассматривает только последние дни и упускает ключевые моменты отмены в более длительные временные рамки.
Неправильные параметры могут вызвать ложные сигналы Плохая настройка параметров стохастических и прорывных периодов может привести к чрезмерным ложным сигналам.
Чисто техническая, слабая адаптивность к экстремальным явлениям Без учета основных принципов, стратегия плохо адаптируется к событиям черного лебедя.
Соответствующие решения:
Сократить расчетные периоды должным образом, чтобы уменьшить задержку.
Попробуйте использовать более долгосрочные показатели или модели в качестве фильтров.
Оптимизируйте параметры и тщательно проверяйте прочность в обратных тестах.
Подумайте о включении фундаментальных факторов для фильтрации сигнала.
Проверка и оптимизация параметров подстратегий устойчивости.
Включите дополнительные сигналы, такие как фундаментальные показатели, денежный поток и т.д.
Введите стоп-лосс, чтобы ограничить максимальную потерю на одну сделку.
Для улучшения адаптивности, тонко настройте параметры для конкретных продуктов.
Помощь с моделями машинного обучения.
В целом, стратегия Fusion сочетает в себе преимущества технических индикаторов с несколькими временными рамками, направленные на более точную и своевременную генерацию сигнала. По сравнению со стратегиями с одним индикатором, она имеет превосходную способность обнаружения тенденций и более надежное производство сигнала. Но она также страдает от задержек и недостаточной адаптивности к экстремальным событиям. Будущие улучшения могут произойти от большего количества вспомогательных инструментов, лучшей оптимизации параметров и повышения стабильности и прибыльности.
/*backtest start: 2023-10-10 00:00:00 end: 2023-11-09 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 25/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 // This script shows a high and low period value. // Width - width of lines // SelectPeriod - Day or Week or Month and etc. // LookBack - Shift levels 0 - current period, 1 - previous and etc. // // 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 HLL(LookBack, SelectPeriod) => pos = 0.0 xHigh = security(syminfo.tickerid, SelectPeriod, high[LookBack]) xLow = security(syminfo.tickerid, SelectPeriod, low[LookBack]) vS1 = xHigh vR1 = xLow pos := iff(close > vR1, 1, iff(close < vS1, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & High and Low Levels", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- SelectPeriod = input(title="Resolution", type=input.resolution, defval="D") LookBack = input(1, minval=0) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posHLL = HLL(LookBack, SelectPeriod) pos = iff(posReversal123 == 1 and posHLL == 1 , 1, iff(posReversal123 == -1 and posHLL == -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 )