В процессе загрузки ресурсов... загрузка...

Квантовая стратегия, основанная на линейном регрессионном пересечении

Автор:Чао Чжан, Дата: 2023-12-29 11:45:20
Тэги:

img

Обзор

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

Принцип стратегии

Пересечение линейной регрессии указывает прогнозируемое значение Y (обычно цена), когда значение временного ряда X равняется 0. Эта стратегия предусматривает параметр Length, принимает ценовую последовательность закрытия в качестве исходной последовательности и вычисляет пересечение линейной регрессии (xLRI) последних дней Length. Когда цена закрытия выше, чем xLRI, переходите на длинный; когда цена закрытия ниже, чем xLRI, переходите на короткий.

Конкретная формула расчета:

xX = Length *(Length - 1)* 0.5
xDivisor = xX *xX - Length* Length *(Length - 1) *(2 * Length - 1) / 6  
xXY = Σ(i *Closing Price[i]), i from 0 to Length-1
xSlope = (Length *xXY - xX* Σ(Closing Price, Length))/ xDivisor 
xLRI = (Σ(Closing Price, Length) - xSlope * xX) / Length

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

Преимущества

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

  1. Используя методы линейной регрессии, он обладает определенными предсказательными и тенденционными возможностями оценки цен.
  2. Меньше параметров, более простая модель, легкая для понимания и реализации.
  3. Настраиваемый параметр Длина для регулирования гибкости стратегии.

Риски и решения

Эта стратегия также сопряжена с некоторыми рисками:

  1. Линейное регрессионное приспособление - это просто статистическое приспособление, основанное на исторических данных, с ограниченной способностью предсказывать будущие тенденции цен.
  2. Если основные показатели компании претерпевают существенные изменения, результаты линейного регрессионного приспособления могут стать недействительными.
  3. Неправильное установление параметра Length может привести к переустановке.

Контрмеры:

  1. Соответственно сократить параметр Length для предотвращения переустановки.
  2. Обратите внимание на изменения в фундаментальных показателях компании и при необходимости вмешивайтесь вручную, чтобы закрыть позиции.
  3. Принять адаптивный параметр Длина для динамической корректировки в соответствии с условиями рынка.

Руководство по оптимизации

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

  1. Добавить механизм остановки потери для контроля одиночных потерь.
  2. Сочетать с другими показателями для формирования комбинированной стратегии повышения стабильности.
  3. Добавьте модуль самоадаптивной оптимизации параметров, чтобы параметр длины менялся динамически.
  4. Добавить модуль управления позицией, чтобы предотвратить переоценку.

Резюме

Эта стратегия строит простую количественную торговую стратегию, основанную на пересечении линейной регрессии. В целом, стратегия имеет некоторую экономическую ценность, но есть также некоторые риски.


/*backtest
start: 2023-11-28 00:00:00
end: 2023-12-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 21/03/2018
// Linear Regression Intercept is one of the indicators calculated by using the 
// Linear Regression technique. Linear regression indicates the value of the Y 
// (generally the price) when the value of X (the time series) is 0. Linear 
// Regression Intercept is used along with the Linear Regression Slope to create 
// the Linear Regression Line. The Linear Regression Intercept along with the Slope 
// creates the Regression line.
//
// You can change long to short in the Input Settings
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Line Regression Intercept Backtest", overlay = true)
Length = input(14, minval=1)
xSeria = input(title="Source", defval=close)
reverse = input(false, title="Trade reverse")
xX = Length * (Length - 1) * 0.5
xDivisor = xX * xX - Length * Length * (Length - 1) * (2 * Length - 1) / 6
xXY = 0
for i = 0 to Length-1
	xXY := xXY + (i * xSeria[i])
xSlope = (Length * xXY - xX * sum(xSeria, Length)) / xDivisor
xLRI = (sum(xSeria, Length) - xSlope * xX) / Length
pos = iff(close > xLRI, 1,
       iff(close < xLRI, -1, nz(pos[1], 0))) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1, 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue ) 
plot(xLRI, color=blue, title="LRI")

Больше