Estrategia de arbitraje de media móvil doble

El autor:¿ Qué pasa?, Fecha: 2023-11-24 14:21:06
Las etiquetas:

img

Resumen general

Esta es una estrategia de arbitraje que utiliza formaciones de promedio móvil dual para realizar operaciones de arbitraje. Combina el patrón de inversión 123 y las subestrategias de Elementos de Volumen Finito (FVE) y realiza operaciones de arbitraje cuando ambos dan señales de compra o venta simultáneamente.

Estrategia lógica

123 Modelo de reversión

Esta subestrategia es del libro Cómo triplicé mi dinero en el mercado de futuros de Ulf Jensen.

  • Ir largo cuando el precio de cierre sube durante 2 días consecutivos y la acción lenta de 9 días está por debajo de 50.
  • Ir corto cuando el precio de cierre cae durante 2 días consecutivos y el precio rápido de 9 días está por encima de 50.

Elementos de volumen finito (FVE)

El FVE es un indicador de volumen puro que juzga si el dinero está entrando o saliendo basado en el rango de movimiento de precios y el volumen de operaciones.

Da señales cuando las dos últimas barras del indicador FVE suben o bajan juntas.

Análisis de ventajas

Esta estrategia combina dos tipos de indicadores para determinar la tendencia del mercado y el flujo de dinero, lo que puede evitar efectivamente señales falsas.

Además, la formación de dos medias móviles representa una coherencia entre las tendencias a corto y a medio plazo, lo que supone una mayor estabilidad.

Análisis de riesgos

Esta estrategia se basa en las formaciones de promedios móviles, que pueden generar fácilmente señales falsas y conducir a pérdidas cuando el mercado fluctúa.

Los riesgos pueden reducirse ajustando adecuadamente los parámetros para hacer que la estrategia sea más robusta, o estableciendo un stop loss para controlar los riesgos.

Direcciones de optimización

Se pueden probar más tipos de promedios móviles para encontrar la coincidencia óptima.

Además, se puede investigar cómo ajustar dinámicamente los parámetros en función de las condiciones del mercado para mejorar la adaptabilidad.

Resumen de las actividades

Esta estrategia de arbitraje de media móvil dual integra dos indicadores de tipo de inversión para el juicio, que pueden mitigar los riesgos hasta cierto punto.


/*backtest
start: 2023-10-24 00:00:00
end: 2023-11-23 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 25/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
// The FVE is a pure volume indicator. Unlike most of the other indicators 
// (except OBV), price change doesn?t come into the equation for the FVE (price 
// is not multiplied by volume), but is only used to determine whether money is 
// flowing in or out of the stock. This is contrary to the current trend in the 
// design of modern money flow indicators. The author decided against a price-volume 
// indicator for the following reasons:
// - A pure volume indicator has more power to contradict.
// - The number of buyers or sellers (which is assessed by volume) will be the same, 
//     regardless of the price fluctuation.
// - Price-volume indicators tend to spike excessively at breakouts or breakdowns.
//
// 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


FVE(Period,Factor) =>
    pos = 0
    nRes = 0.0
    xhl2 = hl2
    xhlc3 = hlc3
    xClose = close
    xVolume = volume
    xSMAV = sma(xVolume, Period)
    nMF = xClose - xhl2 + xhlc3 - xhlc3[1]
    nVlm = iff(nMF > Factor * xClose / 100,  xVolume, 
             iff(nMF < -Factor * xClose / 100, -xVolume, 0))
    nRes := nz(nRes[1],0) + ((nVlm / xSMAV) / Period) * 100
    pos := iff(nRes > nRes[1] and nRes > nRes[2], 1,
             iff(nRes < nRes[1] and nRes < nRes[2], -1, nz(pos[1], 0)))   
    pos

strategy(title="Combo Backtest 123 Reversal & Finite Volume Elements (FVE)", 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(18, minval=1)
Factor = input(0.6, minval=0.1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posFVE = FVE(Period,Factor)
pos = iff(posReversal123 == 1 and posFVE == 1 , 1,
	   iff(posReversal123 == -1 and posFVE == -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.