Стратегия прорыва индикатора HMA Momentum


Дата создания: 2024-01-04 15:34:52 Последнее изменение: 2024-01-04 15:34:52
Копировать: 0 Количество просмотров: 805
1
Подписаться
1621
Подписчики

Стратегия прорыва индикатора HMA Momentum

Обзор стратегии

Эта стратегия использует HMA (Hull Moving Average) и технический анализ K-линии для динамического определения цены и совершения прорывных операций.

Третье: принципы стратегии.

  1. Принципы показателя HMA

Индекс HMA был создан в 2005 году Аланом Халлом с целью создания как чувствительной, так и гладкой скользящей средней.

(1) Вычислить среднее значение DMA двойного сглаживания за полцикла

(2) Вычислить средний SMA за весь цикл

(3) Расчет разницы DIFF между DMA и SMA

(4) Вычислите SQRT (циклический) средний цикл DIFF, получив HMA

  1. Торговые стратегии

Стратегия сигнализирует о взрывах вверх и вниз в HMA, в сочетании с взрывами на части K-линии, создавая сигналы покупки и продажи. В то же время устанавливается принцип остановки и остановки убытков, мониторинг прибыли и убытков в режиме реального времени, защита прибыли.

Стратегические преимущества

  1. Конвергентная характеристика HMA позволяет ей быть очень чувствительной к изменениям цен, сохраняя при этом гладкость средней и избегая ложных сигналов.

  2. Двойной прорывный механизм, повышающий надежность сигнала, предотвращает блокировку.

  3. Динамический стоп-стоп и защита прибыли, позволяющие оптимально контролировать риск и прибыль.

  4. Полностью автоматизированная торговля, упрощенная работа.

Пятое: стратегические риски.

  1. Если рынок сильно колеблется, то есть большая вероятность того, что стоп-ложе будут удалены.

  2. Высокая частота сделок, увеличение комиссионных.

  3. Неправильная настройка параметров может привести к большому количеству ложных сигналов.

Решение проблемы

  1. Оптимизируйте условия остановки убытков, установив разумный отход.

  2. Регулируйте частоту транзакций, чтобы снизить влияние комиссионных.

  3. Оптимизация испытаний на циклы HMA и условия прорыва для определения оптимальных параметров.

Шестое: оптимизация стратегии

  1. В сочетании с трендовыми индикаторами, избегайте обратной торговли.

  2. Добавление автоматического суждения при переключении источника данных, адаптация к более широким рыночным условиям.

  3. Добавление алгоритмов машинного обучения для автоматической оптимизации параметров.

  4. Дополнительная развертываемость на сервере, реализация 24-часовой проверки на реальном диске.

VII. Заключение

Стратегия прорыва динамического индикатора HMA использует уникальные преимущества Hull Moving Average для точного захвата динамики рынка. Двойной прорывный фильтрационный механизм повышает качество сигнала, а динамический стоп-стоп гарантирует эффективность.

Исходный код стратегии
/*backtest
start: 2022-12-28 00:00:00
end: 2024-01-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//SeaSide420
strategy("Hull Moving Average and Daily Candle Crossover", shorttitle="Hull&D", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=720, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)
// settings----------------------
q=input(title="HullMA",defval=5)
SL = input(defval=-10000.00, title="Stop Loss in $", type=float, step=1)
TP = input(defval=500.00, title="Target Point in $", type=float, step=1)
price=input(ohlc4,title="Price data")
ot=1
p=price[1]
// Daily candle crossover---------
dt = 0.0010
Daily=(p-p[1])/p[1]
//--------------------------------
// Hull MA's----------------------
n2ma=2*wma(p,round(q/2))
nma=wma(p,q)
diff=n2ma-nma
sqn=round(sqrt(q))
n2ma1=2*wma(p[1],round(q/2))
nma1=wma(p[1], q)
diff1=n2ma1-nma1
sqn1=round(sqrt(q))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
//---------------------------------
// Plotting------------------------
z1e=n1>n2?green:black
z2e=n1>n2?black:red
z3e=n1>n2?green:red
n1e=plot(n1, title="HMA1", color=z1e, linewidth=2, offset=2)
n2e=plot(n2, title="HMA2", color=z2e, linewidth=2, offset=2)
fill(n1e, n2e, color=z3e, transp=80)
// Order controls-------------------
closelong = n1<n2 and n1[1]<n2[1] and n1[2]<n2[2] or strategy.openprofit<SL or strategy.openprofit>TP
if (closelong)
    strategy.close("Long")
closeshort = n1>n2 and n1[1]>n2[1] and n1[2]>n2[2] or strategy.openprofit<SL or strategy.openprofit>TP
if (closeshort)
    strategy.close("Short")
longCondition = n1>n2 and n1[1]>n2[1] and n1[2]>n2[2] and strategy.opentrades<ot and Daily>dt and close>n1
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = n1<n2 and n1[1]<n2[1] and n1[2]<n2[2] and strategy.opentrades<ot and Daily<dt and close<n1 
if (shortCondition)
    strategy.entry("Short",strategy.short)