Estrategia cuantitativa de seguimiento de tendencias entre ciclos


Fecha de creación: 2023-12-15 15:59:37 Última modificación: 2023-12-15 15:59:37
Copiar: 0 Número de Visitas: 600
1
Seguir
1621
Seguidores

Estrategia cuantitativa de seguimiento de tendencias entre ciclos

Descripción general

Esta estrategia utiliza el indicador PSAR para determinar la tendencia de los precios, el indicador ADX para determinar la fortaleza de la tendencia, el indicador RSI para determinar las zonas de sobreventa y el indicador CMF para determinar el flujo de fondos, para construir una estrategia de comercio cuantitativa de seguimiento de tendencias a lo largo de los ciclos. Esta estrategia se posiciona rápidamente cuando se determina que los precios se contraen para formar una nueva dirección de tendencia y se sigue en la tendencia posterior, al mismo tiempo que establece condiciones de filtrado para reducir el riesgo de la posición para garantizar que se capten los principales beneficios de la tendencia.

Principio de estrategia

Las principales reglas de esta política son las siguientes:

  1. El indicador PSAR se utiliza para determinar si el precio está en una tendencia al alza, y el descenso del PSAR se considera como el final de una tendencia al alza y el cambio a una caída;

  2. El indicador RSI requiere que el indicador esté por encima de la línea media de 50, para filtrar falsos brechas que se forman en las zonas de sobreventa;

  3. El ADX exige un nivel más alto que el promedio de su EMA, lo que indica una señal de continuidad en los resultados del análisis de tendencias;

  4. El CMF requiere un valor mayor a 0, que se juzgará como un flujo de capital.

Se produce una señal de compra cuando se cumplen las cuatro condiciones anteriores; se produce una señal de venta cuando se cumple el PSAR, el RSI está por debajo de 50, el ADX está por debajo de su línea media EMA y el CMF es menor que 0.

La estrategia tiene en cuenta la dirección de la tendencia del precio, la intensidad de la tendencia, el estado de sobrecompra y sobreventa y el flujo de fondos a varias dimensiones para establecer reglas de negociación, y establece un juicio lógico riguroso para determinar la generación de señales de negociación, que puede filtrar eficazmente las brechas falsas y asegurar la captura de la dirección de la tendencia que es sostenible con una alta probabilidad.

Análisis de las ventajas

Las principales ventajas de esta estrategia son:

  1. La combinación de una variedad de reglas de negociación para el establecimiento de indicadores puede prevenir eficazmente los falsos brechas y garantizar la calidad de las señales de negociación.

  2. Identificar rápidamente la dirección de las tendencias emergentes y seguirlas para aprovechar plenamente los beneficios de la tendencia;

  3. El proceso de configuración rastrea las condiciones de filtración, lo que permite controlar los riesgos de manera efectiva y garantizar el seguimiento.

  4. La combinación de los indicadores de la intensidad de la tendencia puede evitar la dificultad de ajuste.

Análisis de riesgos

Los principales riesgos de esta estrategia son los siguientes:

  1. Una sola estrategia es propensa a acumular riesgos y requiere un ajuste adecuado de la posición para controlar el riesgo global.

  2. El seguimiento de los cambios en las condiciones de filtración requiere un seguimiento atento para evitar la pérdida de corte después de la cancelación de las condiciones.

  3. Esta estrategia se basa en la línea media y larga, y el contenido a corto plazo es vulnerable a la fluctuación y presenta un riesgo de pérdida.

Las medidas de gestión de riesgos correspondientes incluyen: optimización de las reglas de gestión de posiciones, establecimiento de líneas de alerta de riesgo, tolerancia adecuada de la distancia entre las líneas de stop loss, etc.

Dirección de optimización

La estrategia tiene el siguiente espacio de optimización:

  1. Optimización de la configuración de los parámetros, actualmente la configuración de los parámetros es más subjetiva, y se puede introducir una optimización automática de los métodos de aprendizaje automático;

  2. El aumento del módulo de gestión de posiciones, que permite ajustar las posiciones de forma dinámica en función de la situación de riesgo;

  3. Aumentar la optimización de los mecanismos de detención de pérdidas, como el seguimiento de la detención, el tiempo de detención, la ruptura de la detención, etc.

Resumir

Esta estrategia integra varias reglas de evaluación de indicadores, permite la localización rápida y el seguimiento continuo de las tendencias emergentes, y verifica la eficacia del análisis multidimensional, como la combinación de tendencias y fondos en el comercio cuantitativo. La estrategia puede usarse como una estrategia básica para el seguimiento de tendencias transitorias en forma de índice, o puede construirse como una estrategia de cuantificación lineal estable a medio y largo plazo después de la optimización de parámetros y módulos.

Código Fuente de la Estrategia
/*backtest
start: 2023-11-14 00:00:00
end: 2023-12-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("psar+ adx + cmf + rsi Strategy", overlay=true,initial_capital = 1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent , commission_value=0.1 )

start = input(1.02)
increment = input(1.02)
maximum = input(1.2)
var bool uptrend = na
var float EP = na
var float SAR = na
var float AF = start
var float nextBarSAR = na
if bar_index > 0
	firstTrendBar = false
	SAR := nextBarSAR
	if bar_index == 1
		float prevSAR = na
		float prevEP = na
		lowPrev = low[1]
		highPrev = high[1]
		closeCur = close
		closePrev = close[1]
		if closeCur > closePrev
			uptrend := true
			EP := high
			prevSAR := lowPrev
			prevEP := high
		else
			uptrend := false
			EP := low
			prevSAR := highPrev
			prevEP := low
		firstTrendBar := true
		SAR := prevSAR + start * (prevEP - prevSAR)
	if uptrend
		if SAR > low
			firstTrendBar := true
			uptrend := false
			SAR := max(EP, high)
			EP := low
			AF := start
	else
		if SAR < high
			firstTrendBar := true
			uptrend := true
			SAR := min(EP, low)
			EP := high
			AF := start
	if not firstTrendBar
		if uptrend
			if high > EP
				EP := high
				AF := min(AF + increment, maximum)
		else
			if low < EP
				EP := low
				AF := min(AF + increment, maximum)
	if uptrend
		SAR := min(SAR, low[1])
		if bar_index > 1
			SAR := min(SAR, low[2])
	else
		SAR := max(SAR, high[1])
		if bar_index > 1
			SAR := max(SAR, high[2])
	nextBarSAR := SAR + AF * (EP - SAR)

//rsi strat
length = input( 50 )
middle_RSI=input(49)
price = close
vrsi = rsi(price, length)

//cmf
lengthCMF = input(20, minval=1)
ad = close==high and close==low or high==low ? 0 : ((2*close-low-high)/(high-low))*volume
mf = sum(ad, lengthCMF) / sum(volume, lengthCMF)

//ADX
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
dirmov(len) =>
	up = change(high)
	down = -change(low)
	plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
	minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
	truerange = rma(tr, len)
	plus = fixnan(100 * rma(plusDM, len) / truerange)
	minus = fixnan(100 * rma(minusDM, len) / truerange)
	[plus, minus]
adx(dilen, adxlen) =>
	[plus, minus] = dirmov(dilen)
	sum = plus + minus
	adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)
ema_length=input(10)
ema_sig= ema(sig,ema_length)


long = not uptrend  and vrsi > middle_RSI and sig > ema_sig   and mf>0 
short= uptrend   and vrsi < middle_RSI and sig<ema_sig and mf<0

strategy.entry("long",1,when=long)
strategy.close('long',when=short)