Advertisement

Responsive Advertisement

CL Futures 5

En el primer post pudimos ver que hay un edge negativo dentro de la serie

df['decision1a']=np.where((df.Hour>=9)&(df.Hour<=11),1,0)

df['variable1a']=np.where(df.decision1a==1,-df.diferencia,0)

lo pasamos a positivo y analizamos la serie

total aciertos 5628
===============
total fallos   5341
===============
total          10969
===============
% aciertos     51
===============
suma aciertos 1721.13
===============
suma fallos   -1558.11
===============
ratio 1.10462675934
===============
sharpe         0.860376683514
===============
<matplotlib.figure.Figure at 0x7f32b40dff50>
95% de no perder mas de
********************************
-1.09

Mediana de la distribucion, trata que sea positiva
********************************
0.00999999999999

media de la distribucion
********************************
0.0391788687223

maxima ganancia mensual
********************************

4.96

maxima perdida mensual
********************************
-4.38

desviacion tipica
********************************
0.710625517113

dos veces la desviacion tipica
********************************
-1.3820721655

tres veces la desviacion tipica
********************************

-2.09269768262

Podemos ver cierta tendencia en la serie

Hour 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 All
0


















1


















2


















3


















4


















5


















6


















7
0,01
-0,15













-0,14
8
3,15 -0,2 -1,4210854715202E-14 -3,6 -1,84 0,93 -2,03 7,06 2,52 3,84 -1,22 6,91 7,61 2,69 17,08 4,46 1,27 48,63
9
0,26
0,66 -0,1 5,39 2,71 -0,74 23,14 4,75 -6,55 10,02 7,42 6,58 8,43 -2,05 -1,41 0,04 58,55
10 9,09 -0,91
0,01

10,86 6,09 32,72 12,1 -2,74 -14,69 2,65 -3,41 3,07 0,84 2,57 3,4 61,65
11


















12


















13 -0,03
















-0,03
14 0,09 0,43















0,52
15 -0,21
















-0,21
16 -4,34 -1,63















-5,97
17
0,09















0,09
19


















20





-0,07










-0,07
21


















22


















23


















All 4,6 1,4 -0,2 0,52 -3,7 3,55 14,43 3,32 62,92 19,37 -5,45 -5,89 16,98 10,78 14,19 15,87 5,62 4,71 163,02
le aplicamos nuestro rimer arbol de decision

df.variable1a=df.variable1a.shift(-1)
total aciertos 3258
===============
total fallos   2964
===============
total          6222
===============
% aciertos     52
===============
suma aciertos 984.54
===============
suma fallos   -830.78
===============
ratio 1.18507908231
===============
sharpe         1.09063943062
===============
<matplotlib.figure.Figure at 0x7f32b40f7050>
95% de no perder mas de
********************************
-0.84

Mediana de la distribucion, trata que sea positiva
********************************
0.0

media de la distribucion
********************************
0.0369382950355

maxima ganancia mensual
********************************

4.96

maxima perdida mensual
********************************
-4.09

desviacion tipica
********************************
0.528148547685

dos veces la desviacion tipica
********************************
-1.01935880034

tres veces la desviacion tipica
********************************

-1.54750734802


Vemos que mejoran notablemente los resultados. 



total aciertos 5628 ===> 3258
===============
total fallos   5341 ===> 2964
===============
total          10969 ===> 6222
===============
% aciertos     51 ===> 52
===============
suma aciertos 1721.13 ===> 984.54
===============
suma fallos   -1558.11 ===> -830.78
===============
ratio 1.10462675934 ===> 1.18507908231
===============
auma total 163.02 ===> 153.76
===============
===============^^^^^^^^^^^^^^==================

95% de no perder mas de
________________________

-7.64 -2.579

Mediana de la distribucion, trata que sea positiva
________________________

3.92 8.77

media de la distribucion
________________________

0.865639744054 11.7903579457

maxima ganancia mensual
________________________

81.79 66.97

maxima perdida mensual
________________________

-17.3 -5.63

desviacion tipica
________________________

3.6267697091 2.58724462202

dos veces la desviacion tipica
________________________

-6.38789967415 -4.35632201197

