Основная идея этой стратегии заключается в сравнении Hull Moving Average (HMA) с значениями свечей, чтобы генерировать сигналы покупки и продажи.
Во-первых, стратегия рассчитывает HMA определенного периода с использованием функции hma (). Затем она получает цену открытия предыдущей свечи в качестве ориентира. Если HMA выше, чем предыдущая открытая цена свечи, генерируется сигнал покупки. Если HMA ниже, чем предыдущая открытая цена свечи, генерируется сигнал продажи.
Условия входа заключаются в том, что цена должна преодолеть HMA в обратном направлении, прежде чем войти на рынок. Это означает, что она будет покупать только тогда, когда цена превышает HMA снизу. Она будет продавать только тогда, когда цена превышает HMA сверху. Это избегает того, чтобы быть обманутой колеблющимися рынками.
Условия выхода заключаются в том, чтобы остановить потерю, когда цена падает обратно на другую сторону HMA. Например, если цена падает ниже HMA после покупки, она остановит продажу с убытком.
В целом, эта стратегия определяет направление основного тренда, используя плавность HMA для генерации сигналов. Между тем, она требует прорыва цены, чтобы отфильтровать ложные сигналы и избежать отклонения от рыночного шума.
Использование HMA вместо SMA позволяет лучше идентифицировать тенденции и фильтровать шум.
Механизм прорыва может уменьшить вероятность попадания в ловушку и открытия повторяющихся позиций.
Принятие предыдущей цены свечи, а не текущей цены, избегает приспособления кривой.
Правила просты и понятны, подходят для оптимизации параметров и торговли роботами.
Можно гибко применять к любому инструменту и сроку, с универсальностью.
Неправильное настройка параметров HMA может пропустить тенденции или быть слишком чувствительной.
Опираясь на один индикатор, можно остановить повторные попытки прорыва, подумайте о сочетании других индикаторов для фильтрации сигналов.
Стоп-лосс слишком близок к HMA, может снова попасть в ловушку последующим прорывом.
Невозможно определить направление и силу тренда.
Фиксированная стоп-лосс вызывает большие колебания в риске/вознаграждении.
Эта стратегия относительно проста и практична в целом с четкой основной идеей. Она идентифицирует основную тенденцию с HMA и фильтрует ложные сигналы с прорывом. Она избегает того, чтобы быть подвергнутой воздействию неуравновешенных рынков. Правильная оптимизация параметров может достичь приличных результатов. Однако надежность и показатель выигрыша все еще ограничены как единая стратегия индикатора. Рекомендуется комбинировать с другими техническими индикаторами или методами управления деньгами для значительного улучшения надежности. В заключение, эта стратегия обеспечивает простой и эффективный подход к количественной торговле, который стоит углубленного исследования и применения.
/*backtest start: 2023-08-21 00:00:00 end: 2023-09-20 00:00:00 period: 2h basePeriod: 15m 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/ // © SeaSide420. Any timeFrame/pair , Hull Moving Average vs Candle //@version=4 strategy("Hull Moving Average vs Candle",shorttitle="HMA-vs-Candle",overlay=true,default_qty_type=strategy.percent_of_equity,default_qty_value=100,commission_type=strategy.commission.cash_per_order,commission_value=1.00,slippage=1) Period=input(title="Hull MA Period",type=input.integer,defval=50,minval=1) Resolution=input(title="Candle Resolution", type=input.resolution,defval="D") Price=input(title="Source of Price",type=input.source,defval=open) HMA=hma(Price,Period) Candle=security(syminfo.tickerid,Resolution,Price,barmerge.gaps_off,barmerge.lookahead_off) change_color=HMA>Candle?color.green:color.red plot1=plot(Candle,color=change_color,title="Candle Line",linewidth=2,transp=50) plot2=plot(HMA[1],color=change_color,title="Hull MA Line",linewidth=2,transp=50) fill(plot1,plot2,color=change_color,transp=50) strategy.close("BUY",when=Price<HMA and HMA<Candle,comment="close buy entry") strategy.close("SELL",when=Price>HMA and HMA>Candle,comment="close sell entry") if (Price>HMA and HMA>Candle and Price>Price[1]) strategy.entry("BUY",strategy.long) if (Price<HMA and HMA<Candle and Price<Price[1]) strategy.entry("SELL",strategy.short) // /L'-, // ,'-. /MM . . / L '-, // . _,--dMMMM\ /MMM `.. / '-, // : _,--, )MMMMMMMMM),. `QMM ,<> /_ '-,' // ; ___,--. \MM( `-' )M//MM\ ` ,',.; .-'* ; .' // | \MMMMMM) \MM\ ,dM//MMM/ ___ < ,; `. )`--' / // | \MM()M MMM)__ /MM(/MP' ___, \ \ ` `. `. /__, ,' // | MMMM/ MMMMMM( /MMMMP'__, \ | / `. `-,_\ / // | MM /MMM---' `--'_ \ |-' |/ `./ .\----.___ // | /MM' `--' __,- \"" |-' |_, `.__) . .F. )-. // | `--' \ \ |-' |_, _,-/ J . . . J-'-. `-., // | __ \`. | | | \ / _ |. . . . \ `-. F // | ___ / \ | `| ' __ \ | /-' F . . . . \ '` // | \ \ \ / | __ / \ | |,-' __,- J . . . . . \ // | | / |/ __,- \ ) \ / |_,- __,--' |. .__.----,' // | |/ ___ \ |'. |/ __,--' `.-;;;;;;;;;\ // | ___ \ \ | | ` __,--' /;;;;;;;;;;;;. // | \ \ |-'\ ' __,--' /;;;;;;;;;;;;;;\ // \ | | / | __,--' `--;;/ \;-'\ // \ | |/ __,--' / / \ \ // \ | __,--' / / \ \ // \|__,--' _,-;M-K, ,;-;\ // <;;;;;;;; '-;;;; // ~ priceless artwork by SeaSide420