Estrategia de negociación del oscilador del caos fractal

El autor:¿ Qué pasa?, Fecha: 2023-09-18 15:10:09
Las etiquetas:

Resumen general

Esta estrategia utiliza el indicador Fractal Chaos Oscillator (FCO) para determinar la dirección de la tendencia del mercado para seguir la tendencia. FCO compara los cambios en los máximos y mínimos locales para juzgar el movimiento de precios, con valores entre -1 y 1.

Estrategia lógica

Identificar los máximos y mínimos locales buscando patrones específicos de velas. Comparar los cambios entre grupos adyacentes de máximos / mínimos para calcular el indicador FCO. Por ejemplo, si el último grupo alto / bajo difiere del grupo anterior, FCO es 1, lo que indica que la fuerza de la tendencia alcista aumenta. Determinar la dirección de la tendencia basada en el valor de FCO - ir largo en valores más altos y corto en valores más bajos.

Ventajas

  • El FCO juzga eficazmente la dirección de la tendencia simplemente
  • No se requieren parámetros complejos, fácil de usar
  • Rentable para operaciones intradiarias a corto plazo
  • Flexibilidad para ir largo o corto según sea necesario

Los riesgos

  • Identificación del patrón no es completamente exacta, puede perder giros
  • No puede determinar con precisión la inversión de tendencia, corre el riesgo de pérdidas
  • Las operaciones intradiarias frecuentes aumentan los costes de transacción

Los riesgos pueden reducirse mediante la optimización de parámetros y la adición de indicadores de inversión.

Oportunidades de mejora

  • Prueba diferentes períodos para la identificación de patrones
  • Optimizar los umbrales largo/cortos de la OFC
  • Añadir promedios móviles, etc. para determinar la inversión de tendencia
  • Prueba de robustez en diferentes productos

Conclusión

La estrategia FCO simplifica el juicio de la dirección de la tendencia para el comercio a corto plazo. El rendimiento se puede mejorar a través de la puesta a punto de parámetros.


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

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 22/02/2018
//   The value of Fractal Chaos Oscillator is calculated as the difference between 
// the most subtle movements of the market. In general, its value moves between 
// -1.000 and 1.000. The higher the value of the Fractal Chaos Oscillator, the 
// more one can say that it follows a certain trend – an increase in prices trend, 
// or a decrease in prices trend.
//
//   Being an indicator expressed in a numeric value, traders say that this is an 
// indicator that puts a value on the trendiness of the markets. When the FCO reaches 
// a high value, they initiate the “buy” operation, contrarily when the FCO reaches a 
// low value, they signal the “sell” action. This is an excellent indicator to use in 
// intra-day trading.
//
// You can change long to short in the Input Settings
// WARNING:
//  - For purpose educate only
//  - This script to change bars colors.
////////////////////////////////////////////////////////////
fractalUp(pattern) =>
    p = high[pattern+1]
    okl = 1
    okr = 1
	for i = pattern to 1
		okl := iff(high[i] < high[i+1] and okl == 1 , 1, 0)
	for i = pattern+2 to pattern*2+1
		okr := iff(high[i] < high[i-1] and okr == 1, 1, 0)
	res = iff(okl == 1 and okr == 1, p, res[1])
    res

fractalDn(pattern) =>
    p = low[pattern+1]
    okl = 1
    okr = 1
	for i = pattern to 1
		okl := iff(low[i] > low[i+1] and okl == 1 , 1, 0)
	for i = pattern+2 to pattern*2+1
		okr := iff(low[i] > low[i-1] and okr == 1, 1, 0)
	res = iff(okl == 1 and okr == 1, p, res[1])
    res

strategy(title="Fractal Chaos Oscillator", overlay = false)
Pattern = input(1, minval=1)
reverse = input(false, title="Trade reverse")
xUpper = fractalUp(Pattern)
xLower = fractalDn(Pattern)
xRes = iff(xUpper != xUpper[1], 1, 
         iff(xLower != xLower[1], -1, 0))
pos = iff(xRes == 1, 1,
       iff(xRes == -1, -1, nz(pos[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)	   	    
barcolor(possig == -1 ? red: possig == 1 ? green : blue )           
plot(xRes, color=blue, title="FCO")

Más.