¿Cómo adaptar el período de una media móvil al mercado?

Todo sobre el mercado de divisas: funcionamiento de mercado, estructura, participantes, últimas novedades, etc.

¿Cómo adaptar el período de una media móvil al mercado?

Notapor Mithrandir777 » 22 Sep 2014, 01:35

Hola, he estado programando algunos programas que usan un filtro digital lowpass que captura por ejemplo las tendencias de 2 meses o 1 mes de longitud. Pero me di cuenta de que las estrategias que tienen éxito en backtests, por ejemplo, en 2009-2014 fallan miserablemente en 2002-2008.

¿Hay alguna manera de adaptar el período de media móvil de acuerdo a las condiciones del mercado? Gracias!
Mithrandir777
 
Mensajes: 8
Registrado: 18 Sep 2014, 06:23
Karma: 0

Re: ¿Cómo adaptar el período de una media móvil al mercado?

Notapor FXWizard » 22 Sep 2014, 10:55

Hola Mithrandir777, te paso un par de ideas que te pueden ayudar:

* En el PDF titulado Buildin se explica en detalle la Variable-Length Moving Average (VLMA).

* Otro método que te puede interesar es la denominada Variable Moving Average (VMA) también conocida como Volatility Index Dynamic Average (VIDYA), lo tienes en el PDF titulado Adaptin.

Espero que sirva.

Saludos,
FXWizard
Adjuntos
ADAPTIN.pdf
(255.3 KiB) 490 veces
BUILDIN.PDF
(212.7 KiB) 492 veces
Avatar de Usuario
FXWizard
 
Mensajes: 8493
Registrado: 12 Feb 2008, 15:17
Karma: 35

Re: ¿Cómo adaptar el período de una media móvil al mercado?

Notapor Mithrandir777 » 24 Sep 2014, 07:32

Muchas gracias fxWizard por el material! Da gusto conocer personas que compartan. Estuve leyendo y el concepto es interesante, por lo que entendí ata el período a la volatilidad del mercado. El problema es que para calcular la volatilidad necesitamos un período también y seguimos con el problema del principio. Tal vez se podría calcular el período a usar para calcular la volatilidad calculando la autocorrelación de la serie de precios? Por ejemplo cuando la correlación de la serie de n precios sea < 0.10 creo que no tendría sentido seguir promediando la volatilidad.
Mithrandir777
 
Mensajes: 8
Registrado: 18 Sep 2014, 06:23
Karma: 0

Re: ¿Cómo adaptar el período de una media móvil al mercado?

Notapor Mithrandir777 » 06 Oct 2014, 04:38

He estado muy ocupado con los estudios y el trabajo de las últimas semanas. He añadido a mi script un filtro que mide la volatilidad. Podría haber usado el ATR pero por alguna razón me pareció mas interesante el Alligator así que aquí está el programa y los resultados, el lenguaje utilizado es lite-c de la plataforma Zorro:

Código: Seleccionar todo
function run()
{
//set(PARAMETERS);
StartDate = 2002;
EndDate = 2008;
NumWFOCycles = 10;
LookBack = 2000;
vars Price = series(price());
var period = 500;
vars Trend = series(LowPass(Price,period));

Stop = ATR(100)*4;//optimize(4, 2, 8);

vars Meanness = series(MMI(Price,200));
vars Filter = series(LowPass(Meanness,period));

Alligator(series(MedPrice()));
var diff = FisherN(series(abs(rBlue-rGreen) + abs(rGreen-rRed)),500);
vars diffs = series(diff);
var Threshold = 2.5;//0.1;//1.0;//1.5;//2.5

static bool Filter2;
if (crossOver(diffs,Threshold) or crossUnder(diffs,-Threshold))
Filter2 = true;
if (crossUnder(diffs,Threshold) or crossOver(diffs,-Threshold))
Filter2 = false;

if( valley(Trend) ){
exitShort(); // close opposite position
if(falling(Filter) and Filter2)
enterLong();
} else if( peak(Trend) ) {
exitLong();
if(falling(Filter) and Filter2)
enterShort();
}
}


Los resultados y su gráfico:

Walk-Forward Test Workshop4_2Pc EUR/USD - performance report

Simulation period 01.05.2002-31.12.2008
Test period 30.11.2004-31.12.2008
WFO test cycles 9 x 2742 bars (23 weeks)
Training cycles 10 x 15538 bars (134 weeks)
Monte Carlo cycles 200
Lookback time 2000 bars (17 weeks)
Assumed slippage 10.0 sec
Spread 2.3 pips (roll -0.10/0.04)
Contracts per lot 1000.0

Gross win/loss 117$ / -44$ (+941p)
Average profit 18$/year, 1.48$/month, 0.07$/day
Max drawdown -34$ 47% (MAE -42$ 58%)
Total down time 41% (TAE 9%)
Max down time 68 weeks from Jul 2007
Largest margin 5.00$
Trade volume 17479$ (4278$/year)
Transaction costs -3.02$ spr, 0.10$ slp, -0.88$ rol
Capital required 34$

