Стратегия комбинирования пересечения реверсии и линейной регрессии


Дата создания: 2023-09-26 15:56:48 Последнее изменение: 2023-09-26 15:56:48
Копировать: 1 Количество просмотров: 703
1
Подписаться
1617
Подписчики

Обзор

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

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

123 Стратегия реверсии

Эта стратегия основана на следующих принципах:

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

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

Правило суждения гласит:

  • Если настроить параметр “Сегодня закрытие цены> вчера закрытие цены и Stoch Fastline ”, то будет получен сигнал к покупке.

  • Если сегодняшний конечный курс < вчерашний конечный курс и Stoch Fast Line > Stoch Slow Line и Stoch Fast Line < параметры, генерирующие сигнал продажи

Стратегия требует установки параметров показателя Стоха, в том числе: вычисление K-линейного цикла Стоха Length, скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего скорейшего

Линейная регрессия

Эта стратегия основана на анализе линейной регрессии, которая определяет связь цены с линейной регрессионной трендовой линией.

  • Если цена закрытия превышает линейный отрезок отклонения, то появляется сигнал покупки.

  • Если цена закрытия меньше, чем линейный отрезок, то появляется сигнал продажи.

Эта стратегия требует установки линейного цикла регрессии LengthLRI, а также линейного регрессивного ввода источника данных xSeria。

Комбинированная стратегия

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

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

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

  1. Многофакторный драйвер, эффективное отсеивание ложных сигналов, улучшение качества сигнала

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

  1. Мониторинг цены в режиме реального времени, чтобы избежать ловушки

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

  1. Тенденции и возможности для реверсивной торговли

Линейная регрессионная стратегия лучше подходит для определения точек продажи и покупки в тренде, в то время как 123 реверсионная стратегия фокусируется на определении точек обратного хода. Обе стратегии хорошо сочетают преимущества торговли в тренде и торговли в обратном направлении.

  1. Параметры стратегии могут быть настроены на оптимальную комбинацию

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

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

Также существуют следующие риски:

  1. Некоторые возможности могут быть упущены с помощью многофакторного движения

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

  1. Линейная регрессия имеет запаздывание

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

  1. Требуется оптимизация параметров

Для обеих стратегий необходимо выбрать подходящие параметры, а для некоторых видов параметры могут потребовать самостоятельной настройки. Если параметры выбраны неправильно, это значительно снизит эффективность стратегии.

Риски могут быть снижены следующими способами:

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

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

  3. Оптимизация параметров с помощью методов машинного обучения и других методов для повышения эффективности выбора параметров

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

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

  1. Параметрическая оптимизация с использованием методов машинного обучения

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

  1. Увеличение убыточности

Можно установить правила стоп-лосса в сочетании с ATR, трендовыми индикаторами и т. д., чтобы контролировать максимальные потери в одной сделке.

  1. Оптимизация логики выхода на рынок

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

  1. В сочетании с анализом чувств

Использование технологий обработки естественного языка для оценки настроений участников рынка и принятия торговых решений.

  1. Добавление модуля прогнозирования машинного обучения

Использование моделей глубокого обучения, таких как LSTM, GRU, для прогнозирования цен, как важного ориентира для принятия стратегических решений.

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

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

Исходный код стратегии
/*backtest
start: 2023-09-18 00:00:00
end: 2023-09-19 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 25/01/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// 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.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos

LRI(Length,xSeria) =>
    pos = 0.0
    xX = Length * (Length - 1) * 0.5
    xDivisor = xX * xX - Length * Length * (Length - 1) * (2 * Length - 1) / 6
    xXY = 0.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))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Line Regression Intercept", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Line Regression Intercept ----")
LengthLRI = input(14, minval=1)
xSeria = input(title="Source", type=input.source, defval=close)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posLRI = LRI(LengthLRI,xSeria)
pos = iff(posReversal123 == 1 and posLRI == 1 , 1,
	   iff(posReversal123 == -1 and posLRI == -1, -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)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )