Estrategia de negociación cuantitativa de múltiples factores

El autor:¿ Qué pasa?, Fecha: 2023-12-27 15:46:27
Las etiquetas:

img

Resumen general

Esta estrategia combina la estrategia de inversión y la estrategia de línea psicológica para formar una estrategia de negociación cuantitativa de múltiples factores.

Principio

123 Estrategia de reversión

La estrategia de reversión 123 juzga que si el precio de cierre del día aumenta en comparación con el día anterior, y la línea lenta K está por debajo de 50, vaya largo; si cae, y la línea rápida K está por encima de 50, vaya corto.

Estrategia de línea psicológica

La estrategia de línea psicológica cuenta la proporción de subidas y bajadas durante un cierto ciclo. Si la subida es mayor al 50%, indica que los toros controlan el mercado; si la subida es menor al 50%, indica que los bajistas controlan el mercado.

Esta estrategia combina las señales de las dos estrategias anteriores: posiciones abiertas cuando las dos estrategias dan señales en la misma dirección, y posiciones cerradas cuando dan señales en direcciones diferentes.

Ventajas

La estrategia combina múltiples factores y puede hacer juicios más precisos sobre las tendencias del mercado, evitando juicios erróneos causados por un solo indicador técnico.

Riesgos y soluciones

El establecimiento de parámetros para cada factor de la estrategia tendrá un mayor impacto en el rendimiento de la estrategia. Las combinaciones de parámetros irrazonables pueden reducir en gran medida la efectividad de la estrategia. Además, los cambios drásticos en las tendencias también pueden causar el fracaso de la estrategia. Para reducir los riesgos, necesitamos hacer pruebas de retroceso de varias condiciones del mercado para encontrar los parámetros óptimos; también controlar el tamaño de la posición para garantizar que una sola pérdida no sea demasiado grande.

Direcciones de optimización

Sobre la base existente, podemos continuar agregando otros factores de juicio como la volatilidad y el volumen para formar una lógica de estrategia más tridimensional; o agregar algoritmos de aprendizaje automático para lograr la optimización adaptativa automática de parámetros.

Resumen de las actividades

Esta estrategia considera ampliamente múltiples factores como patrones técnicos y psicología del mercado. La validación entre diferentes factores asegura la validez de las señales. Al mismo tiempo, deja un amplio margen para la optimización y se espera que logre un rendimiento superior. Esta es una estrategia cuantitativa de alta calidad que vale la pena rastrear, acumular y optimizar a largo plazo.


/*backtest
start: 2022-12-20 00:00:00
end: 2023-12-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 30/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
// Psychological line (PSY), as an indicator, is the ratio of the number of 
// rising periods over the total number of periods. It reflects the buying 
// power in relation to the selling power.
// If PSY is above 50%, it indicates that buyers are in control. Likewise, 
// if it is below 50%, it indicates the sellers are in control. If the PSY 
// moves along the 50% area, it indicates balance between the buyers and 
// sellers and therefore there is no direction movement for the market.
//
// 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


PLine(Length) =>
    pos = 0.0
    cof = close > close[1]? 1:0
    xPSY = sum(cof,Length) / Length * 100
    pos:= iff(xPSY > 50, 1,
           iff(xPSY < 50, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Psychological line", 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, "---- Psychological line ----")
LengthPLine = input(20, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posPLine = PLine(LengthPLine)
pos = iff(posReversal123 == 1 and posPLine == 1 , 1,
	   iff(posReversal123 == -1 and posPLine == -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 )

Más.