tres veces la desviacion tipica
________________________

-33.9883639018 -30.5818587178

ratio sharpe anualizado
________________________

0.860381850444 1.09063943062


Pasamos a tener un ratio de sharpe de 1,10


Hour 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 All
0


















1


















2


















3


















4


















5


















6


















7


















8
2,6 -0,64 1,38 -2,42 -1,7 1,38 0,6 7,51 6,53 2,43 7,92 -1,39 6,04 -0,14 7,34 2,78 -0,36 39,86
9
0,5
0,88 -0,99 2,2 3,1 0,9 16,96 12,93 3,95 7,54 11,74 11,37 4,53 3,59 -0,98 -0,64 77,58
10 0,74 0,43



5,41 2,78 26,84 4,95 1,1 -6,85 -8,36 -2,17 4,39 4,21 4,63 1,65 39,75
11


















12


















13 -0,03
















-0,03
14 -0,04 0,43















0,39
15 -0,22
















-0,22
16 -3,32 -0,25















-3,57
17


















19


















20


















21


















22


















23


















All -2,87 3,71 -0,64 2,26 -3,41 0,5 9,89 4,28 51,31 24,41 7,48 8,61 1,99 15,24 8,78 15,14 6,43 0,65 153,76



Aplicamos otro posible arbol

df['variable3a']=np.where(df.decision3a==1,df.variable2a,0)

total aciertos 2999
===============
total fallos   2707
===============
total          5706
===============
% aciertos     52
===============
suma aciertos 912.45
===============
suma fallos   -754.89
===============
ratio 1.20871915113
===============
sharpe         1.16936675346
===============
<matplotlib.figure.Figure at 0x7f32b4c5cbd0>
95% de no perder mas de
********************************
-0.8

Mediana de la distribucion, trata que sea positiva
********************************
0.0

media de la distribucion
********************************
0.0378511969826

maxima ganancia mensual
********************************

4.96

maxima perdida mensual
********************************
-3.74

desviacion tipica
********************************
0.504297526279

dos veces la desviacion tipica
********************************
-0.970743855575

tres veces la desviacion tipica
********************************

-1.47504138185
y lo podemos comparar con la serie

**comparacion**
<matplotlib.figure.Figure at 0x7f32b42fc290>
total aciertos 3258 ===> 2999
===============
total fallos   2964 ===> 2707
===============
total          6222 ===> 5706
===============
% aciertos     52 ===> 52
===============
suma aciertos 984.54 ===> 912.45
===============
suma fallos   -830.78 ===> -754.89
===============
ratio 1.18507908231 ===> 1.20871915113
===============
auma total 153.76 ===> 157.56
===============
===============^^^^^^^^^^^^^^==================

95% de no perder mas de
________________________

-2.579 -2.13

Mediana de la distribucion, trata que sea positiva
________________________

8.77 9.48

media de la distribucion
________________________

0.818167232075 13.1568331118

maxima ganancia mensual
________________________

66.97 67.3

maxima perdida mensual
________________________

-5.63 -4.42

desviacion tipica
________________________

2.58724462202 2.40951756485

dos veces la desviacion tipica
________________________

-4.35632201197 -3.98062680431

tres veces la desviacion tipica
________________________

-30.5818587178 -32.5237259293

ratio sharpe anualizado
________________________

1.09063943062 1.16936675346


Pasamos a tener un ratio de sharpe de 1,16


Hour 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 All
0


















1


















2


















3


















4


















5


















6


















7


















8
2,39 -0,57 1,21 -2,37 -1,44 1,55 -0,43 5,93 5,63 4,61 7,63 -0,66 5,78 -0,34 5,5 2,34 -0,28 36,48
9
0,5
0,92 -0,55 1,77 3,21 2,03 22,32 15,08 3,83 7,06 13,21 10,54 4,53 3,95 -0,76 -0,78 86,86
10 1,85 0,8



5,86 0,53 23,88 7,78 3,31 -10,61 -10 1,27 4,26 3,78 3,94 0,46 37,11
11


















12


















13 -0,03
















-0,03
14 -0,04 0,43















0,39
15 -0,22
















