Estrategia de trading cuantitativo de dos factores


Fecha de creación: 2023-12-07 15:11:37 Última modificación: 2023-12-07 15:11:37
Copiar: 0 Número de Visitas: 609
1
Seguir
1619
Seguidores

Estrategia de trading cuantitativo de dos factores

Descripción general

Esta estrategia combina 123 inversiones y los dos factores de los indicadores de oscilación de los números positivos para lograr un comercio cuantitativo impulsado por los dos factores. La estrategia capta oportunidades de inversiones a corto plazo, al mismo tiempo que identifica tendencias más a largo plazo para lograr un retorno excesivo de bajo riesgo.

Principio de estrategia

La primera parte es la estrategia 123 inversa. Esta estrategia utiliza las características de la inversión del precio de cierre en 2 días para determinar el punto de venta y venta. Cuando el precio de cierre sube 2 días consecutivos y la línea K lenta es inferior a 50, se considera una corrección injustificada y genera una compra; cuando el precio de cierre baja 2 días consecutivos y la línea K rápida es superior a 50, se considera una rebote y genera una venta.

La segunda parte es la estrategia del indicador de oscilación de los números positivos. El indicador calcula el número positivo más cercano al precio actual dentro de un rango de precios especificado y genera la diferencia con el precio actual. Un valor positivo indica que el precio actual está cerca del límite superior del número positivo y un valor negativo indica que el precio actual está cerca del límite inferior del número positivo.

El principio de la combinación de señales de transacción de las dos estrategias secundarias es: generar una señal de transacción real en el caso de una señal en sentido contrario y no abrir posiciones en el caso de una señal en sentido contrario.

Análisis de las ventajas

La estrategia combina un doble factor, ya que tiene en cuenta los efectos de reversión a corto plazo y las características de la tendencia a largo plazo, para evaluar el mercado desde múltiples perspectivas y mejorar la resistencia al riesgo de la estrategia.

En comparación con la estrategia de un solo momento, esta estrategia puede utilizar el factor de reversión para detener o revertir la posición a tiempo y controlar el riesgo intraday de manera efectiva cuando un evento repentino provoca un salto a corto plazo en el precio.

En comparación con una sola estrategia de reversión, esta estrategia introduce un indicador de oscilación de números primos para determinar la dirección de la tendencia, lo que evita que los intercambios de reversión frecuentes causen overtrading.

Análisis de riesgos

El mayor riesgo de esta estrategia reside en la existencia de un conflicto de señales entre los dos factores. Cuando el 123 invertido muestra signos de sobrecompra y sobreventa, produce una señal de reversión, mientras que el indicador de oscilación de los números positivos muestra que todavía está en tendencia, si el comercio de reversión directa puede causar pérdidas.

Para controlar este riesgo, la estrategia añade una lógica de juicio adicional, que sólo produce una señal de negociación real cuando las dos señales de factores están sincronizadas. Pero esto también puede perder algunas oportunidades de negociación.

Dirección de optimización

  1. Optimización de los parámetros del indicador estocástico para encontrar la combinación de parámetros invertidos más adecuada para el indicador específico

  2. Optimización de los parámetros de porcentaje de diferencia de capacidad de los indicadores de oscilación cualitativa para reducir el ruido de transacción

  3. Incrementar las estrategias de detención de pérdidas para evitar la expansión de las pérdidas unilaterales

  4. Agrega un módulo de administración de posiciones para ajustar las posiciones en diferentes entornos de mercado

  5. La inclusión de modelos de aprendizaje automático para determinar la fiabilidad de la señal de dos factores reduce la probabilidad de conflictos de señales

Resumir

Esta estrategia combina con éxito los factores de reversión a corto plazo y los factores de tendencia a largo plazo para lograr operaciones cuantitativas de bajo riesgo. Utiliza de manera efectiva el comercio de ruido de filtro de doble factor y establece un riesgo de control lógico de juicio adicional. Es una estrategia de combate real de ingresos estables.

Código Fuente de la Estrategia
/*backtest
start: 2023-11-29 00:00:00
end: 2023-12-06 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 28/04/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
// Determining market trends has become a science even though a high number or people 
// still believe it’s a gambling game. Mathematicians, technicians, brokers and investors 
// have worked together in developing quite several indicators to help them better understand 
// and forecast market movements.
//
// Developed by Modulus Financial Engineering Inc., the prime number oscillator indicates the 
// nearest prime number, be it at the top or the bottom of the series, and outlines the 
// difference between that prime number and the respective series.
//
// 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

PrimeNumberOscillator(price, percent) =>
    res = 0.0
    res1 = 0.0
    res2 = 0.0
    for j = price to price + (price * percent / 100)
        res1 := j
	    for i = 2 to sqrt(price)
        	res1 := iff(j % i == 0 , 0, j)
            if res1 == 0 
                break
		if res1 > 0 
		    break
    for j = price to price - (price * percent / 100)
        res2 := j
	    for i = 2 to sqrt(price)
        	res2 := iff(j % i == 0 , 0, j)
            if res2 == 0 
                break
		if res2 > 0 
		    break
    res := iff(res1 - price < price - res2,  res1 - price, res2 - price)
    res := iff(res == 0, res[1], res)
    res
    
PNO(percent) =>
    pos = 0.0
    xPNO = PrimeNumberOscillator(close, percent)
    pos:= iff(xPNO > 0, 1,
           iff(xPNO < 0, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Prime Number Oscillator", 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, "---- Prime Number Oscillator ----")
percent = input(5, minval=0.01, step = 0.01, title="Tolerance Percentage")
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posPNO = PNO(percent)
pos = iff(posReversal123 == 1 and posPNO == 1 , 1,
	   iff(posReversal123 == -1 and posPNO == -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 )