Тенденция после регрессионной стратегии торговли на основе линейной регрессии и скользящей средней

Автор:Чао Чжан, Дата: 2023-12-18 17:34:29
Тэги:

img

Обзор

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

Наименование стратегии

Тенденция после регрессионной стратегии торговли

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

Ключевые компоненты этой стратегии включают:

  1. Расчет простой скользящей средней за N дней (SMA)
  2. Вычислить линейную регрессионную линию последних N дней
  3. Пройти длинный, когда цена закрытия пересекает SMA и выше регрессионной линии
  4. Пройти короткий период, когда цена закрытия пересекает SMA и ниже регрессионной линии
  5. Установите цену остановки потери и цену получения прибыли

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

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

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

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

  1. Комбинировать индикатор тренда и индикатор прорыва, чтобы избежать ложного прорыва и улучшить качество сигнала
  2. Использовать линейную регрессию для определения направления тренда для фильтрации тренда, только идти длинный в восходящем тренде и идти короткий в нисходящем тренде
  3. Установите стоп-лосс и принимайте прибыль для контроля риска
  4. Ясные и понятные правила
  5. Только несколько параметров для настройки без слишком большой сложности

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

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

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

Что касается этих рисков, мы можем оптимизировать из следующих аспектов:

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

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

К основным аспектам дальнейшей оптимизации стратегии относятся:

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

Заключение

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


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

//@version=4
strategy(title="Regression Trading Strategy", shorttitle="RTS", overlay=true)

// Input parameters
n = input(14, title="SMA Period")
stop_loss_percentage = input(2, title="Stop Loss Percentage")
take_profit_percentage = input(2, title="Take Profit Percentage")

// Calculate the SMA
sma = sma(close, n)

// Linear regression function
linear_regression(src, length) =>
    sumX = 0.0
    sumY = 0.0
    sumXY = 0.0
    sumX2 = 0.0
    for i = 0 to length - 1
        sumX := sumX + i
        sumY := sumY + src[i]
        sumXY := sumXY + i * src[i]
        sumX2 := sumX2 + i * i
    slope = (length * sumXY - sumX * sumY) / (length * sumX2 - sumX * sumX)
    intercept = (sumY - slope * sumX) / length
    line = slope * length + intercept
    line

// Calculate the linear regression
regression_line = linear_regression(close, n)

// Plot the SMA and regression line
plot(sma, title="SMA", color=color.blue)
plot(regression_line, title="Regression Line", color=color.red)

// Trading strategy conditions
long_condition = crossover(close, sma) and close > regression_line
short_condition = crossunder(close, sma) and close < regression_line

// Exit conditions
stop_loss_price = close * (1 - stop_loss_percentage / 100)
take_profit_price = close * (1 + take_profit_percentage / 100)

// Plot entry and exit points on the chart
plotshape(series=long_condition, title="Long Entry", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=short_condition, title="Short Entry", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
plotshape(series=crossunder(close, stop_loss_price), title="Stop Loss", location=location.abovebar, color=color.red, style=shape.labeldown, text="SL")
plotshape(series=crossover(close, take_profit_price), title="Take Profit", location=location.belowbar, color=color.green, style=shape.labelup, text="TP")

// Strategy orders
strategy.entry("Long", strategy.long, when = long_condition)
strategy.entry("Short", strategy.short, when = short_condition)
strategy.exit("Exit", from_entry = "Long", when = crossover(close, stop_loss_price) or crossover(close, take_profit_price))
strategy.exit("Exit", from_entry = "Short", when = crossunder(close, stop_loss_price) or crossunder(close, take_profit_price))



Больше