-0,22
16 -2,83 -0,2















-3,03
17


















19


















20


















21


















22


















23


















All -1,27 3,92 -0,57 2,13 -2,92 0,33 10,62 2,13 52,13 28,49 11,75 4,08 2,55 17,59 8,45 13,23 5,52 -0,6 157,56


Podemos aplicar un filtro de año

df['variable4a']=np.where(df.decision4a==1,df.variable3a,0)

por ejemplo mayior de 2005

total aciertos 2475
===============
total fallos   2206
===============
total          4681
===============
% aciertos     52
===============
suma aciertos 863.81
===============
suma fallos   -707.54
===============
ratio 1.22086383809
===============
sharpe         1.17043025013
===============
<matplotlib.figure.Figure at 0x7f32b569b6d0>
95% de no perder mas de
********************************
-0.8

Mediana de la distribucion, trata que sea positiva
********************************
0.0

media de la distribucion
********************************
0.0375857347059

maxima ganancia mensual
********************************

4.96

maxima perdida mensual
********************************
-3.74

desviacion tipica
********************************
0.499311773125

dos veces la desviacion tipica
********************************
-0.961037811545

tres veces la desviacion tipica
********************************

-1.46034958467

y lo podemos comparar

**comparacion**
<matplotlib.figure.Figure at 0x7f32ac9122d0>
total aciertos 2999 ===> 2475
===============
total fallos   2707 ===> 2206
===============
total          5706 ===> 4681
===============
% aciertos     52 ===> 52
===============
suma aciertos 912.45 ===> 863.81
===============
suma fallos   -754.89 ===> -707.54
===============
ratio 1.20871915113 ===> 1.22086383809
===============
auma total 157.56 ===> 156.27
===============
===============^^^^^^^^^^^^^^==================

95% de no perder mas de
________________________

-2.13 1.3605

Mediana de la distribucion, trata que sea positiva
________________________

9.48 12.495

media de la distribucion
________________________

0.838408325385 16.1822159359

maxima ganancia mensual
________________________

67.3 67.3

maxima perdida mensual
________________________

-4.42 -4.38

desviacion tipica
________________________

2.40951756485 2.39449837762

dos veces la desviacion tipica
________________________

-3.98062680431 -3.95504086915

tres veces la desviacion tipica
________________________

-32.5237259293 -30.1747480514

ratio sharpe anualizado
________________________

1.16936675346 1.17043025013


No es que mejore mucho pero algo le mejora

Hour 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 All
0


















1


















2


















3


















4


















5


















6


















7


















8




-1,44 1,55 -0,43 5,93 5,63 4,61 7,63 -0,66 5,78 -0,34 5,5 2,34 -0,28 35,82
9




1,77 3,21 2,03 22,32 15,08 3,83 7,06 13,21 10,54 4,53 3,95 -0,76 -0,78 85,99
10





5,86 0,53 23,88 7,78 3,31 -10,61 -10 1,27 4,26 3,78 3,94 0,46 34,46
11


















12


















13


















14


















15


















16


















17


















19


















20


















21


















22


















23


















All




0,33 10,62 2,13 52,13 28,49 11,75 4,08 2,55 17,59 8,45 13,23 5,52 -0,6 156,27

por último podemos ver si aplicando algun tipo de media al edge podemos mejorar

total aciertos 1245
===============
total fallos   1118
===============
total          2363
===============
% aciertos     52
===============
suma aciertos 419.15
===============
suma fallos   -336.85
===============
ratio 1.24432239869
===============
sharpe         0.912673194343
===============
<matplotlib.figure.Figure at 0x7f42004067d0>
95% de no perder mas de
********************************
-0.48

Mediana de la distribucion, trata que sea positiva
********************************
0.0

media de la distribucion
********************************
0.0197772999724

maxima ganancia mensual
********************************

2.81

maxima perdida mensual
********************************
-2.18

desviacion tipica
********************************
0.331525620095

dos veces la desviacion tipica
********************************
-0.643273940218

tres veces la desviacion tipica
********************************

-0.974799560314


Pero no lo mejora y no le incluímos

Publicar un comentario

0 Comentarios