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


Дата создания: 2023-12-29 17:15:07 Последнее изменение: 2023-12-29 17:15:07
Копировать: 2 Количество просмотров: 722
1
Подписаться
1621
Подписчики

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

Обзор

Стратегия обратного линейного регресса - это стратегия обратного трейдинга, основанная на колебаниях цен. Она сочетает в себе анализ линейного регресса и индикатор AVERAGE TRUE RANGE, устанавливает условия для последовательного повышения линии K или последовательного снижения линии K, а при анализе линейного регресса проводится обратная операция, когда цена определяется как обратная.

Стратегический принцип

Сначала стратегия рассчитывает наклон выходной линейной регрессии. Если линейная регрессия выше 0, то цена находится в восходящем тренде; если она меньше 0, то цена находится в нисходящем тренде. Вместе с тем соотношение цены закрытия и цены открытия последней линии K определяет, была ли последняя линия K вверх или вниз.

Частота сделок может быть контролирована путем установки последовательного числа вверх и вниз по линии K. При установке последовательного числа вверх и вниз по линии K. При установке последовательного числа вверх и вниз по линии K. При установке последовательного числа вверх и вниз по линии K. При установке последовательного числа вниз и вверх по линии K. При установке последовательного числа вверх и вниз по линии K. При установке последовательного числа вниз и вниз по линии K. При установке последовательного числа вверх и вниз по линии K. При установке последовательного числа вниз и вниз по линии K. При установке последовательного числа вверх и вниз по линии K. При установке последовательного числа вниз и вниз по линии K. При установке последовательного числа вверх и вниз по линии K. При установке последовательного числа вниз и вниз по линии K. При установке последовательного числа вниз и вниз по линии K.

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

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

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

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

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

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

Направление оптимизации

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

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

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

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

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

  5. Расширять на другие сорта, оценивать параметры для разных сортов, чтобы сделать стратегию более универсальной.

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

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

Исходный код стратегии
/*backtest
start: 2023-12-21 00:00:00
end: 2023-12-28 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Reverse Up/Down Strategy", currency=currency.USD, initial_capital=1000, pyramiding=2, default_qty_type=strategy.percent_of_equity, default_qty_value=100,overlay=true)

//User Options
consecutiveBarsUp   = input(title="Sell after how many bars up?",   type=input.integer, minval=1, defval=1)
consecutiveBarsDown = input(title="Buy after how many bars down?",  type=input.integer, minval=1, defval=1)
atrLength           = input(title="ATR Length",                     type=input.integer, minval=1, defval=14)
atrMult             = input(title="ATR Multiplier",                 type=input.float,   minval=0.1, defval=2.33)

//ATR Channel
adjustedATR     = sma(atr(atrLength),atrLength) * atrMult
longATR         = low - adjustedATR
shortATR        = high + adjustedATR
plot(shortATR,  title="Short ATR",  color=color.red)
plot(longATR,   title="Long ATR",   color=color.lime)


// This is the true linear regression slope rather than an approximation given by numerical differentiation
src = hlc3
len = input(defval=14, minval=1, title="Slope Length")
lrc = linreg(src, len, 0)
lrc1 = linreg(src, len,1)
lrs = (lrc-lrc1)

//Check if last candle was up or down
priceOpen = open
priceClose = close
longCondition = priceOpen > priceClose
shortCondition = priceOpen < priceClose
ups = 0.0
dns = 0.0

ups := shortCondition ? nz(ups[1]) + 1 : 0
dns := longCondition ? nz(dns[1]) + 1 : 0

if (shortCondition)
    strategy.close("buy", qty_percent=100, comment="Close")
    if (ups >= consecutiveBarsUp and lrs <= 0)
    	strategy.entry("sell", strategy.short, comment="Sell")
    	

if (longCondition)
    strategy.close("sell", qty_percent=100, comment="Close")
    if (dns >= consecutiveBarsDown and lrs >= 0)
	    strategy.entry("buy", strategy.long, comment = "Buy")