Стратегия отслеживания двухфакторного реверсирования


Дата создания: 2023-12-19 11:09:20 Последнее изменение: 2023-12-19 11:09:20
Копировать: 2 Количество просмотров: 545
1
Подписаться
1621
Подписчики

Стратегия отслеживания двухфакторного реверсирования

Обзор

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

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

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

Второй подстратегией является стратегия Keltner channel. Эта стратегия рассчитывает типичные средние и колебательные диапазоны цены за последние n торговых дней.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 09/12/2020
// 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
// The Keltner Channel, a classic indicator 
// of technical analysis developed by Chester Keltner in 1960. 
// The indicator is a bit like Bollinger Bands and Envelopes.
//
// 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

KeltnerChn(nPeriod) =>
    pos = 0.0
    xPrice = sma(hlc3, nPeriod)
    xMove = sma(high - low, nPeriod)
    reverse = input(false, title="Trade reverse")
    xUpper = xPrice + xMove
    xLower = xPrice - xMove
    pos := iff(close < xLower, -1,
             iff(close > xUpper, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Keltner Channel", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
nPeriod = input(title="Period", defval=10, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posKeltnerChn = KeltnerChn(nPeriod)
pos = iff(posReversal123 == 1 and posKeltnerChn == 1 , 1,
	   iff(posReversal123 == -1 and posKeltnerChn == -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 )