Стратегия линейного регрессионного канала

Автор:Чао Чжан, Дата: 2024-01-17 11:41:16
Тэги:

img

Обзор

Стратегия линейного регрессионного канала - это краткосрочная стратегия торговли, основанная на линейном регрессионном анализе и показателях скользящей средней.

Логика стратегии

Стратегия линейного регрессионного канала основывается на двух показателях:

  1. Линейный регрессионный канал: диапазон канала, рассчитанный с помощью линейного регрессионного анализа. Стратегия устанавливает 55-дневную линейную регрессионную линию для представления долгосрочной тенденции цен. В то же время она рассчитывает верхнюю границу канала, представляющую более высокую температурную область цен.

  2. Движущаяся средняя Hull: Движущийся средний индикатор отслеживания тренда длительностью 400 дней используется для определения общей тенденции и направления цен.

Конкретная логика торговли:

Когда цена находится ниже верхней границы канала и ниже 400-дневной скользящей средней по Хуллу, займите длинную позицию; когда цена поднимается выше средней точки линейной регрессии, закрывайте позицию, чтобы получить прибыль.

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

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

Эта стратегия имеет следующие преимущества:

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

  2. Движущаяся средняя Hull отфильтровывает краткосрочный рыночный шум, что делает сроки входа более ясными.

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

  4. Точки прибыли ясны, и приличные доходы часто могут быть зафиксированы в среднесрочных и краткосрочных тенденциях.

Анализ рисков

Стратегия линейного регрессионного канала также представляет некоторые риски:

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

  2. В случае крупного переворота, вызванного неожиданным событием, стоп-лосс может быть достигнут, что повлечет за собой большие потери.

  3. Если откат идет слишком глубоко и нарушает линию Hull MA, он может не принести прибыли на выходе. Параметры Hull MA или стоп-лосс могут быть настроены.

  4. Частота торговли может быть слишком низкой. Сократить цикл линейной регрессии для увеличения частоты торговли.

Оптимизация

Стратегия линейного регрессионного канала может быть оптимизирована в следующих аспектах:

  1. Динамически регулируйте параметры линейного регрессионного канала, чтобы сделать канал ближе к фактическим колебаниям цен.

  2. Оптимизировать параметры Hull MA для лучшего определения точек переворота тренда.

  3. Установите точки остановки потерь в канале для эффективного контроля риска единичных потерь.

  4. Добавить показатели волатильности, чтобы избежать открытия позиций на волатильных рынках.

  5. Объединяйте показатели объема торговли, чтобы определить реальные прорывы.

Резюме

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


/*backtest
start: 2023-01-10 00:00:00
end: 2024-01-16 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/
// © TradingAmmo

//@version=4
strategy("Linear Channel", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075, currency='USD')
startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0)
end   = timestamp(input(9999, "End Year"),  1, 1,  0, 0)
_testPeriod() => true

//linreg
length = input(55)
linreg = linreg(close, length, 0)
plot(linreg, color=color.white) 

//calc band
Value = input(-2)
sub = (Value/100)+1
Band2 = linreg*sub
plot(Band2, color=color.red)

//HMA as a filter
HMA = input(400, minval=1)  
plot(hma(close, HMA), color=color.purple)  

long_condition = close <  Band2  and hma(close, HMA) < close and _testPeriod()
strategy.entry('BUY', strategy.long, when=long_condition)  
 
short_condition =  close > linreg
strategy.close('BUY', when=short_condition)


Больше