Система Uhl MA - это адаптивная система перекрестного движения скользящих средних, предназначенная для преодоления недостатков традиционных систем MA. Она использует быстрые и медленные скользящие средние для генерации торговых сигналов, причем медленный MA является скорректированным MA (CMA), первоначально предложенным Андреасом Улом, а быстрый MA является скорректированным шагом тренда (CTS), который также основан на скорректированном MA. Система адаптивно регулирует параметры MA для достижения более надежных торговых сигналов.
В основе этой стратегии лежит вычисление линий Uhl MA и CTS. Линия Uhl MA является улучшением по сравнению с традиционной SMA, используя вариантность (VAR) и историческое квадратное отклонение (SECMA) для адаптивной корректировки веса между SMA и предыдущей CMA. Когда VAR меньше SECMA, больше веса на SMA, в противном случае больше веса на CMA. Это помогает отфильтровать какой-то шум и генерировать более плавный MA. Линия CTS использует аналогичный адаптивный расчет на основе цены SRC.
Логика кроссовера такая же, как и в традиционных системах MA. Сигнал покупки генерируется, когда CTS пересекается выше Uhl MA, и сигнал продажи, когда пересекается ниже. Это формирует адаптивную торговую систему MA.
По сравнению с традиционными системами кроссовера MA, самым большим преимуществом этой стратегии является использование адаптивных MA, которые могут отфильтровать какой-то шум и генерировать более надежные сигналы на рынках с ограниченным диапазоном.
Основной риск этой стратегии возникает из-за увеличения ложных сигналов на рынках диапазонов, поскольку МА являются индикаторами, следующими за трендом. Это во многом связано с адаптивным расчетом CMA, который сходится с ценовыми диапазонами при консолидации, генерируя ненужные сигналы. Правильное настройка параметров также является большой проблемой. Неправильные параметры могут привести к отсутствию хороших сделок или увеличению ложных сигналов.
Потенциальные оптимизации включают:
Улучшить расчет СМК, чтобы избежать конвергенции на различных рынках, используя, например, другие показатели.
Оптимизируйте параметры с помощью алгоритмов оптимизации, таких как генетические алгоритмы.
Ввести стоп-лосс для контроля одиночных потерь.
Добавить фильтры, использующие другие показатели, чтобы избежать переоценки в консолидации, такие как показатели волатильности, индекс RFM и т.д.
Оптимизировать управление рисками, включая размещение позиций, показатели риска для лучшего контроля общего риска.
Система Uhl MA является очень инновационной адаптивной стратегией перекрестного использования MA. По сравнению с традиционными стратегиями, динамические MA помогают уменьшить ложные сигналы и лучше улавливать тенденции. Но существуют ограничения на различных рынках. Дальнейшие улучшения методологии расчета и добавление фильтров имеют большой потенциал. Между тем, настройка параметров и контроль рисков также имеют решающее значение. В целом стратегия Uhl MA имеет хороший потенциал и исследовательскую ценность, достойную дальнейшего изучения.
[/trans]
/*backtest start: 2023-01-01 00:00:00 end: 2023-06-25 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © alexgrover //@version=4 strategy("Uhl MA System - Strategy Analysis") length = input(100),mult = input(1.),src = input(close) //---- out = 0., cma = 0., cts = 0. Var = variance(src,length) ,sma = sma(src,length) secma = pow(nz(sma - cma[1]),2) ,sects = pow(nz(src - cts[1]),2) ka = Var < secma ? 1 - Var/secma : 0 ,kb = Var < sects ? 1 - Var/sects : 0 cma := ka*sma+(1-ka)*nz(cma[1],src) ,cts := kb*src+(1-kb)*nz(cts[1],src) //---- if crossover(cts,cma) strategy.entry("Buy", strategy.long) if crossunder(cts,cma) strategy.entry("Sell", strategy.short) //---- cap = 50000 eq = strategy.equity rmax = 0. rmax := max(eq,nz(rmax[1])) //---- css = eq > cap ? #0cb51a : #e65100 a = plot(eq,"Equity",#2196f3,2,transp=0) b = plot(rmax,"Maximum",css,2,transp=0) fill(a,b,css,80)