
Эта стратегия основана на движущихся средних показателях Hull и является типичной стратегией для отслеживания тенденций.
Эта стратегия использует Hull Moving Average в качестве основного технического показателя. Hull Moving Average был предложен американским трейдером Аланом Халлом в 2005 году и является улучшением на основе движущихся средних, используя функцию квадратного корня, уменьшающую отсталость движущихся средних.
В частности, Hull Moving Average включает в себя две средние величины, одну из которых является MA ((n) для периода n, а другую - MA ((n/2) для периода n/2. Разница между двумя средними величинами образует кривую разрыва Hull, а затем Hull Curve вычисляет свою собственную среднюю величину, получая кривую Hull.
Когда Hull-кривая поднимается, на короткосрочной скользящей средней линии наносится долгосрочная скользящая средняя, чтобы вызвать многосигнал; когда Hull-кривая падает, на короткосрочной скользящей средней линии наносится долгосрочная скользящая средняя, чтобы вызвать пустой сигнал.
Эта стратегия устанавливает период Hull n на 16, рассчитывает n/2=8 промежуточных скользящих средних, n=16 промежуточных скользящих средних, и вычисляет разницу между ними по кривой Hull, а затем вычисляет собственную n=4 промежуточные скользящие средние по кривой Hull (взять квадратный корень n=4).
По сравнению с обычной скользящей средней, Hull имеет следующие преимущества:
Снижение задержки. Используя функцию квадратного корня, кривая Hull ближе к цене, что позволяет быстрее улавливать ценовые переводы.
Уменьшение ложных пересечений. Традиционные скользящие средние имеют тенденцию генерировать больше ложных пересечений, в то время как кривая Халла может отфильтровывать некоторые шумы, чтобы избежать ненужных сделок.
меньше параметров. Кривая Hull требует только один из n параметров для удобства оптимизации, в то время как двулинейная система требует оптимизации двух параметров.
Настраиваемость: n-значение кривой корпуса может быть скорректировано в зависимости от рынка и может быть настроено на определенный период для различных сортов.
Сильная систематичность. Сильная систематичность кривой корпуса, избегающая ручного выбора, следующая согласованности механической торговой системы.
Несмотря на преимущества системы Hull по сравнению с системами сдвижных средних, существуют следующие риски:
Ограничения самой стратегии отслеживания трендов. Система Hull, как стратегия отслеживания трендов, может быть повреждена в случае резкого изменения тренда.
Частые транзакции. Быстрая реакция на кривую Hull увеличивает частоту транзакций, что приводит к чрезмерным транзакциям.
parameters склонны к переоптимизации. Есть только один параметр, который может привести к переоптимизации, и это - риск кривой fitting.
Эффективность варьируется в зависимости от разновидности. Система Hull не работает хорошо для некоторых разновидностей с высокой волатильностью и требует корректировки параметров для разновидности.
Основываясь на ограничениях вышеупомянутой стратегии Hull Moving Average, можно оптимизировать следующие аспекты:
В сочетании с дополнительными показателями фильтрации торговых сигналов, чтобы избежать ложных прорывов. Можно присоединиться к MACD, KD и другие показатели, чтобы судить о тенденции.
Добавление стратегий сдерживания убытков, контроль одиночных убытков. Например, установка мобильного сдерживания или подвешенного сдерживания убытков
Выбор оптимальных параметров n, чтобы избежать переоптимизации. Можно использовать метод ходового анализа для оптимизации прокрутки.
Параметры динамической оптимизации в сочетании с технологиями машинного обучения. Наилучшие значения параметров прогнозирования n с использованием моделей, таких как RNN.
Оптимизация параметров разновидностей. Использование машинного обучения для оптимизации параметров различных разновидностей.
Оптимизация управления позициями, снижение частоты торгов. Можно использовать такие методы, как закон о фиксированной доле.
Hull Moving Average является типичной стратегией для отслеживания тенденций. У нее есть преимущества по сравнению с Moving Average, но есть и проблемы с переоптимизацией, частыми сделками и т. Д. Мы можем улучшить эту стратегию методами оптимизации параметров, стратегии остановки убытков, управления позициями и т. Д.
/*backtest
start: 2023-10-25 00:00:00
end: 2023-11-01 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=3
strategy(title = "Noro's HullMA Strategy", shorttitle = "HullMA str", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
n = input(title = "HullMA period", defval=16)
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//HullMA
n2ma=2*wma(close,round(n/2))
nma=wma(close,n)
diff=n2ma-nma
sqn=round(sqrt(n))
n2ma1=2*wma(close[1],round(n/2))
nma1=wma(close[1],n)
diff1=n2ma1-nma1
sqn1=round(sqrt(n))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
c=n1>n2?green:red
ma=plot(n1,color=c)
//Trading
lot = 0.0
lot := strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]
if n1 > n2
strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
if n1 < n2
strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)
if true
strategy.close_all()