Number of trades 17 (5/year, 1/week, 1/day)
Percent winning 41%
Max win/loss 42$ / -16$
Avg trade profit 4.28$ 55.4p (+215.8p / -56.9p)
Avg trade slippage 0.01$ 0.1p (+0.6p / -0.3p)
Avg trade bars 151 (+346 / -14)
Max trade bars 542 (4 weeks)
Time in market 10%
Max open trades 1
Max loss streak 6 (uncorrelated 6)

Annual return 52%
Profit factor 2.65 (PRR 1.25)
Sharpe ratio 0.75
Kelly criterion 1.08
R2 coefficient 0.385
Ulcer index 6.0%
Prediction error 125%

Confidence level AR DDMax Capital

10% 103% 14$ 17$
20% 93% 17$ 19$
30% 85% 18$ 21$
40% 82% 20$ 22$
50% 77% 21$ 23$
60% 73% 22$ 24$
70% 67% 25$ 27$
80% 62% 28$ 29$
90% 55% 32$ 33$
95% 50% 36$ 36$
100% 33% 58$ 54$

Portfolio analysis OptF ProF Win/Loss Wgt% Cycles

EUR/USD .166 2.65 7/10 100.0 ./XX//\\\
EUR/USD:L .169 3.14 5/6 88.4 ..\///\\\
EUR/USD:S .147 1.60 2/4 11.6 .//\...\.

Imagen

Como se puede ver, utilizé cercanía de las lineas del Alligator como una medida de la volatilidad, luego normalizé sus diferencias y cuando salen de un umbral (que es mayor cuanto menos volátil el mercado es, este umbral se puede optimizar adaptando a las condiciones del mercado, tal vez usando equity curve trading para eso) lo considero una señal de compra o venta.

Esto ha convertido el sistema perdedor en uno ganador con buena ratio de Sharpe para un sistema de tendencia y un índice de úlcera de 6%. Qué piensan? ¿Creen que tiene algún sesgo o curve-fitting? Espero escuchar sus opiniones. Gracias!
Mithrandir777
 
Mensajes: 8
Registrado: 18 Sep 2014, 06:23
Karma: 0

Re: ¿Cómo adaptar el período de una media móvil al mercado?

Notapor FXWizard » 06 Oct 2014, 10:54

Impresionante Mithrandir, has probado en más pares y/o estableciendo filtros horarios para evitar la sesión asiática?

Saludos,
FXWizard
Avatar de Usuario
FXWizard
 
Mensajes: 8493
Registrado: 12 Feb 2008, 15:17
Karma: 35

Re: ¿Cómo adaptar el período de una media móvil al mercado?

Notapor Mithrandir777 » 09 Dic 2014, 07:01

FXWizard escribió:Impresionante Mithrandir, has probado en más pares y/o estableciendo filtros horarios para evitar la sesión asiática?

Saludos,
FXWizard


FXWizard, disculpa que dejé medio abandonado este tema dado los estudios y que en otro foro me dijeron que no me preocupara tanto por "hacer rentable" un período en el pasado que no era rentable para el método de trend following, más bien que aceptara que el mercado cambió...

Con respecto a lo que propones, me lo voy a anotar y reporto aquí los resultados cuando lo pruebe. Te puedo preguntar cual sería la razón de evitar la sesión asiática? Es porque en ese horario no se comercian tanto los pares "occidentales" (falta de liquidez de EUR/USD,EUR/GBP o sea mayor slippage)?
Mithrandir777
 
Mensajes: 8
Registrado: 18 Sep 2014, 06:23
Karma: 0

Re: ¿Cómo adaptar el período de una media móvil al mercado?

Notapor FXWizard » 09 Dic 2014, 11:20

Me refería a evitar la sesión asiática porque es donde menos se mueve el precio en los pares europeos y por tanto posiblemente tengas poca volatilidad y por tanto menos oportunidades.

Saludos,
FXWizard
Avatar de Usuario
FXWizard
 
Mensajes: 8493
Registrado: 12 Feb 2008, 15:17
Karma: 35

Re: ¿Cómo adaptar el período de una media móvil al mercado?

Notapor Mithrandir777 » 09 Dic 2014, 17:34

FXWizard escribió:Me refería a evitar la sesión asiática porque es donde menos se mueve el precio en los pares europeos y por tanto posiblemente tengas poca volatilidad y por tanto menos oportunidades.

Saludos,
FXWizard


Ah claro, o sea para evitar entrar en operaciones que dan retornos pequeños o incluso terminan en pérdidas por las señales falsas, perfecto!
Mithrandir777
 
Mensajes: 8
Registrado: 18 Sep 2014, 06:23
Karma: 0

Siguiente

Volver a Forex en General

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados