Estrategia de negociación cuantitativa que integre la inversión y las líneas futuras de demarcación

El autor:¿ Qué pasa?, Fecha: 2023-12-08 12:00:35
Las etiquetas:

img

Resumen general

Esta estrategia integra la estrategia de inversión 123 y la estrategia de líneas de demarcación futuras (FLD) para implementar una estrategia de negociación cuantitativa que entra o sale de posiciones cuando ambas estrategias generan señales simultáneamente.

Principios

123 Estrategia de reversión

La estrategia de reversión 123 se origina en el libro Cómo triplicé mi dinero en el mercado de futuros. Va largo cuando el precio de cierre muestra patrones de reversión durante dos días consecutivos y la estocástica lenta de 9 días está por debajo de 50; Va corto cuando el precio de cierre muestra patrones de reversión durante dos días consecutivos y la estocástica rápida de 9 días está por encima de 50.

Líneas futuras de la estrategia de demarcación

La estrategia de líneas de demarcación futuras (FLD) es una estrategia de seguimiento de tendencias basada en la periodicidad de las fluctuaciones de precios.

Análisis de ventajas

Esta estrategia combina estrategias de reversión y de seguimiento de tendencias, capturando oportunidades de reversión a corto plazo y direcciones de tendencia a mediano y largo plazo en múltiples marcos de tiempo para la negociación cuantitativa.

Análisis de riesgos

Los principales riesgos de esta estrategia provienen de fallas falsas de señales de reversión y errores en los juicios de la línea FLD. Para los primeros, los parámetros se pueden ajustar para confirmar las señales de reversión o agregar otros indicadores auxiliares para mejorar la precisión. Para los últimos, los parámetros deben optimizarse para garantizar que FLD describa los ciclos de mercado con más precisión. Además, también se deben tener en cuenta los errores de FLD cuando se producen grandes inversiones de tendencia.

Direcciones de optimización

  1. Mejorar la estrategia de reversión añadiendo otros indicadores a las señales de filtro y disminuir las posibilidades de ruptura falsa
  2. Comparar diferentes parámetros de FLD para describir mejor los patrones cíclicos
  3. Añadir una lógica de stop loss para controlar los riesgos de pérdida única
  4. Eficacia de los parámetros de ensayo en diferentes productos

Conclusión

Esta estrategia combina conceptos de inversión y seguimiento de tendencias para obtener ganancias estables en plazos de corto y mediano plazo.


/*backtest
start: 2022-12-01 00:00:00
end: 2023-12-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 28/08/2020
// 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
//  An FLD is a line that is plotted on the same scale as the price and is in fact the 
//  price itself displaced to the right (into the future) by (approximately) half the 
//  wavelength of the cycle for which the FLD is plotted. There are three FLD's that can be 
//  plotted for each cycle:
//    An FLD based on the median price.
//    An FLD based on the high price.
//    An FLD based on the low price.
//
// 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


FLD(Period,src) =>
    pos = 0
    pos := iff(src[Period] < close , 1,
             iff(src[Period] > close, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & FLD's - Future Lines of Demarcation", shorttitle="Combo", overlay = true)
Length = input(15, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Period = input(title="Period", defval=40)
src = input(title="Source", type=input.source, defval=close)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posFLD = FLD(Period,src)
pos = iff(posReversal123 == 1 and posFLD == 1 , 1,
	   iff(posReversal123 == -1 and posFLD == -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.