Торговая стратегия на основе скользящей средней Холла и K-линии


Дата создания: 2023-09-21 10:31:58 Последнее изменение: 2023-09-21 10:31:58
Копировать: 0 Количество просмотров: 762
1
Подписаться
1617
Подписчики

Обзор

Основная идея этой стратегии заключается в сравнении движущейся средней Холла (Hull Moving Average, HMA) с K-линией для получения сигналов покупки и продажи.

Принципы

Во-первых, стратегия вычисляет HMA на определенный период времени с помощью функции hma (). Затем, получает цену открытия на верхней линии K в качестве сравнительной базы. Если HMA выше цены открытия на верхней линии K, то создается сигнал покупки; если HMA ниже цены открытия на верхней линии K, то создается сигнал продажи.

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

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

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

Анализ преимуществ

  1. Используя HMA, а не SMA, можно лучше распознавать тренды, фильтруя колебания.

  2. Механизм прорыва позволяет снизить вероятность попадания в ловушку и повторного открытия позиции.

  3. Используя предыдущую цену K-линии, а не текущую цену, можно избежать рисования обратной кривой.

  4. Правила простые и понятные, подходят для оптимизации параметров и роботизированной торговли.

  5. Гибко применяется в любых сортах и циклах, универсальность.

Риски и улучшения

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

  2. Одиночные показатели могут быть пробиты через повторную проверку, и можно рассмотреть возможность фильтрации сигналов в сочетании с другими показателями.

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

  4. Невозможно определить направление и силу тенденции, поэтому следует рассмотреть возможность включения классификатора тенденций.

  5. Фиксированная точка остановки убытков приводит к значительным колебаниям риска и дохода, можно попробовать с остановкой убытков или управлением капиталом.

Подвести итог

Эта стратегия в целом довольно проста, практична, и ее основная идея ясна. С помощью 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