Стратегия, основанная на тенденции реверсии цикла после рецессии

Автор:Чао Чжан, Дата: 2023-11-15 17:13:18
Тэги:

img

Обзор

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

Принципы

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

  1. Перемены в скользящей средней

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

  2. Осилятор ценового тренда

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

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

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

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

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

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

Риски

К основным рискам этой стратегии относятся:

  1. Недостаточный импульс отскока, имеет тенденцию быть пойманным в ловушку

Если импульс отскока недостаточен, он, скорее всего, вернется и снова коснется стоп-лосса, не достигнув прибыли.

  1. Неправильные параметры

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

  1. Неудачи по обращению из-за внезапных событий

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

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

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

  1. Добавление механизмов остановки потерь

Разумно установить стоп-потерю или время стоп-потеря для контроля одиночных потерь.

  1. Комбинировать с показателями объема

Добавьте подтверждение объема, например, сигналы только при прорыве среднего объема, чтобы избежать неэффективных прорывов из-за недостаточного импульса.

  1. Динамическая оптимизация параметров

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

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

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

Резюме

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


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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 30/12/2019
// 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 Detrend Price Osc indicator is similar to a moving average, 
// in that it filters out trends in prices to more easily identify 
// cycles. The indicator is an attempt to define cycles in a trend 
// by drawing a moving average as a horizontal straight line and 
// placing prices along the line according to their relation to a 
// moving average. It provides a means of identifying underlying 
// cycles not apparent when the moving average is viewed within a 
// price chart. Cycles of a longer duration than the Length (number 
// of bars used to calculate the Detrend Price Osc) are effectively 
// filtered or removed by the oscillator.
//
// 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

DPO(Length) =>
    pos = 0.0
    xPrice = close
    xsma = sma(xPrice, Length)
    nRes = xPrice - xsma
    pos := iff(nRes > 0, 1,
    	     iff(nRes < 0, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Detrended Price Oscillator", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthDPO = input(14, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDPO = DPO(LengthDPO)
pos = iff(posReversal123 == 1 and posDPO == 1 , 1,
	   iff(posReversal123 == -1 and posDPO == -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 )

Больше