From 292b43e84593257503071128fd4f6c723c1d75d8 Mon Sep 17 00:00:00 2001 From: Jaime Andaluz Date: Thu, 12 Jan 2017 11:04:51 +0100 Subject: [PATCH 1/6] test --- My test R.R | 1 + 1 file changed, 1 insertion(+) create mode 100644 My test R.R diff --git a/My test R.R b/My test R.R new file mode 100644 index 00000000..8cde7829 --- /dev/null +++ b/My test R.R @@ -0,0 +1 @@ +print("hello world") From d610a36445c5571a30833eb7ad6a90baf4a1cdeb Mon Sep 17 00:00:00 2001 From: "config(repo, user.email=readline(\"Github email: \"))" Date: Sun, 22 Jan 2017 18:05:15 +0100 Subject: [PATCH 2/6] testing --- .../Rtutorial/Group55/data/DataSet1.Rdata | Bin 0 -> 330618 bytes .../Rtutorial/Group55/data/groupporject.Rmd | 30 ++++++++++++++++++ Exercises/Exerciseset1/dataSet1.R | 8 ++--- 3 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 CourseSessions/Rtutorial/Group55/data/DataSet1.Rdata create mode 100644 CourseSessions/Rtutorial/Group55/data/groupporject.Rmd diff --git a/CourseSessions/Rtutorial/Group55/data/DataSet1.Rdata b/CourseSessions/Rtutorial/Group55/data/DataSet1.Rdata new file mode 100644 index 0000000000000000000000000000000000000000..b7728324cca81a0f160cad804ef1551d53a2edd4 GIT binary patch literal 330618 zcmV(xK5$h&L4AT);V*}Is4xG+Slu>`{*f}2=6!9Pew+z zn~a=%H`#9TosWBV@4W3I+e5Z*XL~^3-`n0@&(S}?*UN9`Fd8zli+jMSfpDkMiv?q1 zPqWJHl|h>Vn?ARW$KcI3qG8u1fLVp_H*fl^VDfasAl=0o2u>AW$)#>b(-8Nd2*qu* zC1b6wPx=l?6qm1ZO;Mri#hx%Hw`<_;MFA{kS0K#9gopT52n5@1f}plO*gYmrNSMw8 zvGFVYo!5WR+#(mOTvwf3cotwY)%b{axf&M1VN`Y$frR0NV*FWt?WN0wpiYZzgZEkxe`MbI&F?xC*gsU?7FP{X$4CuM z`@GQBGV%E%CkG^bJY-1O9)Tg|?>lbjA45W`acg34JI0DmiLzThfFwIw%+UG=nUWWz znEtd=SQL&j}tj6?{@a{H1&p@_VIwoBYtRG;X?KHT^;I|J1yOHRY&`J`a}IZ zzrnH5+k*pw(b}u6!2j?Z__aJg?hz4$(Iu(-yh`T5yNXff)GkBxyCxx-Pt^hmcdy4E z4=)C54OT@arBbs0_rgnre8=$j_L!CDIQKlY0KG?bcU50}hS}$@c3&}cM*|}RXX&VG zko1lDb*tY;ATgGm7;(}E=LP0zyA&I=f4eDt!dnN77aC39w&{WWd$;5EtRy)R4#~{4YkB)-@AbL0Bykj64M$)b;WLTX0@A}+GURE*c7N})+`1`e9MYM92 z81-!r{BOSxM_kH3CP7qQ*NZ)^_)==aT+?CjxZy)6wW|SA4gcYG6I=9>yX~3# zeJ|P`CUW}}M_@76f-~DUAtdB4_>MTR0HL10OT@Da2>B1l%2Ze42D$5jKkGKY*b$Sy*~vuzCCKhDg2RT*5*{BGj9Q3;Ns^ws35erUGv`ltCuKDzzxpk@qc zg@~U8bn69iNYtSdqmp6+&pj=BlLVa6YLY*MCu<8xwoZL4uQuRf+o!*m#>!Fo_XEC= zBcABd^=X>Ga~5JGatFFp4`9H&r_E7iNAzdy2+6W#1Fr!M_n^XOXg2X`-_Kl1j6KU` zu{3uO;|%uAkL0|8P``;F%4RjtKE28OoUnz7!;a58q{kp_zc{#0Cqkk^%)eoczj(3w z{$HziMG&;td92aaZYN&?PHgc%g$(6JkNS^~!Sn6-sftKRv@40(77j8-hv>f0*N?2g zd%$MgtNtK((ga2CelddlLxd!&Th++_SND;L$`mL&QQo_FQ3WqN((FC-(F!ytzkD%k zJb{`||ES#Ey$*r4E4d%FMIh{1t!R7mJ=6@{Ji%c=0VxfGA5Pv42R*^*K1#A0B$)k8 zdrUQpQQ!7!Gq($(P3p~4f_z?(WbENAa^)NtzK}Q}@;(#|M;`qs8R7?jifk@U%ANV> zkL2pqKIOMG@2bv-L>-uPRfi>D5;w{#SIZJt{)PQHXN@?9`^ zV+0KD2~nIP@d9tf3E!0xYKX8Oa1no74d#J|-fP=`M&o}s?Fm^~5Op^+&YR;kB>m!G zU(8TPw@=c$H|oBimF<(uy4}X$<(Xb;vRehD=HzKTgs)&$AUI|5W`L7ChlS8nS#%P< zR@D+Rj6s`cYeXmOAe~c6wLG~9{op+&#FK)AAUvsTmgtuX~}ZEQjm94nzc4h18jeX3GnxaqC?zs$(ia{h};$VmAB;8LIU;^{L;>ezZa)>4hxo!b$IvqivRc#~Org%#2qN*{gr-#pBDSniLe zgTya2f@Lp4kTfCDA$@WkNT*ER9ebMy@hsv)=0}*(IHf!-MbR0Onv44y_RXXHkB355 zb96vxyis*slL>+s%-DtJIY57Cr0vv^~?X z3&EggR5oeEYKXSF&S019193JN!gepKVZhgK54s;tVDt&4H|1?Am@)WsI8vJr{QnND zddOCQQ&?!%xlJ96r@Z&1^V=dL#VDs$u&uF%r;eaA1M@oK*O`rMfa*9 zscMw<+gc?M_P)FKP4YcNxYq?GHDIOO;GW|(g^&`$A-g7` z4Ow1vt=r$rAmKWv|Ie>RNa%9xGrBqr{@iE&X+-m5D88~|J7@>_q;9_LZz7-*7Q-UW zB!~W)8z|_{1ns2#=Zva^yNl6wdjYC?c|g= z`1u1AT6D2*$yuVxj-i@m7{~leG$mCOhap_)=&{)jT?l84x_whu8nX8LpX0sjhlG1K zdbkoaz^b&`zb+vJ!XiAbG|$jrDm^7{=e2ThDPE`ZEyw^drQ%H(k6oZ-w#s1Bb?L_kypI4zVRFAKbU5 zuLiMP0@tILiRd*4{!>=X^Y#6Zy!q^(%3(M34-2RG@ca(u4P4!;zm^DG$)EksQQw1- zv&9>0+i9q-S!;Gp@D=!RD4P6zV2MiineN=0bwH&@^%1&Lqu_q=g6jwqH6#+quapR0 zL!HAS&R5PGBH?%n<1>Z~aLf*LsGs8mrI;1HJ2T8ce7sSgK_@Wx>GO~# zp*s+HmY`hsS`#x3tho-|=s}k`TMKR474V8X%flCU6DtUwf5(EtApc2uSw@RDB(&Sl zaZC3=28BI;q0B+d`ZuJxBqfMqOnH4P{0!*j=^C#(6p!hGNw>`(@I!E2M#ik+Ys@%% zuJvHIClJiCL;eQWLuIwP^zUT`3|PCYoI=G1p&~)dADi0IS^fCsuF4_sdHv%{qmCNL zdO8`~S<_>laNA$AwKnu$+dJ}Ru?;dK`5(_G?ML(Sf`<=56^e?A9<}-i{{OxYd{T9j zzBQfz^Uk4N(pPLDaNZ^Iy~Z^9_9jnfy$D3&v-2Hx)&vZXxOlj->&uS+ZV6MG$%dGk z*Vg*|S1~T+q%1j=D5S8R*UCF41%bVjEm@@J;D6akRg&izgmIM}x>%wCF-$(7CNzlQ zE&FxLRd~_k!`G0ygBQ`c{f>wW{a(<%rYGH@*9_;+tnatHIe~Ve3B$~c?=e$^5MIEb ziLv8lA6L#hLYg2NYGp@3&f-4WuUkhkbSd?6i-sEJo|#bf+c<-WG}epTtTPvDt&W1(w|>eeSzgt3KR-Gkt!QH4SA_+Xy`l}Ij-VAz+ zUs3##L4)z9Y(o_j_h9f)z-IC_dk|wEywJr$!n~8^f3F(}K-!H8R_+8UNclifPn8r3 z*^35Am(`Xrr2e$?!H_%PZ~OK75n)cqIC3H_>C6QP+bpDcyN@2T<0^g>mV5`t^ofh9 zpUc2SK=@9>%q-|I6Zpwb?SW$NiZ7!|;XD6p%BD801J0HD)P+?VsO`jV#mA)#$)ep} zAMz8?S?wA-dq*q=*K*H)3#dd=g(cbf7xyvCXZ)(~=|^D0a4)l!@-W2S60BqJy#XPo zZ;4;~dItljo8n$l&SA_8sw|6;YZzHJNW8;z1VRnJ48QU(z-$$rEILXex)i=Nmwm<$ z1fQ;9tJn_6W&cuVbGQXE>1dbiS0qvC&`&45f9?>#n&QpT^Z@KEe!Gg%zQRn4)tk4( ztiVxa;5>GKSW$qkGtTWY^~BL<_-(qDK-XMx7Q_Y_ctIir%veAc^_9}s&@ zi8dzZI7E~7@gDAf4}nSo{K7oDK=GyWvH3)O$o#zSK401bkv%f)hYdy0!1yp*SYQn* zT4pjG%;AFg&vSpO?TgX9WAJm7CNIPk&|N?Bf(*52OWvNWXab+)R_EcUVhphnOZ@-whVF!fng#*c^`_SvB{?!vz0}y{~7%2u+!MXPM-;YIs z;8ok&;BeLg98bUatxLxbq|3(ssV~{k?n=|SGjHX96jQS>Jp3NLjtpe; z?=#o_LJH?}jFC1o3ZE~bu8DR5KReE^C%^6nr|X}d?jAggF{2l$4A*~RT*uUwQQi;C zF%`@6z5WM{lh){ZC2qQ1$I8xQe+7r)67O3@)8M((m_DTYUS`zmej z_%GIH*K?=Tkti=>^lz^XWVWO&uDGY8dkw|E=?9k~ZoSyyX@)pB~GP<>tS2%yhJg z=Z@V1V}~aniKpzrwqzWM)bEKMRUdmKJj1~tc+dvi; zuhmg9#9o1nl#;;3dqR-sFd=iJVhDY$1Me$er$hfZ?<1|{C&2H1-+a}(`;e%`W~<2e z4O0Ay2J6k9pgD70&Z)DzfUy3opo+;CJQaU2f0psYaO&Kw_af7faBGs~eXAc>%R8lY zH8((P`QyS+p^s?wiJ&t3G#esbebJy1+?jvE%^NH;WDv-DDJSkP2MCpM*R5udK>|Z_ z;$Vg~T6x}fbblfM;hK8_pFC**!^)nYOk~Ud)kD@(sq4(KXaD=2t54k9W4?lF%iN|G z4<0}Suj0Q;gHD*G$Q}Regcy3??%Q2LB?IXl93;+RM$DVi{jf2Tgg$%?aEKxiuS`(M zWmMHd>M_5KSBNc3#l^zKn@o zvKe;X#h5S|oOJuzJmj@MHx<)*0oil6ESW}<(c%5el^Jtk40e4JU;q9s60H}~V;e;v zzoVk91UXkEPEjl`K>*7aTq&=}QpoZJYoaH=!V*gyqyZH8m!i>#qCE9JbL z_atOh*uN26+6Tcn`aNu@52F2axMtgwu}p4Uoic42d@oAOSGRBDb}`IK-&Ai zq{pUL(Szssou%e!h*7$+lrb0JNUf*} zTBh0uzQ?kZkXT|;6Bv30rE>c2X) zYopVBJXQ}0E>jkd6u6+UbiS~|M@Za}$$Mzm8`+sz zbO&N*xm2_!%OShuR|dCgI{@Wju79Y&eieG%4^g>c_%NG+!9L~TJB)FAoTkmGhJyl|2a2m7>>YaUx(Tqc{C9V=7;6wRJAby3U zr4Pq-JOm-PSY?zNJR!93&R#Jw542yUIrAn@5=ei0OUVvCfcU|gLa#f|F{bF42y^#4 zNE1lSI4-=o<4b9YWY^5lr;_`Xryc<^Lug1+Y^<2&Jg&Ikq!X<3T*@R&PGMPE*aYWk zZwNAAE6w)^fZUajZzdEjVnp4(gzz>R$gOXf+|#9w0l|SJ0h6^-_WWehJ@O@J7}hF)Qvko3dE+rhjX&bep1Q^*HF-1E04hIaxnRPBRh z^O-=*g7};Ei!actf8ecl*94NR1rVQ{0uZo^0V z7`X8GkJ@V)%-Z+FvwMvVGYeG=fBqeT_-7W%M+a;$jSzNc|GPVo%n|Ias33=rBzJ=U8sjS`$-r&f|OwWGR0%O^Z?lX%xh+4mHXda=J#^{d* zpGWuEBI%fU`jy^mpq+Mgoyjr{!t#!X&1-T)PS!G2IJY9ii2Sl7Wjz7Cm2tzruC!oJ zYh~{DJPX6)>16VsOQ8SJ>aATrDKK(~zwg4l4my~ZFbCsXNTPh;JxeP1-|t1=@-jen zYKpqF@)AUjH_GIVEJ3W(&3XloMC3QR=Bs|L1B~{klczO?fNDd=$|GI}2v%(v4Lxs; zz7pXV6*@klr%D_v;|Y2QT-V*bTsRJ)lpBFkTz?=?#*J+G+A|De{57$r{sQyJS<=@Z zr=VUc=lOs=xtRQ=?1?bzA+-K?;y__z07mlZ- zy%4p-B$<%hZ?^ZqUS;^)E-yoLx%}aNol%T8yng+CVb|kbhJrhG`Vy9Q;HyZU-?Y&Np^qnO&HoTF zB4jLamLe00{nGWD0Xy8(Z|_*gwg@?e@h{RlkAWBYJRgCyed{dd(kD7Q6fml0+c!w0|!q@@r7Dxh+81lE_B*4;S=0IlCmO znt*}vbcmt6-* z?<-ps)Lx;{#;Y?0)GU~ndF1Mv5!Zs_%YF&obr)-6J)4qn>!{=q3zt9+P9Y!kS%b)A+q=uYU_93UikS4GR$p0 zlrT+V5I0iAFB(Axtr}asU>BM_{21-6;)of=;klB6Tv$wUYD&tFMS<-f`kbe2u~@uw zUqajgh`4R&D9c3-F)vkOH&ib{>{*>UcEMr@`a#7jWE%k_%R_#z9e3)q;kZhr{LVag zFip5ViH7X>wdG!JbEpb<9Qc&4?tghIbJ5%k<06E<`aDp_2&Ebx@<<|tV3L1zT9ma$qmqK*Qk)Z_77t~aOr!f5kz_keK~wv27+YTP0yNTL3G%pIWc?< z?4=W|kNu4U62}F@PgZTz)uy{K`8B#`_ygxQbAn{l(@25AJKx}@>%yPa4GfbX3Ry{CB+t$RNw2c~AM)AXS zU^EyK@vw)vck0p}d5(#>lz@6Q`Wu178C@YL)z`|)5% z6krqcnG?m_@^|s4$NAB-u8+m)+$qQlJIf|i>6FDjOg7UcoXB0mb zLJprIg~Ww5jQMe%ZgwYsazej}1TmN0T zRQECMFyZ9ju3;#cog=I0iGjMMdH;&`Z3tr^U40|pkNyj%k9H^&LLPakBl|x?2%gcW zVQd_QtgtAcI@$!mx>9#f90|s_CJGSPx`ILZZNrUTH$Z3gKuEiQ4rZNN!)c9=kZ@5; z(cV!Rf?jw(snxN=$RNEQl^s3}$>mJtntczX5&fZ3Rv`#kT@bO4?nDA@!rqw!x6!#j zlwf;LA4?BKy!`O|Ev6D^2INXLu~|hoQ$3j$s%Bo2StNyUQ&znjRaNj(s`oU*^p@hl`hJ9Rdr{4z$~7xCZE!h}S}cM9SS|FD3S!Zji2 z8x%M(=}__gTv0~ zscjX?>6C@itv}QQycsZq+t6S{R3AyXde6NxRUp}ViHW5+4I_o4lFNgm!D;39cF;aY zj4=s2KF=2dQS^6zJaD}QsY01{N=yux9d!4DQH~Qty)Ha;aMxSN3^G@o4su5G`cNms zw^TdlF~FUz^%_D4>QjZnr@)u;*rTacBZxhueeK~DMKou+HQPz2io~9+C;G2>k?42B zEzc|hQoTAvt!Iv6&M(t;E_z!Ga{AoEM1K_A&YWQJ8zf@P7Bj&LtjP6Qdq!j6Zz^if?PNo-g+jtX=SBg&@`Sctk)^yGai7bI*DxK@k!3prMT9Z2OJc;?v z$9`sxCSmle0^YILln|Z!w_GGE8zW_#wHsB6G2_%yaN^<)AC<9jxlljC2!=3xd#9Xlrhzf+g&|_$`9Pwl=L^-n z1s9!K+ zyTP~g@PS(nwpbMWuSZ{P1-%@voLggvgDYC~9o`3Bz{kH$B)dHXd^J?0#>bj5OrL*5 z<9Ig~(mx*9Nc?9b>j(^g7D)#I{3g}HO+lahR` zXHp1L51!Tc+V>cf4=d}}PV{2|+mC;w{=1N38TYy|x)yV%IUDJ+c6h(u){}#O4Z`g$ zlo%*dp}f6kKxttE;{FxclYSn&ca9=MqTp zpX&TImbIfpnckn1n$YB-YiH6cFNk^7)@Xmz5A$>W?K|NTjTu?4r`#H)G5_$bX|`W- zVDjh|!{U|-hBY}K=pmkgykQALy$KzR{@V0C`64;y^7yXvG)+Q4=*ZV|yONNo)M6MN zn-0;pUYTAna)x*^Ryq2PbcndXZ1-zFE9lYb4!+a)g5|117N(1QShIAfgKgddGM~+9 zK7M0|xe~#RulsF4uze$PN+cF@linAGo^gfT7x@$c@8z&0yy+LoMgX%MC009LdtvPG zsgMV)I1+3ZW&IF@P#2+hd+25-YtkG%Z3Aub@o=1v1( z-mBq*@2vW;ifOjxK%^@8(EDeG{CEaeoP>QdeN{1o>v_d$b2`L7Oze}bGlcAxh_qCu z{h%DecjJNfE66VVs-pBv1mlwVJ+%~?A$6feX7XJsRGS8wl?doVimdws=_g+?`Yx%V zyMi3E^NVizNfcq=aewhvZf-~(h?~k!_zJ#i+V@`3XhPP3XH)&-oe*9x)2~$}1g?_C zdrjUwL(7Ka*Viwe!ldnG&zv|)$a42KWY)DpQrnv0y|2#@P8VPIHdRI+QR@SRDd)lE zq>Vkz+&c_c-h7>#EDJW43dS_T@!-2U`|xz9G!$|&4s$p%fT^o^mzm`}_;wiYX?+q2 z>0I_f3WQ&1c$PLiX^#+QS#eF?Hl6{OLqlHIr^zvqk5QD0tqh4;&1YquwlTG}?u8v+ zHv~ZB8E%na2(f&^9`bY+{5m;0UuNV(LfE-wSu#E(kw-cCrpJRPF@vhLjvHghDRj1e z$6*BJn{Ao*o@kL*T`bRd7fIP?QaaCHlX;@eM%%!%kuu47{TZXV#xkepV4UMgLNqFG|InSI@BHb3IYp6 zADKkPfEWM7M!bp!B&C1yDprU*e<$>7r(qT-z zBEr<4Ob0p@lj~<&^`THJ{oFnmcOc#Mr#UTm9g{BeX&HU}3NgHYAM^3{W7sG9uk*?4 zK>C)V6B5aR!I5o_>c3Snm)Aza&E5xNhWkjjpWK7^qDdL*$7&E4S#nkS(0TCIZZ>*$ z(gn_6-?q=;eg}j#V}(~-ybw}%vb?mH0E7pbS{rKbFwl14ymn|jrlcs29t@-b0$Ihk zFP}Ow`yW?&=IKCi5sbgEK~Mw_*=HMKe*{4=jAb;c;v7l`UTb&kjYCpv(_?cFYw&R1 z~!vbWN_^mQ=U z`}EDN!vsuQBgBa~9>ZuQwrMQ+gE>v_B$-#YA(BjZ#ZrI^Lxt`&ma{H`gQT!SHpLhg z+Z&z9D;2=(?>?u3&*($a!F$?E{B(G=*XBAlw4(jxZUM>Bam>AXpF+~>HC8GS!!mQy zFrFoAU*o(2RBdmYC7TRFoY_O0f4r0E@nBc%JcKNs&OHlPXhA*X*r}o<0kk2f9K707h@n0F$puf1F<>eBZEWE-+82x|jb7Z>YjE+x*L_Z}Tgls$ZdNP72+Qr>CCMw^C#aDWK?X|vP zV!qh}M$LJ2f7D|16da&fs@ClFs}~UVWlncSl@XFhlf=mzT_EFmQLdkI5*ohoqdoWN z8Mr2IHgt771KmKz=pWi&F@&KfVCBys6zpw$k+`k~+CdJl{Jq=2YS#>L%jyC83PgOd zO5F=dvgbarFc%}~?9+S488_+WOj z@4n$614yYMU5%{Z#E1)uDknw4FxY*?WqqI;vW)XdXNtWbyQlfI;L<$Lh4FnDf!ues20P#H62k@zx>%;?BtxMm!LM zU@O^&nS?hGJ~i8TOyM}ja*vNCd}@K<$+@IT?Yn4ge#$>OQVjwlriIv2Y9V;)8ka^N z8_IqQ5Dnq`hw0?8BB$R)LHxdD*AO>RNRU|OB&T}>VI~~qiUwI2{>h!oC8h%HzFAWS z4Z9-odd8)-a4Ya-R7tA%+=a2nR^DnK*~XB1@An*Up98V!6)033#@t(`I%C)7A@ViT zyV1Rx=-d5#LBoR!!)44{D3iJ%%9Qrhu%SD+>N)PV5!sJI+82)t#JPi$rJ*R#ehaK* zJ-0|@z5!_oCko9?oG=7Hv%rn6cdF-t=vyGJk8E$6w<22AxV-B(Z{Ojxf2}N@ zJ8^H+F}P7s4_Q*3fy_Z-CfA!I*z=rs{Y7=5&8dtaf9R;pnTKYtHB?z-q zPGEY~j5&%|Bn}DmfsFUaaqTT@w7r+n=~{FQlL9#N1*=LS=yCMlX|`x^B#kTaawMTl zF~9n2-8PUZv%X9B(hCFQ7U`Mh(=fc>AR^;;4Em6-tq}>%a7O7$zm}0O*!mhXidh`Q z@H$OB%c)LC5ULfG6n4X+K&umC--r;|GnAb-ER9iM&MmY38Vb#|X_v$O(AG-)rP%p) z^tm6CObGY_p0DTM50an8tb;$Vg$OdCPlt2n?))T-%__gNP9pAa&_q?uxbB5HYWGF9cobxqZ`#G7Vgb}9W%kF)I$j3Myvd!=ejUiNB*4qXWfghAm&`tQK~%; zF!yD<$(V={>XWUv-aI4@-tEM5+}B?3@cuVS5kD&kUXYfuU6{kzOr!Y6WPWHO63sqU zumvSS@5UcTO9Sy1>jWugFBZ)Et?v0rhsnG~Mg<+Rn7Mm?!jL@x0{jJi$9f2u|7Y~; zh)Fk?y`8^Fm(l`R%g}J=;UxN5WX@*ojGOZ-tzcq@=kt2}`At`rAxKSPc#Y2ts;y?o zuUL#=QntZXy=@2<4cT=r`Um0VD>58>QO|bjId*Bxhz#Q+^^57rR3YHif?H|^Ip*|S z@GMu{02>t>y@K|ASef5n9mp<=m-l?q=>AfH<;Fn^k&`x9N)?jA(vl4=sdOa&v+784 z?)W?>ZvZ(YF{zNH0H|N(Q6^nzh2(1&a$EYi!G6r;+*#)LSlmrx)NpPu=70ZojMBpn ztDe5wb@BB*sFE@JsWajSS<}w%?YiGUW#-9O&x=RFtK#!H(_RORq`jN){#XHK*RU+o zOPz$vH@**W>H(yB?(N8#(?yp=Db=c6Rw!7r%{txo5aU|vYB(FRAT9csk8zm{#C+7O z+$(kn^Qm4|TNK@b@SN+)x+8;_P|GIEH0Jw1ZgyjNuMRSSH7uQ0!$=^Tdwkh>5U<4B z&4$Rmfi&p@@g7^T^IsxFos=x|r+*lA4$9amBjj?eDlWcD1U~yFVnRnBsaQol&LxiP?k9=k8dPV;&F7^Wp7g$fRD8IYTCirJs*Z3r&|oW!^u} z>27wYb+Zoe*!=+l-;EF|#bcqqB1ACL&l?M$9iBOIgAH;`Q-te9Bf*E)(Dj4mDr7Z{ z*`+A7VMP3(HM`n3h&oPV^!x64%$P}7l;@6*wy#5flf{e!^^OPkfWRa=8DZ9hyXMRcRzui-U!6wJ7Uyq0QtF~#+VC~txh`o;^#3p1Kxe4(HD8civL&YUTX`R%UPW6FW~S}@Xy9c(rwL1oyUr%Fop;3_b9!E}BTvJY^lJU(2G4vN(&cV5V0TA{Ma z`}usxcy`H~Ynm3E=&AJw=d18Mo8~j-%_HFEHmgvpWPfe57vc#8=3)0JMRYE3#&L{bDdo4sCpvXr2bt>R1uQ!4~B5I8$%dLfEn zZ&n%#uCjsZS&~g zvY(w_?lKlA+~cmfxegibr`3L4^oPPemBCGMcJzyT=DN-81i`9yKb7LYpmny@6{+hr zV0PfE&O>WXO#UWJY5#R~hx0ClN!zd?;Z^PWr|6yf^7;Y268-59s)-K|RNRnV!)ZHSlHi9@a%kJQhn zklc98@HxXJOsEQu*!zr#q8vX8G%n6V^bBWd@4*~MdU!U7=D~T4<1ATnxw02>_4AtC zEZD(Ub0XR*`5*={eQxM?*T7^t0d_|HT8OcyC{c8*0)L7JqxZy>(e|UJakR_@45pT6 zGEpqTv?DK8>rbmg?Dh`{u{#Nvq!ZmfzUwVSr#ze1^K^$x>>M-cL^h24k#^XM;RIwK zmNl4}`i5Q?ZkX0~?n2+UqTT^7N6`Keaqq4HAFwAAEr{mt$7qhd4~Ivj|BFN3?Y6ED zQbrIobnGvc{w0V@25#c6E^v09`eUa08oVa8%(|`jLv$;@@m^0#^#AisoHslXoDA8; zDw0&eHQVp)ZySCfwJ0Q+Ar&CfykB6;!J`TgjgI?yB6dMVbv)DbprG|dd(UrUSkGIp+V;Yps^2BAZ<%pY591KKl z=K9&aPYy!p#1B3_O=h%xI6yOJ^aWG~Ry#8-6d|DLkd}qcUyO8(q+}wiLPE2p!k*`* zD11$T={Rcv#Q!NAJIZCJDSpi7qTvUHv zmt(Y@&^hu`R6zLEaOvAFen>g-Iy|q=6}fI4@H2tm!)>G*~7;~wfrrN~t)XC}BCpRFh=dE(u4MZ(XZnew>Or$;h8NaIQ(&0d%X_YkJW=}E%W~G zIgr+tv%~)1(Ok!Su=!#H5_>G3UsWmq=O0BSU-}1k=98u`L)Q(2&ef~A$W?(`$l|2( z?i~*6yY!$h^DKH+$A#Q}K7hV%4?omp?t^IJK7;#uMD+QiN4c5khF<;y2d3QP(B;GK zvwwE{i9^fovWU|M(4x@eNsr@8@DbcQ-s!0a3L9@2{5ej8@+gligG?X9YPh|>Ew~GV zew(ih()NSpW3`quycXbi@pw`9))2U-SZXDmQp3c*`=`5|rI29XyWVy)60>+8Y7FU@ zV{(RU$Zm(Lki3vDp7C@Jla6#Y?^+s%fUbDG0ES42pLbWFpC|w!2g^+QVoOXjyQjQJ zrjN;F@>v4fl4xPSoDg{72&k==JsSE|3n@nlSBB{&K&V5adWm`+QXg8?(%5Z)d+n){ z9G&k$Zz}pdLG&mDS9%6tP`C<_>lJ)0cm6t21kozNcvUH z=rZVlQEv+Kp6Hy0xSxaUw;p?dM+wb9W=DOy?kv9RV{}U6wb}0x^#I zsXrA5ACPpIU74)SAoS!)*N5C7^r2^G5YyEkAuH6fhhlJCf1M9ZBfx8_5|fK<)%^o)Efy57*z^XaldziT(U`H1}JL6=$;E331kQwPPT zN^~LM%iX*6B^H?Km1jahFNtz4V^-aiI!O8{G7%u2*3yx`o!X>{EO1e|U=rZrv+pW-xp*|zO&xK5&S~-``>^)8Nu}{00 z@pcuGcS}D%sVwrTHV6*+;^!~GJ7}c?r?8R-1hlgCA*S<`|%-b&*-1OWq zO{G^;9jn2Zj8kR$BP}GmPB3hoSVNo2nb(un`a6B*^~p+oN3daP%qp6C2XW_RIs*K- zA&B9aNZWP}#LcHuA}uJwQ&rIpXT!CpNB#~q$TSk4q>p`kaMm*#t#YSE=~S%m_$OipB%wC0>bvz zw3NE`p@ZH$9eK_N)I550e%hrI0#3}^>u0Tk+mmzj?(PL(Q|g(}PWKHX|Nh>m?R^hi zu5qv($^HXAt}hq|_ibWuSzYP%A|dd3sek8-m>?!)YC3M@&S2o)!&E=~OThQ}X3@nK z3k*H%o|(wI7yOEMhrKwt4F079SA2YJ@DhQ%o?}}QvUK@W7IHiL!tFP*#jj0+WjaZ+z<$OqI`kf6TKIXa_UPkWAvV=gDyAkBQf4Z zm!0Vc1b*K#zi^=nygnD5wtv2XB$+v~E~7fMQP#@ov`L51R*sfKFLf}1+(pHJl^gXf zmBJUSEFeQSrtFT>UPvs?bGlV711?R&-KCr_@XXn37v9h`fs?m@?nIg$h_g61ETl|A z(olVqV{sFt{9IzZWAYn9>PpL(H!qd}WB$hMdQg>ax@x?;38Hu$FAJN~ z0FirF`<8kQIIvxR6u!#=BlH#~EjgDVSnqCf5Stzt9hErJ8Fdol?_26nZB~O{; znJO^ZK9~2S=^@y=CbBsk5l5BznuNJkbM$SqeKUW#9F%3lv>CS_Lc%380&Vv`P!CH@ zlN?(@rH$oYmXCMw{GWl2p=u|Lp&w!X*U|w&UksMQ^@_mbXKy=uAUo(pp3e-KQU}s2 zli)_O4)DnH%@WGE4k~VBebk=!P=2#ZC3|B5!*oA1l1tNoV8E*<%Rg^JRC2e|+lz0( zzU%sZ+FlV*@$P9`cVa}Fbs>q<{WB2grTvd*y8}#&gl@e9ZnQqga%Quq0d4b44t7@m zK|h_@EiBvdTa+9dhr;%CY+(Bp@Jc-2I0Pa zJ9)sNTH~kg0nS1Lcf0fXz$KAMs8Prk%)jS9d-7@Wzq$$u40hz*426*Gn!c;WN5N(I zpZk-$1awsEU7mTP0C8_Fc2>!{py9~NiNsld&_5FN3-k|SOCk`TlZ|Z@*y$(^Mg)zOE4VC^=qg;fa!i3Lw_Xp zK!iEtiYetZgfTBJEyEs&ReUyg?;;C^Zi!6=-?|9?)@gb{EGj4~!SIChB?CxPJFUvI zIzm$Pe7nNU`yjjLBi)aEF6h}_mg?LM=?%=JD_I=M^yekvwKHj4gqJwYE`am zVd9zkzCEjrnB0-|Oz-p-rq+juDf@(i>j}2-Fy{gwD!=^n`u<)_&02qMEgT6sA6_~d zzfnYQhC{dJCt4u%Yo>6AFdfExe8#@fpa}%BeRB71oy4SOzc6`*9sfB@HmOwf7=p-5 zE$sS_fCX26k_B-YqRQ$#=l*>~G3}VYwxhP_I?62KpTYwnNlqQMJeM&}bWUpTb#e#{ z3%TYpRe#572lEq@!=5Pb8c9BKzo@E8U;J}S1 zT19BT@8_fLyNAJbo~nNA`$@2;7^0rs+5l_*TY9bUdBNe=y1aAvXYevp8|hQbgY!jG z4<{VfLH^_W!z9fvP}`h5AUW_FQ%B35WpQL;BtxvDcq#)JyFAhRr_Bx|K^Y}-+>ef9 zu1@|VY8WU!m75et1}-!`oIGACK=ggQ`;OuPB=HPM1f5I*!m+#Y8u`Z|!GUd7vHSq| zf4QZhqof6nQSKje?bX0&VDHFmOePR$50f3FyNmKyX{ru2`yj!n>CPXyu^oLm^vlX! zAKW)qiyQ}hG3X;F{eZj}gjofOk1!L_`Mh(5L6HvVuYI)LmSX_VS-(vmfwvIygl6iH zqzs0s75r`J{(+ZX(5*b#bp?WB^d?s%JHfH5!SDuKArjqh#V|T`Vb~M%GP3iVXmvFu za^y4@1b2jgZ@#++;Z4UHQ0Bz%83XhRkU=1)6P zczKM`{iqc4%@58Hec_(q)0h;r@xH&#^2;0p@0k2GC7(mjCsk?hOZyNONB;3tmO%uY zP4OoG2Xq%!u2j(|!<{*Ib^1w-G3*Tex0`n2$8p3wjCvZ>cil~5C`$vqS@mA^PqQe< zTfABFtQ2(kDq~k}DFE^6-f)ZhJK$=waBuq04fIqmv27 z+f#pL(0Oe`)1v_~ZfK8C7H1};g?`rk9Mb?!nKvu8APihmuiEo{Y=Jnp>eFu)tidNT zV#c=m2pST6XeByXL5KC*55~C8|N4ZXugs&P?!plDm?ehc$60Wnv%KP|AcXRX*OhHO z&Y|bXz=53aLts-b_SD?lA7U81>R37t1L27BBQzu5@y*sqFQNoK`5_(F&fXBzR6bjB zjs;X7XLx8hHDdU-=z;t*bEwC6^z>4s3y!v(92&UL)uE%-S$ON7xB zgJOa0pyq@%koGS=PhS2Fjt8X3B}IckCz)I@fBp`*(UjcSKC6j@GigsJt|p>ZB734; zV-q@E`aZI<)_{ad!j>&y3*OG&?0#2@FuSR%ifLgTJQXsIUH04sIZzhG$#$&?$$mM(T9q4b^ zy>-y#IykyKx3$UE$LJGMig#rLAiCuI$NR5B(40?p_tE}huzaEg{q0g{+2?!yyT1~| zwKrI*Zufx4G(TBjd=*4C9rb*CL>`@lw=44^bkV`|frlqe3IxBgb@KB%hbBzpC+@R0 zgTrd{unsj3Na|&pPaR&ym;lW$X2&%l`aG@rAj4&3l2xh|ZHhzR?c9_1c;nIc{;iJR zeV@=Yb8x7)-WhCF9yYkiD`HsCzenvi??8;d@*4emJXqyAx8^p7LR`SN#Rj%f@P!e6 zo-1Ntvt;+c?8jkHw;ZDF_GLvgqwnQ;i`E#@XT{IJGYY}KOsRu1htTHdpF8CtDxfOR z+#OBv8jTlBRQAc7#t@O=tR)2@2x*$!{Q009Eq+h(txBuHId#sNlZ}q3df}>&YHuop zigxVFxs(7NG6HqQM;@VW^ijt5`#muBsRW;)WE+@j96noJyHoF$!lQ;UufZzI!k{tO z6b(!Lnb-Xuqh!EGxAS?WkSP-)v`}*wtc@O5RdQ?b}8Ae@gDdM?Xi*O@&Wf~^{+EGXOP&)c$%`)4k8DleAs?nMz6Gv z>Cnjx@N^44Hh5DAq7O~Z{YtGx{Q>Sr9ohn5bJ)YJx{wRy)FqCF25eyBt$JJTX);W{ zYcxoDLjyLUZ@=$pk3o}tucaqu3@|5b-{KGe99c-x_QAG*=Z^Il0gf$rv37UHK8YcR9UZ1BR(kLcY&cT=^)1&!Z}N<1S6@L&E%WOKKNRJYS|ig$ltIA!66 zBJDQ}f6rjmVd4qdjh!i{<|M%Lyua#x&oVIl>y)r3Tm!XtQO@lbt%BJ2xi;Nk3e>4? z;*JRGL;rJIex3q%A*@Y@HSL`!I3iVW-@`t%p!ela{P-B{d3_VE>$Ib{ox|jc%nfv} zxu=vP-U_bV47vRkFVXpo%hJTfB~TsCstMbr28j^~6O{HWK-wo^pk}xm942QjOgPAb z|B&fn39dr)Nn;eT|Hq9?JQ}QDE9TJY>e&R9*J-H!h znJ*27=n!DK>LmOU0(vVx>6UAu-vHsljmIhI@{0GqNU=CX1x3D*zBdh|UGjys>4!kS za*sjDZatJB4lxWeFr(T};U@zMh+XZ zJP`-ifDPW@mP8C`cGx4tWPz9NQBz&(QpHo0_+7A>0mEuU8#@csQQ=JXRhcF#w7?rQ zytjA!C#wnT?0!M;_9^nV-QNzjU3-G3)srwFKGU9;H3(z^GaeoOHUJK%-*Nui^AaL^ z&V}2BJ^|-oT@N(Z21nZY%DI^rAlx_-D|bv8ZxKw_4dna#+IkhXVD^x--!*Z_~lpz%Duq3cfY5<#whEBdzA+&Q1JNZQE<9AmD<-P8^Ye!n3=Pxn;5=K@G;m!_m zPR@kjGd>^M$Y>$-Q=dH>45IDD%r~yL5DEX>_xB$yLyON`pChh?f~}p?kCZTRBpS}P z2~4_y?`mK1vx5Vu{>si%-^U5u)yB_ISfzo_Di|%0-GrzUCs|*tvY-vQGue@cPeGcr z|NT4B1Lz)^6L%}?;EwJ-I4-}=imoziq?I?Hz=cP_efQr=AVvyE^TbzUBK5`QXDhC# zxq7nSyCDPRefsnxFU>-Lk()!{*+vLUdc2;VM*+bksl#5%@4%?OXYr$SI|v`upd-!f zY+1OkiafRgyTju=4isN^eBE&wmcQ>YlCy4RwlVIyf?^?9m8>K#{{1KnJgDTgKY99TWhlE`wUm~ywHFXp3 z){4;Mm2FEpAGKc)`_ED9`73dBab4`$)e?fqW90!_fpr)Y*~okR(=24goe{WnNeFe^ zRp=WNRe_|lKC5k00KygCy2l4f!G!Q6V$5O#bLL}34f>2AGM1aE-8T@7OdozFKd*pJ z-@HR6+dUz%&0_qA&pQZ={8g9kn+%y#LVbxGH&OKrZuN`51QV+7uPc3@qhb4lwgb6+ zXzwT9L#G^p5o6wqN-0l4*MO0sZErI0UO&=4EYAdbfppsTgQ^g}zi!nqTM_gw##H5R z{syP>?O=5O1{igg9b0PW1$~tW6`Q$YBy=2QWf(65Uy;^z{n=sgZDUYBs4WXIzP-KI zcK3keBk4fiBUE5;;FrHV$9)tU!Bf2v`yj?}r0&t zX=2_QwO$9FgIB&A9#!4BUJg;$s{7z{srNv(qbbI@ux)bc1pz5Otf%XF0opDH>{}uQ zfRH=C)xAp@5WeSof1SJ?+K4eNeo0CK(p$Q=pwAm9$1f9|O%;f$58of>2^I%-(LIC5 z{=LQMWci=MJqF-&h%2tAz7ITatVkaDVh6+)Z7IHiV3J&TZD zcY`rV>@0+ybsIc>Di(sY&T#sCXGVQRe{JgsKX9<{H1*G%$J9Uu@zdWGAn;zt_`O39 zFh+^~a}338^vfSi54G5jaR;7PPm>|CyQc(y7BPnN1FQZ=R+}L@=11Sr zUpe5}vi!;GMmXx8*XC3H^&J8dbvb^R4}$8=TNw{7T4NfwBYnEWB1G(0PhB_EhD=_Y z$1~f1!Nnzl{a^ndWcxCHIKZ0+WxoU(X>ppMW%YJ_TE}Vd9{ct?=V=7ScAq8EYBYlD zA%$|57!l0sd)Z*nxC?9sCW=H#E3gnu9&Y=1VJ>^+ebMX9khy2ndE0Id6X-7$EZir7 z-;YgALd88GS_;?f+7iKHi;c~ko%+qr7V8i z_vm+4jFQPn4?MlQpU&o|V1}07)6DA?m@0NYG&Njt$0t58RSOG;?9q>$7Rj{;H+}Gn ztOMA1)J5*Sn+u6rTzkHW_oF6tm9y_#JxJ21_gM`d$C!f;yv{D2zEYGY1l8GK&7bO$W!L`@5Ut^C5h63HE&cg7g)7hMfo2FmP8@Q;)qNl%IBfnST2p z1oO`qQlK-2zcf{owzmYQqcK%lLub%R;H}CB=7(q_QqpHf{tp6b7*!(v212mJ3~B5D z9lERO@0rr*h6HAT{C!uF(MThkO6|@yvlG*dlSPu+>XkjeyOAg>l$#`}46gff z>>Ad8qi0XW@o&Xv{%CboJm3Ub?WciioF4NFMk%!l znjs-+p*AAx7gX9@SXFxX2E-JP)^`VVL2M!0-{Wm-7)BQNC;3G)6(#Y&Oq!2Mre{;@z*U;6hsz5y&{TrqsS<^r+eTs9u6yU>=*>O)cZK}_0c zjbgHL#576H#6f==2z=W~^`>F@|L$Lpe~4GflY_Llf#*Tykr3&YHNZku2ew(qSi0Xm zz@)oxTyu;6p+kHUp0AnK$b!LnA9ekmxM*f!(2wCTFrC%;-K%vFo!0#@=Af zx+_rtHA-jS+!c<&B16sYIE*V_mD6A_moZhrQXu4=tLW`KmjO;!t_c+E)E#cY{1fB#KEbUbxI^!u(Ev?}cr3@-A31TxzfNjzo1Q72rn*-#2L zi#7yW1_wwg{;foL=M8Aida{)KI}A>aY&|9sn@B8)h|p;Ih*^4+1Mx#^z%k(L-NV#~ zDSp|?Oa-P8X;!PFTN?wupGK3q#reTM?|igY<^ymD{i$pI?mEVut&)_RqQ#&OgI&7w zt|(hFeE${k4&;U&{Kg&N$MSBJBSSUxU%WO?@lxb`dBSaK#o9@pscSAmOI?qm`E zmf8Ub<@3h2*ELznnkjxLt@v z!~4b}3cB&y`(Jl$28^(9B5J{=^a%9lP4rD!$zZy6=HT5oba-3jt$_5L6x0};SfVwu z#^6AXiP6U^(9(Z9+vAQHmS2dJQ`L!Du!BNqabHwGE6&4Y8Bl=q$sx1h@DNSeBB1J=aW zrTVac#3rjL-=K%dQ2D9D=O&j6CQp=yv%2VDMcIqIp}IV*O)whGd2}6Gm$qFTr`xb0 z%{tABeHc>&>tE7R)IyFLc~Gg_0c>*)E91$_#2aL*zy4ITLu0wSc%)JZT9uw)bE`+r=N; z{c=!|9nJA)uP9W#S7@pw3&+eEn%#6}mJqgd$26PT2Mg<83!gfh1BrgCQM&?8VQNx@ zhRnBbP|vcld}Fc`V3ehyAt{jnj4XDUUhBua$wx7p8i1C=xJ^ca9=&;wc0@ zp#H#QLkB@s-wqZmkD_yw_{}=oHYikz-W_wa5z?d=&sqI3g7P=fOotj5P~V=Lo?15s z!c3og`{X~y@}}q8=U?9eLdQSD*0L4M`?AdaWJ3iD3*Q!sk2!)BmsaH_Zwpo)8McY5 zpayYGh_E>^1w`^`nm@iZ*ho2iTr6+|YL9Ew9lybf8O^*r>%Eu3XYApJZ=DPfemLPG zdx<5)j^su^&UJt)z4mx1iZ57sC0p5CwgGd;hexF@=b_8(tKUrjtU>Di%lD`bxuE~S znfi|0laL;Aql~M^4$97%O~iD(2cu$3vLF66Sm$q`A967Pg1Pup<(=!{QXGZqv*JjM z-z)lahG>E{^D$xmThnM?^D@piAP3_qmmd#UoyC}i8x|I!_wllB(Yq_TYjDM7vt{(` zDiTlLxs;nViQk7FP4p=P~P%f_s}+0FaEKW zuFD6D92<4!m$jHk|MUz$MH95dvDMz2(S*>Z-o2EhM^JsXm@a;L6^OfN_;z1iLzn)4 zE0c7sP@zl1Lcb;o`O9;GjH3LQWZBKAf5IH|MvrK^ao&OJ_IB1hnr4{GfB0tAwpt8#Z!m`Y=08am`sm7^|+Gvhp`Zh~CT`K5+I1BU`#ZB=jN4;)P|SPK+y|;n&&P43FvGcY3GpP0D$J^vALc9v zh?`<$DWu?obSe_plM5CQ7PzLz#p;bU0c($5DGfpHuDs9W3@;<{S@Mz5Kkp?>1qopIHh!YXTH}jP_Wttic@a8(Pr<576bpdzsibSy=RN ztKaHY5s=cPxfvMGA+b~BlZ{q1lraySju5p#{XUiSX36Uq=H5heVUH1}x!DJVW&J=~ z-vXldP$Cpd9qsqysWK7G!gfE3}DmGCw%6C9m zi6}JrV2dSdPme~Va^P{kH@~HY_%LVEU8KR`I4bMAem)R51=h709w`?s&_4RZm-5TQ zP`KD%P+&m|K?0VtTr>Glwsu=b{o7eIGvlw>#gYN>-ag4u0rn8rH|}&;mmPdp*S;U> zT0&lrdt+hiXCc3I@{ir8XFzz^&9Aq816-sI^O&B@-QjJkVZr2SbU0M(*GxYGaSm=# z!c*m73}&d}BrIv5OG*bK^z^7I@&M_N zs3Gyx4~RRWm#0(i2Dyy6V&YG%ku~t0){hN2uzp@i&bHDAtWG)~8~PW)PC?C>E$lXO zo7)9eoXx>#$)1quL;=jt7ni<04d_iT#`83?1xQrBXAIlhA+_y>>W=|;Ak|mZAN;Zj zQQrI&EhcObyHZ3~*L4B8DK6O$?r^lVRtvJGXa zw;{(UQ^EYpFu~j`r zmgy8dPSFSAip8xf3z0j%%xA^&+e?hLx!&@L;uOR_EfcLAtH1;|{o_3UdtRS6$0BLJ zKKee`vKymdz#L<-rgz5VkoSvh;;{Y{mNlMB7KxC8NLslU36lZfy0lmGXKNfdax_S3 z8()I#3HI_jR|jwmNSoHe~UE~-hxAERTwsagl4=2Ct>@#gZ3g#-VS0WQV@NWrp}0Fu#0x$Oou!zK#65H}KgX*e z$Yx6TcFZK29yYyP>%@=ocMcpP3o`((YL}<4r~@GA(2)!w`Q6~-WYcrzPBVn>F+B`a zD(JVLsqZII4NS?sY=~Wam{`)0cI`19LIATuQ<6fJ~@tFU-vGzPlKmghBmm@~O z=)=RYU}1P3{K7AIuq<(5Lge6(lZF$<%ggV!YxaeVSIpy^zH^W`*v$ULO&9%L9*s-y zNy3T}&A(*aYGCuFWY*-<2u5Trn@v5>gQVMhRu9S((T3VbwqaWx;=B!~S{+1DU1|JG zjQlgmJT}T8FCq?pF4u0?`}jlf=|uG|rzx=6`qZ|pNCsyL0xzYg&12#_edQIhD-b;) zH+)cf8jbj6#~ch}LGkvBUf+;3h*QjwC@udAPS-E#cyb>HP0~*{u#HyDu$Z=YF+sFkxY(jHq$R0!Jyj@YWye63K8zK9(X#y%$?&g-0@{n-R zqQh!e2dM9R(5&IU<4e`G-fMl|1g{T1ChbSgL$sQ+AFmHdYXmukV~l4MDKKR^FEV_k8-w%`b-TJb@rt2XSk3XsQOr=NWd&9iKmh?TTpy; zf5q&fM(_~ZeEqN^0;~S|Un|{;z@(^&)|aMn5ciFXvC`or2FyJ=9y=@qWnZSVV_uGd z-)xrhB)0;ZI;<_&a)v;GN}^(oV=0O|FJB40X9#A-()q6~%|Z8GF{99LcXSRkx_-1w z7&8}xdWE-X(bYYy-|mYaW^T*~PQMHSpR?`dgG@E(`b_8(rH<1M$K3j$ck>d)_@nIK z)!*nV`)gJ5W*`RYSyN{UXF=$cI!9msS*T@EG~e;?!aOw&vw_f;{a-`5EwEI0Z-2b$5eOEFCf`q=KE^ z{ugBEM81jZI)pY+GJNzO=F$J;%ZrZ&h)68GO*~o64|&J`K44d8Lcj87DZHnuz@wRV zOlK(_Epk+=51u%UE{3$hRaZ;EM~arQkHP{YyU!1M#>GQ!neUQ`r~xt;h8vMLbfW(K z-V4>1BUMG zBv-^Y)j}n0Nc8 zgB&wvEF5Mvv(E(CDa#8(4TK|>hI83WO_kC|pBBaYL z(}ZR?VZv1S+HzU}xI8CccFuo-K~(S0ZoP}$;SoWfh|D2KmW~#ApvnVIG(9)pOplT&QQXQaKld=b3oLir>zCLm~B&)z-B0F-EY^U7YYfyOshrN5;w z(Dx3vCHwdx2)b9UcW4QO{8HUjT*M8op;%ZIKtN+(11o3y zb=a}XPWnIez&JQ(m~yoeE_rtjOM9`P8O6iRt(#{+K)E7sw2KMi_?XAzzci!#!NKqs zH&!4(?L<`|tIJNGOqZzpjA+AH_Tqka5E_)9KYDu93p}ZQ@ef>dfatK0+4#RXXx8t0 zm>@a^5l!`ePqa>e`TKagnoI5&%k*JpipB~JI~%^g`7r`^sp`Z)UV8{q-z|~po)2>O ze$(-T$rAIJ9(b9Zq6ynxKD9?IjH1xxJRw zFO163+jQ4lwOv~2gkeGp=sLz~U|0<##}37pyvU>nE8q!6kISyyCEO1hC3 zP-i%?Ry$^br|N$mv!^%+uFuNDo{MXs!$fJG12Yjl6v@VkRv*!&;lU-zIpZC_evrxc z^)+N%dB`d?77i+(Nu_@eH2!ZL^sePQ`WXKsujq_KE(9ec-m;?vNLi){QXGE|{wp+g z5v5tEds@@J|M3?fRpi|$w|fntJukh|cR0~4%a1Ag**w_Gn^iToEu*RUb9G_oCiDz? zY?Za*j$vnCJDIr2V|2n++ug_k@MYHe$+_+d-gh}#KU|swQkdI48sadmoI!V|0D?OJJFQzHj)dO>zfT6?j8Y~K;X z`Ek^BcpvFdMZj3gr_Ad+d=l4KE~wJ@6cx35<7NAK(1+`(y8kX-h?0BVwRU3wQzOVD zM(vbAwPn9OZT%5Q`omTEC`S;p#f*Mbb=(I#T5?e}j$Ux_Wk3D7=M4D&$S~A6oersV z6W8Yy4KcWd@9dk6S#(bKc6K{(5EBN51|>&-Ks0;}S&46ilft{~5};pT^7ZsVZis{1S#lR7G2+0zGYzD&c6JRWQKZjd*PX=MU&SL2aQ%D8;aUIlpC<*FD@0!$k z3Sn(|kZfS$5Y+zJebT;D3&L_G`nsh3A+Jg9z93B!k|OqLvfC_!((+YChqwT&WxUK< z&U^$jZ+-nvPJ9V!=N5X>Dr%teRdv2iHVve{G-MJR6UPh*(SoH@1W3F0z5A#DIh1*9 z2OT(64vs~4cPVVX1z&!j<(iYW80R}?dVwK)=e&EJ1e01YVs_4L#Az>-e(*h9vdoWh zD!fGz558dWM5n=r(^?QpREq4pwhy8Q3{PLxU58XNbw_TNdB|$~AlLT67J@HQclh7Q z!dM3%^P-cps84t8tzMr9mh)&29%A*y%GBpEuZRf{+&tByrgRz#O~=BO3#%diQ^I*p z&S1=4DE)BSjS`3gttTs*nXoATkyr=wAeM1bm(PvPK)&ymzWC=3$X>61c5!nJvg1kr zSO;k^%#+3RaU3O7oqXIHuuC6w2-9xe<8wgTpz6o2lW3zN#!@2s39?Ac&WK>pU?C$QuMlzljqM_|)g~Q4Y^#>7Ty69fgIhLh3AyC$Kbqa3#>o4>E6jpM_UOkbRXeBETaX zga2H}w*DdtA%XO_&vfQOvhpgi`fv$eo*P~GB+&pdYP1iI7z{#=vcM8k*g=eOmhiF2 z4FLZOv#USpHZk*}4TrB=F=onB{F0QkKwTe+@O=h}m=p4<)@)M|3Cty>;wJi-UuZMh zHFp`UKF2+Y^vQ>^hVVmYE4#s2(XJ}ZO95)=Q;NJe8<6vt_To?6g&LC&%&jFpLcCUO zfpb>_h~A$y+&U!+UXfKfLimUll7vj%g06o;{$P4T#IT^z z8yue$7++#DN5^Ad757se0Q(PDheeO<@Os~?_O*q6kn4XPnv_-z^9zy{{S1ZUtV6oxzkB@1f&S%(RPiM7<^vu3M~iK;rnV zqGR8M0lVMD|M>kEFFd{bYAt3G-8T&T+x1pa;_Enl@EKPieN~M*RKg3Uzs7C|I7~ol z`}pct%P*+3tQ@*n^#~j~mB=KwgTY0+P^zv<7z~Opq?$%kV5EHJa#aTfM21UTb=}bq zgPgMQeYK6~#~e*V_Olq`o8vDZPKg1>X4%SPk|QAVTKhH zS+LzoUB72=63pX5Bp-=qfb;B&4P7-CBrpljM_ZUdfTY!=+IJ;%`NKiJ=kZr0-1Jwq zUY5bM@8hwQ`r;6t-PicQjTT~U1Qu1sLcqJ_Q;zG|>%d4|L~6ZX2-yLa+lBLWECl6@yz? z>UqAc1CV;x-~8W;Y;^VK4)}2N0Qze?y{M5jLi2y-qJ3koK=}4gX8x5sMEvCVIO6Vr z1nj#?Bb<7f^X)jRC1Y%D6GuyLIA-SKM+pt~| z6HV5o3u^wN67f@|p_DhI8$Pkx7c!3StyJNeEB7!|V<=sqVkce}IgD>YzavSa(NXrn zG`lNT^C|X~sOd_?o^E zWTwX`=~?O|t#6o_aw}rG@eN#B_SC665Q_w_%*h5ZZw%I;sQxtV0XB1=8}1+0L6>V@ zm#%!V#P~Y#$734S7!(`PvggngdK;cd?qlG=bnA}j{i`KNN|3p!YMc&PMUUFo{%M0n z+6cj!LIdQ?L@s61+y1b%fGdzhGrSx z${1s1G5uBs=KEVJPE*gWnd8v>PxEkME>ssXjGQ-9w}^D1Fy_R`ZrxfrXDH&1(`m*n>y_JK@Dl4ly=P~HLE zPV*Jpuqbc}zs_Ug{tJ{}n6*pv)r0J>7ct_o1)w>c_5F#^MHH4AI!_+j2aH+aJcfp; zpp?_(e>>zj_z3*`Lm;CCs$Us=o0ys4fKx=u41qM7J!IKiSgQ>}ou21qW;)UDfi}-| z6=HCEV3BrFHW)4q9Q5NfJBA9p`F-C@&x5r0L?XNWTl5Yg$r!!(6CA@T!a$o5Z?RST z&mRs$*|!$q#Je1r^r$F{i#Q5wKcy{58{9%y31=lQ4g)ZG=6soEfDSB`o_NJvy$`Xx zx9*a7DS-oXn(FegP_%p!aj8%z8D)lJ;}(p6gUH*ngztP=fOhW3k8^yQC}f;pO1*F# z)thH5FKGY4;2~3mhu-YyN^)(Fc)LFY$|liK@H{|=EzVK?huUDAt6d*Ye;yP`WY(s6 zsll#Y>&l6?I`GyKkSZ5!2HI~Pu<#k9kh%U^Q9f1eVigk}Wv~T!m_DHqNf9qb(J*e4uPu zS)lhw!;>iTDfp2Tsm}TdVk+OoaISBp7?yXmE8&no$a(#YAl~~KWRARkSwh!^!)Asmz(8qRg66Ek?9C3i8_PDMXUoW^S`ZYpiJOgwxQVfffoo1h4rrpjwjh^>2gNlQbn>%{`arwbSWmrf4~%P zv#2-KM{t4GpNIvQUIMTjSk9#1+7D)rqr%6h2SF%H`rSJ#L-2gZQP0`g3a}l;Jik4F z?x%X^H!Ygc#_sXmrp9#$qfH|2F{p%)!6t*zq60Uh%n?%zD`d>STTfk_7WdgAAl z*YJiEV{_sWO1L4n_cnvlYdkaYaZAQ|13X+fm`##Rz(D-iz|cJ=a5-wYaL=j?G_`yD zHyL$+D;i(seSHY7q?{aeuTG$HUV?20a~{~8a42V&nnpW{o0G-#4rs*P{6tr01%hb< z3bk~14Yk2!}?wc4~-fb|`?43?B0YtcaFk3SQeqn$zX z*UrJyOYI=H_s2;B1v|LKROyL(#ZXyW>^HyML-1+HJHr#%g5e=L;s&G===M?Giub%a z1QFFxq2w)0^c>u@Pss!?3ht_hBjyl3a=zL3S}^Ld<&Z)?0T+ftuXPJAcD+(5{zFb=mO+dsm5^Nd*J2J+}WKvKyj-o>KHJCNj8vLHN9I z#xrmpjTZX-a|2cL9m-erTF@oqOVrtEel#TQ5&dq*3tm|zTXi=U(cfp-)%|BG_&K(e zlMGpxS$g!=UVeg6jQ>!e#Hy=cc5FV#UL15TI8W{Y=qc~H-AWb?fk zu*U|Hhd)TYP^bcnsfCCa-|f(dcG%H; z*$GqczPozA;ylC%{UDv=IE>L>%OrFY2+%#->|LDXdGH^3##Lh8xyv(7Hm9VuAovuy z($q!=i1#i|h4w^(T}Cdc%y)6rS`P9k_nQGvI~pI|TWeq#;T6>RxfK1^>eCK?tb;(} z>w+?ckr33|e53AzHW-cR%zK{r1Ww(rThD(z2@XY6YcYO{XiEFJeVif&ZnBfKe;hVj`)1brXQy3y5{R1 za|R1J_137`0~r2h{^g6S{18}|8%y1DAA)Wy_bpHE&X=WF zU1#nMfe{GIcEIC&La<8wLdgc3+{lo$F^N9I{;9~nBY53_A(5Acf;gZ2D z=&sL2(^C4Oz6oRR;;VSHAr-SEC(i-H#Z%qUVmCn1S(B`)bsWt(3zef5*8lpeq_W*r z2hKeZS~<&EL|F)TCRx@DLbdSr`qQ6j;$-N0BiOWYB@`_p??3oV!T~nK`3uBa=g_q9 z%R=v;3#hE=OH|rg3T6T^5A6CCcR3*%1+3OFs;H6XASXXs9*U>3@JK-q_M{u9dZ)mN zvAyu-qBOb-S&iGjx&i@}d-f;}$bw}a<73$iOK9U6N+loVf^lxZ|to6mEmDG4C?_mL;_RS=k!Yv6hH zG5E*@SQ6=*gL(7k2AykOXx#njkAhSz7+9?aEFa+n*QQ+E>D)|kkd!>+>YELrO}ry4 zSETWd^Kp31@g2Pi58oHlV?>8FS*2RzW;B$t(~0!?gr?OoX9K!az}Ano``!wm!^8)H zIm2Fbo?u>NnKK2y%ev?0t^D!U216@rx*!J3S$+BPl>vOo?y>M+cSHXsC560LN(_C; zr81nU1(H2^tQQ%#A?2WCN)2BXco=cSM+e5BigF9$?l_;3Lpau*Rn#d2|O9!j*r&o`vK0@;qQzea# zL*VpzprA}d8N=T-1&k67r6nC8I_i_U&jAo1=k5BvZu>0!Fldff0YP5?4~RI zUm0h>Y5a2^@oW`R`JHt8sdER<8y9vh`Wh+<$?@#Sc6 zIk?gJ$)XEYWi8qB`kK*RX@N}4=meM@sWN&Jn+6gZn>3Q+Zs^ya(af%ripehyzpQ7u zjZRE_yena);ATV>zvs6r23F4LE&u2HCYx*T@%`#S*WbTv-u~pnRLXo?(nN3Ys{0Z> zG%1ZL(TsBv$4@{c!J9;l18xv*u)o|I=DavLNk8e1!?0bVrqMkuUZbZTnt##EBe6yX9-|F89=fqn)&S zSZWe_J6A@g8NEk+iF+;_GTY$9m6LYEzYhE!3D+>?Y=Y;-M}3q^ySmcC-2OJ*A5^W4 zlR15k9>Xs4zP9eGz>oswRZU4juzPo&ZFD~sgzSyutrgV9+apo% zV~mE|&Sv0snOrCA&<6;1)~nZ(-UPL|p$!9)EU=1KkE9g53=Y{68X@Z+(2#?X<&r`# z=w(`(95ib{zrn0-$mpFm#^~nKfXu1b^YD5*k}9VE8qm zAe!?s*jd_mI;iD=I~(Ks!>@Eua*crGyGxI`mlo&_E)Gi-FXe}QA_(IZ2aS3#lAs_bdX44inp-Pd-88m&A=g73*( zL9ahO-`=zB0kf?uTdXHkL6$&@KI^kDnDjm&C35EnADSy3_i+N0w9Ch4c`ZRN|G_*Z zO*it=O6Q5p{z12@p0T08U0w>*4Ey@%7)m;|Qbmc}2Hk0)kP#6d6uy5#Aa!H~JS{Y9 zrLJ#-LcY^7nf)zrI#2TSy@MfI1$}w#M8AO^YPac5vO0l-&cQNAviG}skW+N-$ULZp zt`++Im;( z4W=CyDI}@Ps5TKTyLy=!Jlh{i&n}$+$J^`~rhaV5(tq;h?1gjS&&+D@=9DEk>lv+= zt-J)|xyU2!RSIA__b6nA!V5K=Eg4!o$H1xgu~x`=Hjt1s917oi2(PeGzs($qLXkh) zVQ+0Sz*MFGQfl2T6jr`Vnvyq)BAd(m}gx!ZFz^r?9s3ICi~HS zaZJKd;2YRXTsXZqP6w2pm3^U?sX*7SKYsar<3p)hnKosc74UhJU*z+f7Sw2_BrX@_ zgY(mM`LZo7yctr&WyCCwz6ED>WxjTytAn8fV;BwiksXY8v97|n;E6iZZwJ9oqUvg( zQwC~}%uJ=ZN}_R`!EE2T28`@FQO8%}1?Pl#PNhgpKuFZVXo*%vRAxI~*Rn#1vDrs> zj)+=8{HIR*;CTv@8t(FR=x9%&Y|yTr2%7z-d4mGg zf_A3&zBvY=-i>{y@{Liw@2fhw%YE<=-9y^#F$b$~QYDea~u$BJo=eiI0=Fz`cYE;JbSelO(_cRY22elx4WKS zIZf_hK=(kjPj)UuOqV!~@}_~ln}*mkR!VTHz82_aXa_M)b%Pg|JJH4Y%&+WhRxso^ zqEpATg^@)0P-goABgBf!&Mfppz@iMHUVkEnKX@B^P}2g!wZ{7E#fBg{d#tovS08P; z3S>QEh9Rh`^%;9|9h#J?3GP$qMh8{itWVTw5d6fVFu&Xt#E3+^^J5wzuzs6(&PopK zX0+Y7qsT$yA>qM3wrDuEZtk_Jk%N*(kuM4M<%3%iU0Bl@24u_@`*2rW6HFx>x|==| zqwJKg{M+KlT|VfJVOb?Z%lTW|i$X`heTE~qZl(b39_wD6doqaj;)Y8)ZpNVab^TOh z$qGh|Og!_Va0I)pPZe(AW*C>{Wj89c2MyVutIqE+g$VL~*`tCp=zf}yU+PsYL~8Y& zr5y4{GmW}%*3V85mV+N&F*l<_EoC`CNS^nu0;WDW);GlMup7kX}^N0jA0h z31jkx80vK7(P_^EXgBl7rR#F#S z+*0(E{`CWb@9bB9T44c-UC+fJSRc$C4LoA~9FZ@y>~zHMLXZORUJ zp<#U3gln)FhV1=4qsku-fp+;^xnEsT$;&0UvO);m9eNp#9QFpiS{lw;RZUb7Q-1yX zWHA^wnbN;De2xBc)`Uw1EvQ91WKH({HM(=&sWyqUMaG#Mnt#7HCcBGy*E~80`sa6CB$L{} z&%*Aa<&+xUA`tj^sLvTq70i9b)dax3oBK+;o*l-s@B6b5`vSBJ1L;IoxgmTYDKm?3l+j?{A?ywUY@<@j5)D}^3rQe(A z$Jrq|)qWR~^}lxb-B`t(3APtM=mxMjmW-u4=^ln1Z;ov_KM#dv8djyp9zeRvrLt*S zZlI9OKW-#Hjee26=ITU;F(=MwYt~H?5^ei>H}AQDr2BHO!G(B?-LtPgyfq)v?`=%$ zCGcRRLG6+l(1VK%%k0dc`L6CIO{Z1hM;qhlvqEY#5S}i(`QYe9@W+Y9EIJ7^u#g`p zj~~RidynfQ-!p?VOF>x2cW;bHKI1wvM2VVQvZpQ`HAU;3u_Gscu^{KqGan#SHg@C8VL=pqVoDpSv55Airyd(EeuA(oW4~%<&V%U#`|LT5Ry2D- z+}D3J8x`)rpYgd+6k%F;#KqTwfhSEBCGTDWgAdg&o>D2I-HD1VKO+u|N?H5TDaVc> zzo+H=NRlD;+`u_8x_2l!FG8C)`3mBIBc48Q0OdrgN3T3m2J4q5QK>=ts5Ee_s(u>2BIEFh2MBw@Q~fCQcPSQ6{_sPW5jW zC~FlU*!T5JUV8*YZyIpoP&3BzaRpU4a$v&slQiyG5#aa!Tb*{p2M9fi*^QRW5K4y84@uU$Wt`83CguDZn?{s6T(QS}Suu+n=DuglX)~qDt zfe^X8*i`Yb2t%aTnBwJrfU_EVr$@yvNZZg8w7j5!{56{y%#tgZ;AE1qDl-gjG0ZA< zHz+})zNmFaV=pH9zul0ruEfZACnCF5WuOwHsy!C7gmMz)kM0|IU_{}M$VxkDNIsd` zn&*=b@lp|f=ZniA?k;sDg}oKpJ$&MqX%~sto20}NAH9X>QsGMmhJF}68?opZR|^gu z3zhtO-ym#sfA!w_95i^zQ7-pnKl<(OywY_3D5M?WrO3WV2o5GyZRh!!!H#-I+@~lM zEK0dt9lyka%*CSRr}8@(qIHl-e&1Pe5(>1XmtO-JS@9#;-$)=XMEG*%lsKvqiXYk+ zK!Tc$Tp=o5!rH9sI!)W-nj`I6w2JrkiV|X{&A1y+B z`y*SIFvuw=ye^msLbNBRT9+s>%s+{C&zIX^a@2oAmFF}XUeP6YxPJ%&4`OC`_h3MZyjIAJ=V$!lMuM6-{ z1pD>LmZ1Ms=cEuCLJ+S&wb4OK3_Rr)@7yE`JY0`jJcXLj${^NDn=T66-w4O$W_qKV zGGj?8@p*`d+_X`zng!2C>5}AGCBQwpwGL0kbZFvy;5F=UkaaHe+g5V*XmX+8dK2UUOV$sAQK0~4ag3L^({R4Dz_bmo^R*i&=8QxhOT zo0U6VuP;u6gD&BC#UlqafllV|@au40SUc|98CFy@$o087#05%UX1IB$`asiZ4`_N_ zMp>4#YK}vU=y5&bWrxXOFkR8%A}4SMMVpeHK0j*kdvI8yBTE3qg5TIvpJNBHuxU<; zhbPeJhV{31GS%Qnc;rOKK|z#rTS(q?+O=11%ViVkWprlX7&n~x3_4Geop(x3gMt2w z%Vus#czdn&6ZfxiB;Drd%BVUHdOne|8(Kr?v?}Wp$~%WQ;v`eg<(xyEX~lr!-}u4l zQWzaqHXYs}T$kKp%|cT-<%BC)7l7=<^5zZWci`aiYi~)HGnjQd?;Vi2fJax351zd6 z3=JBGU*5`D#Iyh%;gpL?5N&YAwKK^TqwPMgX2xxyKuT_61^__#~$`#P*t^MIIJ8|H^z}tP`*ipDK z#LoZqmK<6g+y5<2Ar+ie^<(U7zwPG1@Q(pHETHN$a^lYF1GIQ1eoOgk7YHwGR9yPB zfL8X^J5vW`z`Z1HN%i|LFn*ywLqq%ub&}n!Rl?KZdZE8=@$FY&Z>jn=>3I)YI^>QA z-*QGh2cLxo{mW=PbzgK%g$&L3R+xhn3V^JhZ0CBf2YOelubrZAM7NS{uilnTbU@d6 z-jr9UL={w+ZT|{VQckI|n0yBZhuYGrNB1GPB_#9lkRlk_XCCI%>qUdN-z+=pgFw1N z)W(5C1$@_s9*xM8pw2@@E~&AX;JnX)k;Kde4OGI8h^7RB&!Xhq1<`Myw?|Z|GRqG{ zCJfnA%xJ*IcDd$`5I;IzSrRmyN(9}t8;)ATmS|XN{;h6x4sGam78_@_LD+o5>VCm0 zxMh`zv)TEA`S&n_6Oq;sF?h^J{BbTA?Kha!INt$o9g{A1f0Uros9J$qMk;u!@g4M> z9YDYN%;%Ma=fQ54%bWdX0_qVLep@9y2>Q?U4!o~h1l#nvm>KR#G#SdhdTDbQwQedf z^>f?8?H&1C+WgmGqwR4^W28pqF;q4y@(bbHp$0MN5jn19l+&fBz@s+wbLM>zmL#Ea}^@egi_R>}~Z- z+OV>{{UnjWRVa15M$5$Y8dCl_?~8fP2mYu!OoGpqA5&ZJb09*bAlf$K1IATI7eqX< z$J+gewd7q7VO^MH)3wVZkZh$I6QS(^1#=ORZ<<#i>FP^wPP-VaeGtJS$Rz~fh5;;_ zZPQqOaAA9GR1s@up4|RL(E*`0bEj2Fs~~fPu9@P=2IMBT_dP5;`1ko?(%5U0z2=!QRbpG$UVs);$F8Xb=_f$6$S0-pRU?d>2)Scj`2?etAF*t5)b8e2 zA(BJevgla%I>hB$I2sNJ@=6?xK*MKVHEpG3==g5`4Da(e2>dCLRBV440tcqb$xFUt zv~kD$T`3_f56I4Bm3Z}c63&gdQ;+51Jz!GEPK!9 zU~!~3^%J&5h<%Xk)vpUs7}0jtj@lWM4v`va_g%sGg}}EjWXUn%n&9uw3+@msP(nVN zb^z*Wk2L#K82w#;;Q!_uIA@zL%a#j4ht#F#e^3uEFX?-3nL$E4bUKN4wkkYVI5;wvs?$#X9VeD_ zs&bq295nsLqjuLQ=vCevDZVU}QHS_z-lc8+up__Dd1v*kaaG{xK!PKwqLFa4o zp@fR*yEwxw^kR3e4M}f=xafDr+~?z=Acyyz4p|r4Z`4(rv9Vw#%?=a&9210IB37t+ zx*xOqKM}tPlfa^VS2cz*48hyYLNZ{43ljY=X|gu>V^s6!Q%SX&SbbVFNi)k4((fAB zk&tCW`f-WRCturR#rNV*qB(`Te$Y1Y`2`6SPD#-jpZkRQPwTzMJQBe9WN|&^0Tm41 zvp8eiy@AgEvvaV@3e~5AMu@E}sP5h)fLST8*F8>@V#IxdkAp0%Sg;XDU!KViac_@@ z1PR$;TqenKkjn#f2{30Tet!?+e&mu2tmR`vgXZ?U?JO4L+^ypn9PG}Xzi0^Zk zVl)9u-`6vkj_&$}7x@!4r4TF|@w-OzYycB-^gpbzzWf`9qqq5~I@!(9EyPJltd0!R zs>;17{6isJ>PpYmk7E!kV7b@i^a}`Z?7CWVcN@z7GoKAo2))5@t93^Xix>lhE@*{A z_VUXQ{fC4w-^pD4wy6aq9H8g*ru>ZAX~Kt9y=nek2NXS5tePDM44D(J(GjYE(sNQD zh^oxc<=p1Er@vD$Mf7gNYqvlM>1q!Q7&wM0{u<|qvlJkd(23~xAPtnKS1#?yWTJD` z&i<3~zcG2h^H_jm5`>5yGKwo#hs==nl5>8~AlTt@@PgxS$Yoi*FDqmR;!RBug`61k zdZBW~W_XwPF3`2nOX2_a_pjepgvyV#JI8{He&BM%$q+30?|gRsqdQz_j2+`=lv}oo zX|RCJN6Cs+4sy*M3ce8CfVv*i11rc3SsAj?TJFy9zjdJVz*%{%eG-^Fe~X-4m=sg= zU(q*6?{e1LD5<%GwlI zd6c5@#M%o;B5wIEF;omu`vl_3_wLU3Y{IP^>qrbC9vX6_nT85mjeEsJ zc~GrOF(bkK|FajpR?XmvW{eAB_2dqo{MT+!IpI4@RIvDO{6J}bWMz``Upqt0X`V2} z9wLaYaTa6cBEmp__vP&X8q5yQ$zT691mWty);O^YMx^I!o-jpW+ExyK=&3vm@?=VL zO`QOzx?bu!oi%Vudck|5paYXUo*ry-4uo9wkIrq3nHcm>KD&rHZKk?wA~zuTl>D=+ zuKO_dpWiz|vB1x$p=*c!uER;sn$R_5@bCPbJp5y}lzIO>|L^@V>BIQ^%z@E=^EGCS zibh^IE{vI>2lT$~?z2nYQ*!DXtdM2DO=TfMi-o%GSJcJrp{mFFe#s|64E~=#xDcOE zeYf`eU%v+zvHt#5${MV(&rIc`kHw;NLgS8`y5JW2C#Q`g2MVPA+)LM!$A=?7d4rAB zFxivw&ymNi;4LCUTp^0H6)A%RVk-zH<`Rd;4tDX%B?>i3p9Sv>-+45jL;KEhcd3iS;C%@~T3&$9> z>Y#C-r9J=85BLnZT%fqbhCXox(tpk{U?LPRerDChYOAMvo~+iRU+MK1AH}($oc-z( z-s^rC`X`Q4cVZaBq^$|ZG-tuifZ(AH7Zunk%7q*vp4rV4X`_i7A`m*ZLP^>50@{KV zhL3&_#;79pa!2&Qf{V1anu3g2Fy7`TS$Ga&#UGotNq0faf9C-)w+r^x=)0izJnQ~u zXDTd7v6y}E;3N75>iTG&)PU46dph^DYRDz6`TfZ_4pUOtIiEMgqR)tl|6zMh@FizD z6c%HHF~c@0`$yW)S8T$rIxYcx{S9k>v0jEyhgV4ftXydGS@7_w>f+tH$Ft|G+W^%`4LDXBTLH8&B-uJJ)V#!!ZPCW{O`(+1jJwN;!lX4iSJSIf3m_keN?yrZC zErRneJ$az)UF5SOqQ{V=e%Wqq|3`>Ob2v3U(*FO+_a5KL_ns6(%v;-)YFj~&MZLcL z)1L(6X}bB@b^O4y*W)Wyp){m1x_u1mIF5Ofo?mS^Hh2Aa(ZoOXz^8{R;~}_9Rd(bN#=5@HdWpP9-cnT0Dd)U0#NfWA*>q8EnpI-!*^g z2ss2pH*b8U{c8_zrozyu-cw+;GSAL#l7|2FUvZ4C>D`HO-`dR+!MXMq9R6QF{JY=( z9mnIc{bC>%XbT4>bM|>FNuf3kTSs@>NO(-u{f~jta`Nv(p%MtU?;@ z9mX*I!xP-^zhhX{4cf5M0<gPF!SI77^D~LAn4MEO^y6XHUwh^Fg%`8cvS8y8 zqZ4UrYebzF?#L3m7lxr-IrSkLrhm8dY&8O(uVfYHR=Z(3eTneF*=@EV> zJ`LXPWGQ)jyr8Yt=9T4y3FHvpWS8D5|7-7O;*=+(6$;_rkGnC)IX__2)As4fnM!Q- z4A8cC)PZ;RslTvPWrBt?#;nEs7cleaWi9@coxk<_pE?pk2>F=QL5mjN3!enY|c{Y5LuUcD0wWfIPM;KRgSP{;NYUm-It-a(g`fSDzF^w)J7^ zFykx#*4w{!kNRJJ&b=F35Egg`qI)X?*q2X1g&C!IdVepbpY-vYJLry48Kn=bHIHHj zox{Kv;ir)FKmFpWrtL6lBMPZ*KMwhm5@0;vL|fanGAOcK8ok>68B3?0aMdshVQBbk z&-a$3|LO(^U^`jSHbn~sdt+RyX_qnHw2SoMO;7X=y3xS!j1X379cGIj;VL8cWPM_M7)oV?Be%i(A7g5X$lH zYcthRXeJt3`H}b$^GkDIi4%-qwaE6=_rw>F=h-Md@SqBkDo3__2!$Xo(a$0#PY%+y zI=ccS${^q3%yqqJ7AWFdRU5s|jFpiN-#)2$V?4c%^<~ipEc##mNghZ&Inc`iY5(NA zFJSqfd{y9xY5eN@SFfFbU{NaKmU-G;onuN&NW06sa#uJ<@7rQ-rTHews|bvyJ{tH; zi{-ChM*k;YNzeb?=X(_W0UkeQ(2wCqZLmoR`U$u5yNWSFSQ16s!z+^*$Jzf7HRE*^0H+eFpP8(-Kzd_T_ zZ=XNj<%*qxY0{{_^~6Gig)ArG8OFI3@63l*g2jL8O4~jxP?tEs{f7pFx&;bVTthJ5 zU6W$*Kq3?zwHPG|zJ!+Rgq^SRj)B#GbjC6t1pO$~u3LTsg(L&>r|AVDqSkGNRq8CJ zQr!+GJ?aNZ|M-E}zuW>I{~0%46v~_vEzeU}qT9Sp9aXC%CNC7lH>+3Umc(_V|5a$!=L?`*B^uC6+>OsJv)$peq&W-!~z^PE~PizzQ3zu=|``mh+u>P z(^&RLR!BY6Xrm+e9lZiBQd4P+{^iL)a~{8kW(3fn8?Z`Kz=}E3uO&uKCSr;qiDdUn zGKl)j9=%w*42gu~JcgH_gF#vE9Cwo1U%&KRq_9 z?!6}EnuZzgbEK!Qi9_&pseDVP3Udy_O1?Y*Q@REy)gv&hocYi1&fvvD1dXyLBKc@$Ti#C0i&MSn`=x z*F(>L`b<_BaDCk)@xUg85>b%$7HjS56ZPhEkgn8<)Ry#!4MPN+4-462@8fE z@sjArVZc2dZBlkWs9tOf^|_Oa#Yvwp2nW(*Krs`w3)vG4UK5fV;26h-D;1hgi?XpL zo3wLgbO2ji-rQBs4~Mpsotn`z-=H{No)s69G2?gkk*Lq*|IQy;9+rfjR*}Y3s|Od3 z(HiX5J&`>eX=xbozq%JXru}n&x&vf}v-cjjQH`lC@!j{W&td^#{JNDeKP0Ofy>z_% z8k|1rj;-{B!ksp!JwH#}hXUpR$_?wM;6$lhHQKWuJkq5nv-#z~FL2_4#gDTPvP|4; z>Y#)9jZpUWVaxt zIz6d|j2R2_jEIiiPl23Ey7v<5nRj{pgMiH7Fy>oa7vE2o4wWl~2l?}vu=-0bykHH3 zlKN?h6Cs5dH1pD)VZ(4&fAD&`FTQ}tWU8cxwPWC9{@u}gem|r(Fq&=$bYX;>RMWxY zqi8X9>BO^iH!M^;JJ?IQhDATPV$ZT|VadaAW^?OUh-i=&BfY!Jedd;rZ;ly)|6)PR zC(~fed*^;=(0(5z7ziI8=syYp`#p{b)yiNv&54PpoXwEQ5%#72XE*wnPWA8WUcgkQ z?jLd-GpNl}%#$!Vi7jKl6ce9y?$*5?Neb_Fs5;X+M)%|v*4cM!DOjJuEMH)eKh6TV z;)+(>-&n9bJ*)Ijlt1b&IeLy6GyRRn%0Iuox$cVZ){ij8jlIT@*KvyP@yGzC%#mK+ zDXxJ;f4Zf84E|6tw0@5zxErnM_&pEB^h2{l)cUbI7og0t7ahvlF>1-=!7Bn2DCSO3 z>%C!%8dNX(jh>-eb4z#`A{7-$F#Y3Fu3kAUD>EG z`YOCU+Qb-vB}ZOcyKlchP5t~#lHRsm9Zj|)ef;AtPkugdgNgwIHsZf)rME)j+2u|{ z`grhFpt-E;c?;cUxbJ7{t6}lG14i#TBq8IB`BIHDH&(mw&584wVKKej*q-pWP$b@{ zE>7QtF+nGb9Bf-4XWNIrm4yKEBLsi01(#wu*%BL@bqK`$boeFa;)nm9&#XTE;LnwE z$a|N3?_p>I70@!EV0@tF>Z z4lyw}VECJaBn>ZSOmSHnyWuB{KDlB$a*xxXKyhbJV=V)E51N1%OFEX?2b5c%5ya4B zJLV0SHpm_0wu-oT9Wwp|H2pcc0L7VhUP>0fvFM)DyTb(V_qgi6+zF*`?_B)kOO7?C z&r_TW^4yJoTYW#LQLr&SLTgr#xLd~-JQ%J$hB_@{g=E!Ui28nK%+t;dv?B5qoK(Mq zm2Yc@w=N-M86OUhJX!ES4xPsYW!k%rV8L8|z{zGOOshX_Hu~ly)Xzw^ z1vkh+b4XtCrFBQ4|>ekHB3kHyH3_nZQFxiKW4 zozL_oKNS7bcZ@~PfBIc?SadXei8k@uU;joEx25Yk%Q?3uLnV50m6ERD6EySI8cj$MzJbGAje!jQd zfcdLy)9g;hm_p5Ww;;n2qAtxu7%uig(WJ_eq%WSBS0}pRH!2Ttu?dlN0m&H2EWSE( zBpK5lina|sn!-Yg6j4vYW0-eJN=e3+0nNC7X&nqLg#cc|gRzaoQ1>N@Vuav6BwxIA z;Ac2JrkuRt=1Xh>De0U&7i6wOst?zTpA3a{yz)MB<-OP(raYdwbeSJC>#ENU0aeqt)ctEw0jH$OxN#yP1%J*+x=li!_fw z${*Xy3pVPQyAdh-d0ZJ1RAf#S#+}EK$CNf&4Gd6OBz$VWvI#^8E+=byNnpU!oz0Dd zJdiJ#?xq^%14@Pm^JR>_VSvt&@rA6jm{DZccP--~#6MrTIIkaqq52&1Vu4iPS|ZnW zKwJRg3j#uH8O}iC(m0LTp3~s$a4?-GK^7Egy3EHGmcjekyzX!EduVR3^^ina8qM86 z%IskPrdq5KKKc*`KL71+Kqi?@buPU=x=VGZdAjC8-1@u2O(dTnoMdXVf7tIT7haN*A&!z20Z+I||{JEg(*FTULYSd<&7z&!@ zv_sC<8X-$c|G?W&O2oc)>x5BKh_w>ISNV6b-OJT*_2oCnkYY=uyq}F#NkhLy^kp!M z{TGGzcq|4gksZDLo*No0$BXWBe8%+tQ;Fsl5>T3IY}#y54;4Lk_jzi*!jQ~+3$aZ0 z7}hItQ2etghSSbguR0Y$d;*;irM)u5w2(Fx9x}(uGLFG7cdtVC%?Gj9uQx*C)hz<^ z_nVkNV$=PM{RGyfKV*s9yC2%Rl~1;PZGuSA(Yiq%Va&FAb?{86G59hU(o_t0fX~;> zmn$KP5I^5=Y=oW|l1|z^?Gea^>=atsJu>8&yLwI6+lLqO74#pSzWW_wKl+^@b0vU` zMye-~9)F;!@u-&A*#&6TJ>JT=XAl|4oB$3PAWTJJ(;C<}(x>f7ZOWVP?pE?EdXirHNQ8w=K%>Kq_f<2Jdni*SM zZVgGbqrd6M9T)csp6-( z*07#=8iqx!l#z|B4H(M9n0}FGKV%$86Eg`ojy3^JA2QAlL3%Jxc)r(FXlaY5l1_p7*#ILSbN;(v2f_kUtqFYz+7cHRr#Y`3!;Mwc*YpPTEDU={d|hf%jV9L8d6 zBl$a-N1!f`_V|qjI>_SKOM8O&9TsiHPpYq81CIsDv@6x0Fz@1V+r95TL2Akc(k*IL zNM5`as(X(d1MEXWF4bjWu`^?j_UB`eQN^HGX~n#-k<3TH95Bn^!Q-K)L7ZZ+&Q+vL7IP77O)J zL478NE?|(wsryIZK^^}m#D)%=Q#O|TZWJ}oYuNT&w{1A+|TO$ zkL}JYJt12HA@cWH)3TN!)TM3gx1{}sm5bq0?4%c<2DtnOqq zmwrJ41(Xu2GVW1Ox+$4NoB0N7gXAK^t$m=hhc(DSb_R>y%eG61@S(f#T&=qAS*&Ne z-)ctk3riT9iUsWuOFeT4v+k`!itfm)V@e7-HhnEM3@yN*kNsi=n#mA#ao<-N1|BSW zS`+iCbslQ3ej0R)?`A>p@NEM0!*W zIh6T76PK|40_{?@3(R7_Fkkf2;S-NWu&~(6WrVvQ%FZ)NX-iUJiL3SXcq0j@NSSdS z6CuOu?HW(_M_(buL+hQtWAtv_mF_W`^Ts^hiAiFYMzDS`?Qqka4$7CK8|}1bq5Q_n z>Q!kww0P&wY(88E`Bt2snK{p}sMNGELy#4cgY(LRObg|qHdN^<@K7*SEHvwz(k!W8LKjo>w=Yd>x5 zE9!?h>$p@pwbP*bpU-QUAsC0goLu}Ih7psNo~7)Y=%-ld6K#133g7rznvEwzEn(JL ztQ{w2WpB#beg6tU|2!Yng0w@5XFmQu4HbK`GN0|-hP-7ys{SP}2(Kt|*sR#)q0sJd zzbSu6oaD(p)N&l0^PH^Dt_*d%xl-NL2}ygajzaWDOmz9rbGIJ=Zu7B)3C6EB+rL>4a?@N zO`dhUf!5jIUWa+Y@J%|sQn+X@R!@k#jtCN9lM@5~s{nVXIeoI5BEALd7WG#%8&biQ z51Ppcr0`!IT$D~=ANu70)|3@p?9-ox#CX=GkKq^Lu8Gd0k7|McK3BjxU8#;Fx(9!` zsOB<}=~!qXU-Y&+5flC4VG1|UI|1&P*gi$ zn@ltV5rM+*?%V%?vTz;E#@JYBDNr&Z+Au|vl>j_I!@qUIYqnpppyAF$>Ocs(zHQ-m zVo1Rn(vVnhV`Xp;4vyGl2*au{<2f7khY&Xq>sB}X9ZKnS?butzYjtp8}|_J7hUYVDtyxE`Ln<4toWzz zZUKJ3^ZXh6zC*ZFk1eB7A*O9j#9EhmU?C6v9-(Yh%Tw?3rj&gEybF|B_m8$<%jeW{@`yT(tOhT(%^ zA?rAGWW+;yOcZtgu=y(%?u{-s8Hn|RX{J!sozhF_8j*F>@$gXN%&eNu8WaD9O_7Il;>`4+ysvD3dKf*Fd@R(mbW+EHK{9b~elxTnxUiRz z@hy}&YiIaAc!$LUp(oVE5K_7RlnmDR$dHz`#|$Ol;>uq z-1$_Cxwkt7pZt=7xV+v15uOoD`XrGg(|Qn7B-9&dR}`_1VBV!hvuHehOkWH^;QEAP@PS}d=&F8h`Ze$E5m>!g@@zQdXQ}@dfraY z6_w|TUCy*eL#+abTRu%JWrg{wgW%0*5KXD>`o-)@djtM z{O-kE3m=iE?+7vW&k(h^ybh+Nd?F!ZFvg;gc@r^hCyvZE8Lmf)WuNB>${AIj**{l`0XF(k^F-|VtF zM0Uk!5_U{uPy_+#$mUxp`N1B;8Fdun4h$1Gw{~Jphr}=91Lq+!H7iHw=PLLyn#Rt^ z4PtiS{S!}Y@*rzU!&y~R99<}UnmZ{>(2GyTi)bkr8hR<{W3mXKQ1_W@W}qzwtqh)% z54jADACyu_BnL6b`|`KmZYqqgcBV+bpbq{~352wI7cl%vXBIn|CuHT-a!6=@M5Fjy zoDS*&n7N?PTt1?N@oxQ*#OJ6}Oza5hFbJk5NJW=D@rPMW!X7rKOtYcEW3DMTyt)f2V zK#_%Z*05^;#)So)vj`N&MC)(VHkUfVy)8Y5#L=ahTE z=KSN|52E-nQC`Cty(uuZd3@Mp;0=T-O}{fHtHazWn^W(Ohk!}N@F^-aM-0grpi=km zg}8(Z41uE0F~x^tb*uL-6u)2>yz!wD66NlHnJMbQtaJ5;rb-TDZrk*{q_^y@Gv&#I3M|Y|*#bjptht&Zr zHZ}=7=D-Q163-rrIUK>J3-uWZPPt$~FWE@Q6Aq=e#;U$GpRr1*?@6F?8>TnhM~w|H zNK;v%>~pvIJHBpxXqb)aOUyg>Sf1jFyMJ76*LtO8X*NVJsVB;{+ zVO{Ns;ZphH7cYfF#WnX&P|O8Y1lQ>WW%(iYlG)V!2OU)6++lVZjRU32ENW!c##r^| zmdBAKd8n~{Xs}c53-Pot8&PcyMdzk%?DmCVX`PhQ9z7!{nQ5wG^sa*NWtf+3PQ*+M z^)K<0$Esk7X+rfCyz}-=QzzwnG{|=UXfenLHDo6RvQjBgF}FU;FW5;*Lw1h^CzdLKl zB^HY*UzSvG%o$o&NYMh=tZ40#>3$D?X~zrg?h*=q^3Qo znG11E`*@p2E@2usSG{mo71U`5E3eZ^Kv!>4 z#k;%eO3XM?psZNy=vvyByoJb9(x$88odp z2M?kuMqMZVS+1>saV$=p-deR#by2_iJNH%an?FO{E>r|s*D3VQ_s@VF`$PaQ0UP>f z9QN-^`2{6~jQl)%e?dlnxHXGz2!_|Z-n?9u4~4DPN{$A0V0TforFe!La}BOcDGsY( zOsn12_^Fo|(j~V(Cw~Qsu8o%sT?xdHvy_E7ifg+(E#&8_bq?bOZe376{tUCvx|Iuy z$YZ5tll58Sen>rX?a$%lXV^fYLpzNsi{v0tnbUXZlt5N$AHuwZA z9+bX`Vc>UrJLWSq6<_EY5PAp&x9QpaBU>*rB^H$y2jplq;W#zxl;J(NhBHGGB9d*r1i~~lJ)1-WP}`f&y+>BW{9=}|3@+E znCZAMm+Tsd@hT_lENXc%!NGIM^!*ry>P0g3=44=!_?V;tC_v1GhYIb7^RP7bLsn>z zJrth}X}G#L2NAy3m!82ShPjOjXPKE{Sa1ARQSD*$J)L!(M{^Jh?l!x{pSgy9H)6@s z-%&wxabnkorX%_YZ<(bWBgX=Z{jMAWO^_*=`l)6_66&Y(wa(^^V1!}UXVdCzG^we2 zrpNDxeo)jLF2I8!bl=MFW%FW%xBZF%jUp8EF3KFaKLiCQmY5IE?8l;&%u8M8!qMy5 z!5G!Y|Mz}Iz`(2HP1Sl>ND;>OW&K%~2~VSOLQli1$&Z+R?WQ9A za5Lt|UQ5m{^aPunaFdnFPgtfvN8wtt%j-drz3a0dFpDfL^v^EGXRAN!lVy~L6brSy zH(Vu{XfN~ZF%b*)faxLSbPp6`dZ}_;Q37L6XG=szzJl}+ic1OEedzN{!qPSU73Swo zO5Q#23UXuEh};y(pm4N*v`AkC3u!-ZC0|rPug6xm9CVIAf$cN0`=?Gr{hdzHJsOf& zxYA2g+jSl@WisewGWKIw*yH-T=7Ui6Lw`l(v?-RHxb;JeCIO16gAW@L#9-1R+b+MV zLBx%*+eE`+ShPv>j^^Cnss$Bfh_@ljmo#RK$nXAt7JiP;Pb^1m2!_NphCSCJ#GF^>I@s@4V;aBg$qw&r%#({6 zCwTo8DjgnY3w+asr1P3~%KEX8V60BGb<`7+4$0i;|C)>v6Wn5tji)hF`S`-ufng}p z4D=DUmx1g?UT*g5To7?>kZ^G4280l+*X@lML;Dq?fp5%p5J~!st#9Y`ZXCv?lX~C9 zn1@d|jpPnt1O>_QKjIWvVtKu{=o~8s{qvs3|M8aP>B~u~DPqu4kn{O*&(RPcjcRmpSh(OxUJ0xgJ7?9uE(cXg-KSkCmMX_L)min932Qe99BDNz3-!JpK+6 zH1=C$AJBkI^6l{~AptBB^JO6lxrDhTtObqI+7MTN%JLSWr`TF~RK z5PtCEFY#?bj9?OZuN-v@%I(chWxY&-aG{B~xoe~tax>}t!BA$%|8%jOW1kMV(lVc6 z5D0_>kKSzwPb0`n;oW=wrwoXh=P+~Ggg~NUqRX&0F*ck%a)tUa4F-9Vu7460!s6`_ zM)A8+kawAcF|Q#9EjSG+K<_{OTuBbKQ`a&1*Qg9_>hdlp#sUFjSHH&aa7_whR5|B-H{ESa zK6mlSPQ`vyP3GKr79xb<71@&yPHefY{>zMfTr@@~$I+(G!hfBiZ7}#Yqn-OwmLu{L3po)VX<|{mL{oVQzGxjWf z%)UN=_VPqNcUwO}y86g z)!Sub-yv`C^(k4iL*QBUiD4>^`mfHg^u81LXMW>oQ4)KQPfKot>H&^ ziUO`%5%*EeXkOU%Bm;&EIT%Hcxj@9`-Xoa-8d$(LW0Ze^16{9$=LC+QBmfXA;o1JEU34KOs6|2rW%LCG_94mD9=R#1G;HmHv@|YGY-=uT(DY`R@Dco%52fH^K zG?C7|Xg8YEAEMZgdT*WV}@Mbc*B>yJ>dr76pz#;3XZ5pf;MTURSr^NL#r}IpPFetj zm#UIifzHp*9t>je z$xiuj<3RMZ(bm~{b`}a_MKx&*e?xS%dGnLAyZYyrYYqGRLlDHWuW6?4DY#eOrco7o z3?2K(MSsX#hZbAnTIz~jF%kVTx<7jZl5R`zdDtZecfuhWymf#?0Jlwo?h{Fp4 zlu;?J38> z>23rMCn7epP>f8be~$AaP~IZn&MH%g8Rxwp=*bshgt{E9-&q4p?ko_yKsOCV+;%(3 z<_9o-kA42iqA;X3&&jlG>R=K1IkWVI9W0p4aAI%MhgdoHzUem+7(HC{;Bd@6P^j_B zpnb0ldKKsL-|ssEX{(NRX!U$BSb-#(oumsRDh{ITfCl7g`>Zis4?qRFV1m@V1jsiS z=oP|5}GV{IVm%lG=Q+q>6)b#xfg+lEB_ zu?YFYO%U9%=hC76S+M{5ne}#913Fv8Y}WT>VswV-;{!KrA$ThO@G9*T#+6&#Zmn2C zf1_Cfv)TZNkK{ZgO8x=T0(xiNG@7xneM9b8CINVsx9Dm7QpVt)Nv%~=6p){)OF}uk zju9_!Q=0NcVM^8A!whG`AWlf>8u9(TSgxjfkbwCF7V9SMjC|aJi2c9vaj^h$IJ+EY zylpXaj%B||tsq#|FuAnSbzpGSjo`~Yvrze_cy^qN8?uyr1cX@}pjfM;VvJA^y#&Ke z=ga&cUNLI_*;6kd=!o>JW|TW*{n(PnaWe257yNk4^ge`y$P+caWyLx!zhjgy=`n>k z*Ji)WK1jYWM&Zong<4m>KC%KcOo(p3=b$kSK@A*NX3fnoUYD|tys+|bUM|k0JY@i zZs+clK|ueD12@#fpfIIen$XG;{m2!6i4`Vc+Vx%us?>+zs(YfI#=H!psR|PbqRSw# z_~_gBUaFYQv6)~ptb_nvh}QwjON#`j#@Deb_HACO{8e!tp884?lL;rcFoO%ofhlN*7?BCjU^Il&UjJ<=pgMKAX{rWLWEuM$|)kP>S z*ZVE*o({=h?8xp#i(z8s9qrJ`V-WMrHKSQ}9~R~Asr}_KfoX;>xnFGW)+_Z7%`UPL zn56Qh)96?U_$YevTWo#$tG`kbI5-3P#=xH-qj$0R7gYMspEzWl0`8yZ#cuSShCFv( z(tBye!0$7jaf+4#^UjKB)cgJcW4?uWeanLo?ZQy;bJiGg!WwUam>R~nwin%aeFGC2 zsjppOvqhm#<6xp&2-|R6q=@}aAkJIV)6m4V5ZfV=v6zEb2W<#6LJ@L zA8gA(*uz)B%6G%DU`fpAq-+<2lFzhMz6k^4->qavo)$ymcIe*knd4|2bg8r2S`;kr zo72ACipA*fGwNjDcp%!`hovSU z?%Ypz($-8&Q7#{)o1cY%_yJW@btj0a^o(?}z6Sn!)YL~U??MqdQZHOM1y;{0lpmLA zW0+Oq42amH?T(wqjknW(*OzPHE`gNyM8&l; zj=w>t>pFK5cYZ>Gyk2u`IU6RGN>VfoyFsGfYSqKEU7kLkewKlk4fF$3RW4B^fY~Ne zZCnV)1j_a1x09ogEKvTjx&8|zwHW7>XSN`YO0sQV9tRc}(66oB?*U%+ zB?8CKk3of5kEx5+8GZP|UnQkkZMGaB@mqrvLrnfn4vyt6lE=(u({>(XF#`+m6po1sUY!x2*&?`(&jsX=d%Y1^7> zzrowJqnmHQ7!&ND(l&O{fbP-w#oE1_m|Lx^D-$vW3DpBuT?7MA$lNC}`!*Gw_=rA4 zHy?mdPxzc>*MI@z52xiF(=d(3NmtXU5(7rd7``hrL7X<}(_fPpF}&}PWAQ6ltPrh& zz`h`ef2&M8T(=BG+1_W0Gng?hKDuN~bp?|drP=b?7a_L(^HCleP1Jq!HpETy9GI@9 z4!$DU16k7(JvmpsFfZF&gSj>i%m@=s`tIu8fL%adIr>W!Y(`yQ}o)ItcK;+<>%=?|zGjT7wZ2$w0kcN#iu7}h{+nV&if zF^}(XCym=f+y}bn9P4(NARjLI=U_58`X9PEu)hd>w=O1>c`&2tUUwb4^GWD;pFcI@ z#%^A{%Uuy$N(?C?f>V4Y5fE#0lcD|jSMZZP{l?3s0kgGDi)f?bAkc!XP!bD4Bx#s^ zeZ3q!v|gL`C)GmaQ;UW7&U+#Lifx>p*eYn3oP6VS<^t+{`p{W2Dgfq|SqAD4B_JkO zasc(tL0-@qGEtf!OmDOpeqPXkQQz&BYStDotSIbv{Cpt#PNvYUEG0u>aF^(-q+{@4 zQp=#ho&!Rw`5)4XazeRc99yq533}aXG#+Mn2Z}db%zsi|f*{F#w@+gNh7?^D8?IRd zGft09my0D3aFis`gpMA{URnBX&*nhk)$eJ|6}#N(Dfe~9NCM==6(0o~FF}&;yzNk^ zALJ{USyj$?VC>|tpI6k9z)9XNJ&{cW-5m|(G9PoG+cXDrZ?XVHgwWr*$9Eip5_;=@ zef|j6d2uu(ho{kzQ*p1P#&>kNp8mO!CIls4x_Paq=0kv_>eZB>A803D<#Y00A>6NK z3;$8bgR0to&K~+9P%3o7M@#h*_-^&HdoLzJ&CAL8*$<~MX_&tC=db+2% z4{g}m-8~8{z;*i#gTKi|ynd>r@uIpbB$Je0tz8Pnw63$t%q2OPKSyu=FuNCGt88Mb zaTspR-qP_I)&jexj4$GU>@kx2QmNOGK!^+XX-s^*40frjBlhv@;4(+(zi1|n?oxTL zBOI?_e2F&G7bJmTvMm0ROQGPu^fdJ*rx8e--0PU&W`l;p!7thq-DrQ|`eXj%7Feem ze9qaW3!SY&E%bkUU%40txHg@w!hf;K)cr>`s?J#=XmV$(LgKGjB%uvK<9r|Sc zB>45qG;Kb71ey1}D@Pw^V5+Ix!Ge`0h&;(eN3-z&RQi9AWLk*ta&`YHHTyiwyv-!x z-!q7gy*A|UMmnJ&mzDObc@7lEK7E>Wq6kV}X`a)ZW`e|p?+X{M%3{WyuFbq56AV@A zl`Ra95ze z_x|IU(u$SjI~gq^YmoL^D}#077^-bZz4-l+0V`4>!in^6VD{MQD1f;a}%3L|+7#Jv6*i1bL8=sn>gDxCP?*L_D88w1xP>P*r{_ z0!%WPdBCnahaUZuZy9yQQCT=|v-`nmkYq3=8oh7_6Z-1~eFqpI{lP@L?M@12k{>;L zD7+gJS-$XUJaGdjvX-?&d|i;ZG`#kCR1$&%zAb&u;(+Wf{tB=CMPT=Jr)VF?C>GzG zFx+vw3<(GQ2TA?>e385iiqCMLr7$tX z;>R%$M0rD@><|yLRc8y9GA0;!I{$`Zb>r~6ndO-L=H&B*uuk-3A&@#a#*3kMq?8(a z;vjl+e+mBi0l`FZ)=85S=yu=af=6&WWF)ipRuHRT_@`fo9q%%^ju;sH!~$mhxay&sDugPiQ@Yao%Q@td`uDWv?UK2Drjg3j-`22On21Cb+y z*zPGCn$}>0=HJu@VhVsQDIeE-}u+*tt_yOZTY&^dc6AZ2# zS7|O7xMTXTS5W-Q;I3}EPtN_YAN|3kcE^4bin?2=jMr{p>{y!4hm#+{LnhO^??^Mm zz2?yHlevs`G(!15-t2(Qi9>O?-3X>}Z_{m;GNF!G?cL~mCrCPBp#2K1@pieQ;kt}4 z6m5q_tPPPv&@AhX_ottt@50T-;w4Ln8?sW`$+JiM+NJX}_s7xhsaR3)`A^{Y;k#g3 zW)Rxf^?z0%s=$o7;dPCe95CcNQ2xb11%eM<>-*`}3pcu+IL%(F!Z4O{m7@hV;PLWS zab_L``f7$=f^L z(omITH{R_-jYj7WUA}Wt1yau@^6TtTfn0ZTl8YMQpw&U8R$7&Tp(kl9w#gSUO+W0x zsA?}byXrPRV&BbkfkPmuvLCY2F1S{a1Vga#+E*DBBTO1>d#%Cv814LX-S^$N2I(a{ zEyXb$5LPJsCzjp~eQd6}x=>PLNtSNEzkD{Ni)x?$9H9VdQ+?l7!rUOXnJHDY>kx*o zpAtEf$&Lvg!){NWw`0;8?W|s(7W&rJ|EVZ4$AmcL%9{~dkT#;y&Ut7ZO9f9C#&jD% zt6I00yH5x>KB4T%mV8dO$Lyvp|Gd;~pup5Av;Gtm&l6&`Z;Ex!VH zy}D{!-*8Avy~AJ~5eWe-=heO!ctSprVXzRuQJT`-^u5l=m2*? zZAMjPUMSMBE54{T2WBS^4CX0Tqu*)bb2$YwkYO_tLYT0G7L%&KONsVD9oJqtxc3kW zq3h^N=~8f{VD5~1^blfG4iowQV8!5l?vz&~nla-!MPuw-DHfZ*R4Nd0$3nVaO;ly6 zkSu26StoS^lf5mUT@7c)wEmmAcNI)9eKfs}aE~Y2?HrYG-{rRAldjhksT08SrK%dA z(I_g17RY?fn#Pjw5#^s=*U-u|GrmT$5bG{qto`Hj4ID(zDOfI3LV}9Wp@}!2u&S;4 z_*)F7Ajg7C!tg=|QXprR+mP!B<{D>Vnm6?$o!C_#-PjoX!;Ogl#M(hP5$1 zuPl9voE7piF4!85r-54oqk2@qZ?ubHctn1P2|bq6qCD1;v4Hfoe{UTJ1Y8S=RgCim zAEEQ%cL`@Pb0j=Fw3i3-mO_YDWl14?z47*arA`bws9+&~vK=$FKPgNliehNfFj4no z9w=g+@1A=i3+eHx%ojeYVO)|ELruCTX4m=-AGswDE;5ZBVuXemERg;vDL@wU?KKD{ zA3jHe=uz*n_!pRdpulF|D<`zPdP-_B>>K)Ycv}V~s$ygqO<3)f7O0JXaQo0s5_qN$ z)NxbCBB-|0u}zMmlC9z>L712q)4(8N3JBIf8P76Qp)X+ zGk4vN@q04*&&~-vtZT=_CT`ZFR}{d5g~)iYO$>61PWCd(0VJ?%;mISKlx2o?Vc0W*P5aZ0SkRYC7`3U1 zX~OftecUoo6idBKl6VpQhNljzuNz@zyd@23?_+d4rKRb7sU8#Gz56pX^=y|@E?#;> zuxqdEd2MErc`VdAYZJW34pQIOthaBqVz^|ipHjRjm`CefwjqjMN-Hk|5E+>rVaX>Bjs6I zkcRx)7zcjOWhn4Fsy`4SkD>m?31?;UAo|VGwDh8jknH*BDE0g(Cj8V=vOHdZakry| z0xCnWAYg5h#9SK_9w!)V9iIlDFMmGr9w$JL7sZT$au30w+?6@IPz{QX%W-D26hdm^ zvlnL`e?V8?&Mb;PBXBgbF?c#vjY)TS%Z~T&a`vqUW!lGR(V?H?HnFTT_*io<$qfcV zl;IQK=UMESp-u8>bRiXe5}j=5!|1^~VWAM;6hWjwias-Z2H)S^C5}#tP!eT z#oIQJes16iUvmn^R=5}H5z2typ#^@!&^#0jQ*CmajKwS-bvg^LGZ?Hk7G7q!%LzZk zXFjZrqxal|=~@sK`qfWeq_Xk_mpr}CCHK-W#4pQy)BZU69sNiW6>17u2Ggl@98PFK zU&DRV))bsji|@J89gJZTXI$&j1q+u)`K-kqP*a$ka>Yp(!rr|VTW<1$#M_7OpYd2l zr|j-E9qm={eV#M$0iS_;BDd7fk9#nMO{R8xQy3WJu4+%d=LNsfM{iPoW?>rSPnsE} zp+Vlqjv*f-^nb4rB~Uv82?;e-H)}K?D0)qBpO!bIRkhmr_47dpone;!(pfal{UiyG z=ON~nI`c8^W8fR7VnKhU97EpSJ()-R2@(ms$v;283?`fEJK?&m;GI;@>{00q>4IwG z1}je>vB&1LU0MM|FY#V736sIpJJR-JuSOt!eQd0yyA@AH-F_)}NfXt7MNJ+eOGFz( z>Y%r)^Qgc4?K{aj6KMVjB1oQN!?+8pM-68pFn8qH<^sbph-zxqYMOBbmyW>k1=|eF zIVI|CkRt^7vhzCP2S?E5PsTxqz)=k3mT}ONbjJ*_h02EHYY@axQPZDKiV22oqW+HG zF~uz=f2oWP{becBH@^#`Kj+uh*w_SMIJkJCE{qiYR4iN7j&4Iaqifq-F)4avje$Xs_sD9|!6Dacw$$yq4f#IrKj@cw}7%n(# zR?}4q8P6x$#t+V5N|nt~p`y!J+q8Uho}3pwF3Y=~;QWAz1D70K22WvlTQqk-jv9o1 zKuZtfM06H)AJ^r7jX`BTx<&!Jd4D#P@rTwbI;7}$0MiiYUsc>9auvkT67!z|=a0eZ z#iJ**(`qmzulVg?Ce z6^Cqx{LnGJd*aV+MPL&<`S__d1;l62Jw7B{2evK-R>gA1Amc%|n@i7Ukhgfcw}WpL z9ocnl)=3^fdLV}v+#W%@3Qvt8u@y`mGYmbt{Rv!5qracL$d3UUm5R)R$H7njMS-Of zF$AP!FPr$Jq2V%jnV=Xa*pFGLI-H)z5Xso9d8meuK`iUYqC*m40tb(lhZ;8?Jh-=?%tG5ua z!tz7ZTn0|iwI823bQtW~w?>#j1aeb3OU*{^Lx`)zy6F8Si0`=O!kTm!?DMuJK(i>gYBqeB+#iqeSMs~_+sg2cwX4B8fifhKCG-^z5rA_uH{sCPUAteW)wr`Z z08ycD!@rv>qpQO@Y*3b9;#!4qEENxA(otpFha`>fb`p}x8w+pKuC^Zi@40Le{kJ9^QNx?th~d!l)Mov?-|~?vz(3jwVJXq zQZAtJu_NsDkw#4O&8$nC{0YGW9wN7A79fUQ&(S!59}4|ie5{4*Fw{I|rt^0v#=EU3 z?c5^Y^=Hm-mnskRe(<#7&ZV2^yzMs`bfpVZ0=Lh72-k$fOJ$~kk^C5<-aqWqB?jT= zu9B{Y>_rc@`K=V5TTr$pu=DnUFO<0Q35;_&qGj*Gh|E)7jPZFo!4vTUVmp4^m8d%i zJflqwURr@()t|=ahkS+off;QQdA|G%gxpBTIBM4n(O@|Azx*+n6_*T!K zWyrL?=TmEwj+cjxDz#RFvDR?tlbxG6#P2*!cqg;V{c<~b;zw;T=3>k0sME;q{!k_P z^_O71--qgCw~LU@&MwY>$^=3(!uNd_LCiOO%tP*-2N|ZX)?*L9LCq5Fd)5kP&}aF* z8qFO_tUkHCs7w16LxR5;(U1{9$~2W}?N}D(oMDQj*LZ>XRNhQfkMc0>_UTkHJ{u_h z!Vy`1p9WOjOIF6X?4iWmONL4y5(+1BbZ$`BV~B{~jv&uB$P1wL`&51jWQO+uA6C(Q2m^EjtN>k!dm#J@Q4<%uDlU z)!srv{Bxu8=@(GZPFnBN5D8lJ9i`{&+6P%AI`-n$8<4G*E%ZW~67m*qzxYi&jmF=u zw|yVxfKaXr>9bO0=y}Vz&MTh_5}Bl!n`zx3vhW>+*PdT!Y0?=I^6dx)4}@D2eN?%A?Rtkj zAI58N-#DMd55a*d@G7<+^yS1U%I=FmFyoC=FM`M*?t%^Bjj^W~x&I5@-mBSQF!*Wm z++lwVu)6W>@%>WBdAY`a(YXb)<==9LUG&829@*|5D$7(;g3JknJjax(6>A6PR*gN5%M`qHV8 z&^FB~$({wSZ<-m~X6PVdrOj;C;WOmcjTmK$yn<8)#Pw4tLN{*lpidpEJXk#8-SIAkOYv>!%9HKoH4$=n%Z=ISZgOt|<+p1)8P@wdo z&)D1=(#M+?^|gXQs=a}H-L?;PWd*sqA0Gzyo%k2;Hfqs-$xi0@>6G32^6uK}*MV^T zhM5yzwi7l+H0nl>-^EDt>Z#DuN-VH=-MLpM2FkSG6gb{9M_>O>_tZoKF{iBcm9)!M zDA=bW*lDYbmG5Wt#YW??%B}LD7e_7lk%QJzI(sl(yp@@8Hv$WoRL^iD4c-&sR%AU; zgXvLk4<0lN#bP>j4Vy39fBT|gC&<%IKKl-i-)hxko%tcHpxMA|VH3md{A@R+%EP#W z--u?7D=_}?hp;kIHLN~k^ym(UF1iP?{A^VE4*Byhz8&#(hCJ>CQBk96EVvN3JpDEs z3bJ3RRIb0lm?qKAubCB?a^Fa=(6%0v&WK((w;~FW-qyUfDfXB!eVF>G^9zg*5wG{Z zI0uG2+3|<2NTL&aJFhR%AIQ_?Kj_vI302F1baEonSSWGt&dZ*CnDIU0hxfyqkS3pS zYVG|nDjr#wcxz6F*;0-kF=`YLqS^nj&iz8=NkE9!=gyZjzY zUVibnd^-lqh|H3{i39n4?*wcnPD5EnNdVsuI!u#3P$v*L16kHD{aQG7brx0UuN3xF z2$nL6@>SJ_?1JD;ce!cI+h&w_v1 z$dEBVyG)w|fvF*d10JcExU$Wevb3wm54JG6=Eh*i!wS2${S27A-0NrM_#DDZ-^%W% zc!|YVX?U3*)S(A&&~Axlfz+ogN2J`(LH6DCO|rLp!Q9Je{-OF7YLR_#K5y_ELeiPO z{K^!;s0Y)Y2Pto%9qoBKZJGv@eJ3O~ zKS-jW)`A&D-gB4E?!{vL{~vpA8CB)>y@7&CsHh++4WbeTNJ)y55)dRMrBgz>ySux) zyHjw2C?$=FMHyHKA}A-4lxrDN2~! zVt}x``vu}=)R3!jBe7&M7cwdjub+Hjfw{t@Rz>GeLDa8(C)9ZZFwL|7h-A|?_|8qT89RIm;4Cj_dIo~+ID$y!5J#;tfy$ZOrBVnmj{Jy3(d_pSs`8EvuGFN zV@PaTn=p3qfS5r}JK{laU;u>=it*)`>=4qCGJ6&cm4_(!omw%ZoiO~%=Zg>}DWv(0 z+5-a*g?HUxOobRjo#o?<9+)0S8TRYYckp=gLMVf#0o<<>Ze~>IqRaR`u^;2Bm_EUA z{bgDsCSS;>GVqNA$4#x`VqF(3$mHTXt#=naZ}T5@`P_`rZ?6=4yNF=12=ihWpF3WG z<7rBVM!=i;W8H``E2b};)FpF^z#8AWA)eGhyuJ6qIdj4%*m@|t>}mZ)s5si|8@Aj4 zl?VK(4^22>!_vsovKJNRJ2w1!dLDY2s&Sy@u7jt(GP|5}$hR`G-GSjtcnn0g>V*-BPF<)X7aF@RyEocO*-pxp=wqmo+Wq|j&!L{jl=+ucG?Zj@v$2hMWBkJK zBD13`rk?cNxW8QqNqc8LU0*ZAG;6Bq8{022r8y&qv@H=sRt7&_2-m=@A@ThNCf_j4 zJTJ}yJuzZfdE(l|FIZ7Wec{^vSg2JtJN=ygBs5T&pXwL=zw_)dm0#2jHQGb?dp?3h zvyV`e{MPa`K?O#h7`q`BS%Y~QlXvT5N+C|iy(j(QCx~|KRy734<4>?x} z`6(nd=Z~90eD5W4zj-neBFitJp6qv^)M={diM zyF)5!e{M<=dw&@-Q=Z>Oi3CvgUoxyK%LNPSxGHO{IxN<1KGf2jh{e~EC2rGPfSl4U zFTv6G=um$2_Z`tFD5zi4?;u~@&D$YlhTjS>!lZP`BTNvZ{EYgeE^A{{^YZtOE(K^% zXzWXJ8{EYo=C3Xhfe=Ua-1x8;E4bP}n^x1Xh0OXL0=k#MpzQLdmT~?UgxJL!lQhRc zveep*`yV^O(_ccZ?ZsVm6R=Ag*~vry6TXh}_iZtueRM$lLJ=B;{NR3@ZiWCmK*YZ( zqn`)%bX`SH^1fVU7?SFGqgh-UxXrmT7jq{B?F{Mf&NQf@JCjKs`z#Z16@vZ@-M6l=M5pLgF5YRt zFuythC|!a$ZV|;N95Rq3*)_I5Tn&R(m@r?U z6o#SfUt)}UxiF#afX|<00hAf~;8{}t3jBXt=ozJ7f;2{^{&#kj5EtN|)YGbqAv_=a zbgy3o|816pWrfdZ{6~m!eb@s6W09xH-wXVIEpLfL?)rPqv8dU%*CCc;+I-cCA532^ za<8_oqU-6K`J4T^VCpIQC@#wcTuVy&23069Fj`vf^G6!=XRBBE@iYfgg#2%ioo+z; z6^kHO19oKL&srssID_e9*K`M#?(gcrCb99vHE$V>*Ir z``Ij;A&;wzynBQpqK(SHGED~cGgEZa>C!%eCo&5Elub}qE>}B`}CC1WwkLk&vw|>E~LNgx>)Xt!vFAIWj1=Zlvox>O-aITf~ zVgfjxxuzDo$cypCuUD*fNq6I5gmXg98)7soGTT}@Ae1m}Pw4sc5HNIN^~M7iC`kS` zd@5iBA~@QEb)tnZTy9A5ji3jF&sH>RiMXOec7jftP$R_6`biHz>;>H$de>wdr!oH8 z-6yoO-Kc*pp3FJvA$W;MeA}kHiGdV{y=$DOFigI`!=MZxdclAvi9QzH+P~%vr@Y1l z`t|fFk5^DydJBdwpTW4$6Db|9A7Mh1o3#wz%88x*iLiD&L2P zCPN};vT>5u?z|nV@Vp!(y}OS0Kg@{ppsU8?VJgyoNGz~AY3arZ0r{0wZ(glJ?5iH* zr@lwffnh1^oO%N2chxwP)GVNfZQ0s+dqMOt(OR{oio}F-L+qj_BO$SQyDB713cPL_ zoONpAg2;Gw#{LH{A?0=0mUTPQt|c{j<|bAx|t*r{9l)4_u5+-ZZH)8MrEr%?I(J`7)ZX&pgQ1m-u6(G+ra zpw@}D2E)h|FfmXcjVsZ@kU2&gscmft+aH{xK#~ISj=6^vruo5-^;HXdOQ@J z88nYkU!1~hEt8JDO#4wMFyQoCqN9)%TYUZ3dwI+ruq&*Up@-xGK?x22dzj-rXGQpj z2t%$PaO*c`#Uig`N6c2gVM*ro%)FnL&{UJb^x%&I1e;sk%5P?X)XU78X(3G*!xAj^ z`=|ycY==l4nUMzVDaug>yHNDmn8CxGq8P9AdjFGJBP^L9%MjVa21!K~vez5~AhA#Q z&P?wtdc@x`h4_ssIU1ov(=QH-mp-(R-K7I*d7!d&DiYH58B2 zU`WLHp71l1=rf?9pf@Ch0fG0HF2B15?ukugl74bn#_}X5fU*b^qc3IiT&>0M#}-NX zPNV2yJn+M)DGt0z`F)eUwxPKCT{6WIxW#Wb5Jo0jisni&%H^Y5Yr5&y11KoEnOF*Jh zkcs)hUf?5od*i(NH?X(%${E%kK&NHYn)bFv51vow9jGV4^Nd;B@4!q9R3g(|X3)Vx zp42_v&#r+d_mn~u$(P-DkK9gNF4}iNw9tvhB76^aa+at3_MQTN{}Ki%^#DjG7o;56`v4st6t6tpNQ4~W zfSAt8Z(wlQYcxAkAEG;M4b*HS*q3?#Hr{Z7aGDXB>Y-M&7bkWoa@oY#E6XR#_Ktzx z$;U6#ZO&rEi1WfRg+g@b)u7+jx4`I=8qR0$e1XC*bT{jMDZ}-fbzj9qRe_Fk@}*qA zAtan%?eNgg28WHOZ9!5A5K4v{UthR_%lCmlFBU9HWh*peg`wr znoZ2QB_de;fEcX9&bWoHk)u`ds|iOL0`xlhR!~iz4jjdpEt=@Y&~(kG>oF+-%9yM9 zCS8lg0Ff&X`6Y-kI)$=<*7+)g^mA5yZpnrO`*T9XEIJVS;9D@w%VI(S^&_hKf-6dn5ad?S_E#qC)EVbfETXr*>+=e=Me zCUQ_O#XWLEo2*ciyPdBgi)iAo&u)L$BzO6p5Mf9?1rzV(pJJ?pziQ6`21q`2*!`Vi zDo9Nh(FPW>fV=X1=UlHKCVJDi^{9&M@(gCC+*c34wXEnzbxATB%hKg&q~3!7ua_U{ z>CMo6a?2#f@ihbz$)7ainnAmFEVlG9=fTvsFXR5#({NkwMT0`lJUS$XQYr|ag$u=8 z2lO^Bg84l@j_Jf1G*o%dVb0GC&h|5L5;q;e<2qB3<}V_!5dTW*dW9ODN()U_GQNPd zCXMOn&P6c!+TWRGNP-efAy)e+MbSA_F_k@x9<85R$G}}QH+z78rPSKK2DV*3eDumr zi5B>$*3W*}If!X{s6F3W?Ln75Z`I9@4w#tJn8Pn(kBM5EN^f5rhWv@FPzm`N2>V5( zteE!)d`y4UTs5Uaec!Fk2jz~K!kc|-<~U420L4Kg!P;jS+(hMU{HhT=>xqvq%vFHr zT_5J!Fmo`pUW>hPnjZp<6wlBc+rcQ&=o3*7$T5}iv4ggXB^Ef7*xc6WgmAI9L=zw1 zf$XapmG=tK5El__70e|7G0jbW$LCLAX!dVD^{Pzp_elL7CbR`9g^QUz*Uy3)neAGH zvLHs9`5KjfA_i558>F@wtr++%w6jAk8sndr(|#*C1aUUl9Q(=@9Ix(qo#{!4X;EKk zWD=aP^aUArPGR&8ePY5`S~N$R~;a;BcYL-MjKq0Cw?v5l0$dq(~;u(Hjvk-bf>YUfd?XT%!T`V}D3*w)J8dzr>o)M;Qzz zc^Pt2Ji9G~p_zT*sTS@S8~dW)}&`dC3?RHDnCg?NZct|)CI>oE+DaO7 zz0;5?Y~=U$QVTmzSpJM~g5`_YrgR@HAy0S(SX z*oB$XV8XI;>U`z|rj#*%+WR;i0-Q_~dLF)p(2j>hwSnVcFnLk)<-HP&TQ;9KLmh~w z2aY{1RIf)bipNj;C(I%Gx-^@;$uD#%JxWlW{uX@PoVUIk9EQBStQS4?%snnQs=-6GO7=l9{XsC8U2MTeWiM1^<@UNB$^SLzd#tIj0y6 zP!2xzB>j;B#0`8CWSoBsQIt=p+JfmILS%m8fbUI>yVbySW2jz!Z1Ul`5KV6gVe8so+eR{cCHvvxlXYFP_} zT7Rlywz&Kg>C^*|eUWxuYHJMwN!tHN?8(~23E^NGsb=(3;MlQXb4I#2qb9z$SFlJA zX{_&vVm8S=lO>Krp!)jY3UV+*dFchx(le*Q`6ojTP%$(g% z4C0>$1}F( z{pY$N+vU);ne-KKr02Tr5%L@@*IMq>adKfsF;(-q#gpJ6Q{^@#yC2Qp>aNE#vSQH7 zT%q+Z*U;@a_xhc*;~1ZPz47;jNlX`WGP?eb4igXdzNL-bLf3U!nvqMpx-N&PEm3a+ zO^y)gx(Y>La%8f)Q*0Gfs=Oa7DtCk2%SZg^6^X#ff&JrLFc-x2YaZ(-v4w&?PdUV` zKA=;eb~;UMGPta`^L?3%$Liu!KWDj4V*sJgX`Tzp=poBHc9mBR^2dihuq5rrWUd>2 zs*hK}=Zqw~TqH3Bf0&pG-unlx9wN|xsCWTI0*eP2(r#k%rzwW6MLIA}r(EbQC4rdp zL}Kp;Kce@&b7<-AhHA5}Uenfk5MSEd%c7%*S(&GZ&OhYF%p=9l=hJCXJ9zcs$*6A_ z9cd)+a>Nlbp4@LCyZiz}jE(L$GKXPOs=*{l+aP+51*COte8za5gYf3V2S^^@_G}2G z#f(MifcU!i73^DKLpw$R00hC^iKJ34u{MeE-T0{gJTRP`4I!EZm&nLps83)TaK1+R^7|wR}4G&b4T8^~%(u=2HX9l!a?281Q?s3`&2fvsZ!vJcOf%5A?i4Udu)YBgH0&^WRwYy9waB zmwUu(p%Fs6a*CVxU4sydae3ii5~%%qO`*`65p2|k_v(u#C8G`9@ja2zO@@4s!^$qa|;;%KzaR_ z*nUK1U23h3l&9)r7O;se{xj}Un|=s`+|B={M8Sy~vgMyW~R^J^bB(S(0g z&(dlW(fi#)ra<41}aZ zXY;k%+#u@vpW~~g<(Sr(a&LhC5(L&hecZ}xfo$HFQ`MW=A!B_nv$}o|-X3}6y|d%E z%LiWAt1Xv8*zB>7)`XA2Q;L1K?y@)}KJ*Uwel8y(7dCHpdKiOkIaO$9I6tWC)w{_! zC}3(*%_r)lL+C0KKj$Jy3UY~C)8^9SkTN<&pOT;s?xgxtKEEzPM7hR~*#RBMc{Qg! zP2LJcI}!UrMMc#OJT9%sRhS-5(BF>;{Y3G{)c`yLxnTFdW@XRK9#OB|{gl z;1fbieCX;;_U+`*I3x}b%Vxk3L?}v0*|Hx1=dVJIsr?r);*QQK+Sfyvpj53y_r@9W zd4(w<74T@MJZCh6-Z4M$GoRZGpX4UTgAr2S!lpMHWm6pbal+cCOxK zbhXP0EY^#@BUxe+wJ`c#?fvpp81ov@>l`+ymI-Kw{; z8qrvR@RhlV2_`!`dhsi0Kx!ume$ah#X-PJ7d1X{bEtVF zmChV7i+)aHbnEqRA^o?6`&76d296WhybxYQmohqQR(gN<(yk%4i;b_MFc`pP6Fx>uxNiSLm(Z!?K;U5R{>QI1a1glJq3=17td1h9)jcn#ePP6b})a~9i2F0 zg16*!?5bCcFj_#vS?|_f@UxVnFJmjgq_4VLA%Zzzd_1nT>#y^Ybwz6jq>3=ers{DY z*;UAVPr{rUDFHFF&kkl|AcRfC#Y}R$Lc*W36)e35=q1@}@Se0{7l&2jyqj-f;OdvV z3Tlz);XGSI8Mp@nyZSGlT~UMJ-oc~dw^PCDDl-NfP{98A^t-IO?5KKkjdQ-16QYC# zeDcZzF}|s1=xK@}Uh^(W=H2reow`kV7A>5yl%7MMLiZ@139?))S1#G*HO2dXyx$$i z)#9_i8loVJ;_I}xy8wFn_{pzdJ`Xot?th|s_X8r!6g}*<86b4<*VV}rx@eXh{`%cU zHR?2fovaxh0XN;#6x=Skpq;5Z=(aTtQJMi)sPH0~{TiNUsC$SSim^#XJ4_I;V5dWu zA`FS&TAwwtG(+ZR@ryq!7%}SiPMsAyCnRl0yk}kgfkAX^m%Ov=LE%F8%`xd2NV@#> z(D&C#sIFn{zi}uM4OwjYuRFG547ZPDNyZ=;zJJ*}AM*@i)=XEkza*n~U;d?|PX{2- zd4PeDI3GO3D-V>j&0=QJK_~XvU0s=UrA|*g4WdIjmS>XFA^DuzkH|P12w(6tx@mh8 zA~>teHkJ&)V)+BuT!udERw<~zI@{5if@>aNEi2t zA`T<0{l(R7+aUc}3121cpOxfocq%n7<;^;=eZ!qVAKM68@4w zi&4*m`WjSNl*Zn&bv_phlS@_Pj`l%9r@QsUp$zn^dPdzR@&Hc0?+Q-gy^WzQdGSf= z@tESVes0zA9@rns`1K6#L8D6zyXJZV1~{&88v0U!CS|s-uwgzVyegXcMRybO*_h{> zoPMFdzh>q_t~FZr=R^}!1VU&mQJ%unP4w0wcBKjb4cZv>G zE!=z08IOu zOUK0^?QE%R!lXMS@%yb3jqY-@?)rukrgmsS;&bJ*z7pC`yeDS(>ZAIuvYptRINiw-u$t}H+<1>3W~s6Nmia=BcK50ThEr@IMf3ONGxIx;boScA6+&gyA+aKg zx)upOesNOgNSYy)q3n;xxhcqNJue$!&I`GxXCSCW7X8oIy}V9C1ThEgvtz9vLa=|d zLZ!)7NVi(fIv8*V9ff*?Xw%vtjQM=Zdv{_CculUVJ7t3}&D&-4@*kF$Ex{yk=AE>(5VO|Wzqz>im z>_upqU)4uac@Trn%sgFrqlmHTE0?rdkAt6lbl0UZQ}jA2Ru|~rgcg(=-205QFhZr{ zR(tJf2zaHZb0>Neqxy`+7uk39Sz@lVSSU4$JNlE`qy}R0NJg$~<#&vk+FpqiT19`0 zm07-qRLnX93btI|fkS~mgpKSWhH*d1tL;m}(4!I+GB1vUcjjBv&%F%!#>JA)AEiJV zkBV1ou`#%2tKW=%GIWAIs3>Vv8L44vH2$6Fx777Dc`*=C+B2vr#FNi_BMTfEe<2! zn-sHEe*`nCGw!t(B5)&t_i@l2JG4uG8_Zl22zK)#<#z`CFh{!gV;_+zIO!!UzIh-D zH=Arl56K&VFzq}7(Cj|=NiTyb9xr_@POXhv=k`h_b3 z{KzOIM0iReap534FTV(+({~>6XnFyO>*^(z zQ*a?Zm238SsvY`zHagD{8v;cU~VQQKK3bG0uSeYLVi!UX71^Xr341;^PjRQ0hG zDdRzKt%aXdlQHOMzja0}fgJrK zl>JmeFW!zftP*4BRejIeXZi;Q>-|tYJo*g635z=0I94!v^frh7p8`zvIEAh=b8l39T`}XtYU4!e7l@m5BZs^NaOAyvWm~!q0yG0SmNn`zF^8G>XA>#- z=g5Dox@d*Xu1qP%IixWRmbT9^{6vGUSA3!-t#ETL`)7pA0O;GZErdNi1~Db>Q;QAh z;G5=1^YIf2xV?GH+P(G`qD%XT?N3~SL@il2=eI8*@;B+6?N3ppj8~ja5bJ<=iQ=T# z<1bLobCoyl&=S}(ipd>(`X1xYHRPWdX2P)MM$(33HDLv#z0ZTRnyuU$iP-ca0I!UeY~66sq%9RaUBY}r4AO~L4@pU^LfaJ1-m z8`K&-ijt=fR&z@H0fkaIg0rVXAZW#^vRKOwlm`DuG`xDf`+W=#*CH-q7(r5vd@&2y z6MU()GT??lMp@1P&N1Yclncq2e~(UGlg~fWn1VkWN4)k}IE2fA^Y1Dp2qmeuc$z+o zLCGf`z1Dt#4w;YA8WKlQRnCJ*N@5N2o1_Q~BikOQ+r)p)zILjKRIGpNVspn82u933c_4_(TefC#@^zar$BK)dOc`O=Zs zz%DJs5R>JP0al8K9-qDgu|h>X`VU(nT*^qxYTsQrw~yDM?T$Z~RX@~}sk#K(-$r6- zT=zlPshn*;w?~k4;qeCt!J}x#Z%(F8PymVLUWym?oJZR_i{~elq|lq?1$DVa@b36n zpR#lrLzwaK&Sw1r*dJxrqxyXq%|o>w1gttiym2vE9A`7QAK0kvBx*$a)n$=WRqdE? za*;|!=>>*bHhv;qP=w%Op~U?UQc+#C>5bXB0Zd0B_rK{irb*!Vpf%)3koC z@%j^Tc@s%abRTtm=_GRn6!uqdkFj`yyQg`av(XfUt6wN1i1;dhDJ_sk+r!<)j*;GAK=MHH zQm-gPIy)*IPnyH9ZU6Mg#qXA+(e|6LMyP%6WIpMu8uOWaC z_!{<^KxWfopZg{+-uy*DO37#oUi;)Vb{_wLXvL0=S@~h~^tgU~b(fEtunrt3U$~E% znKi8m2QGtai?GF~H>v2h=jygd=0S8monh!bp^G|kM$SK)2axWL{37q$0Wgm`qB|?^ z2vJ1NArv9WcwUk7=f?FIh@vH9b=hMEX75caB4??=`JAMebFT%2SDu+k*SG=E^6~K` zi)TQXvi)(+!FZrOdhH7N;4Ju_s+YEy{0T-wWrc$>ndm8K+BLjyFGQRl-V!IZ?Gz`9lz{C<+j8pwabl5CDD#@i+6|4UG(jvxvGx*vhhw`%mbvY=xX(vP+i zOVrD%W02=;nyi&r1rGM2iI+r=fN@grPs&wS>`w3aALr{Gi-6Gi&zxOq}4X11G%Tj^ru)= z(R1GyQ_+-<;CV5yd@b`n#(g~Sk<;G`e7equ9yQiS^B-@938fYPdtOAqe47nHz&%J2 z|9xF`#T<-ge@-yRMd7Vro}^8x3mDiOvV2k3ZdVuXa}mG3h7r`9efuI3FmjezBHTj- zVs^^HI)t<#WhwMn`(ZxFn&cY4%V7l0L(F+Sr+Oh#{8_5fecD2uL-z*1+~op)10Gw-^)QHD{wNu$5&+TfzHwYSvWs)| z#~l+T8Bs?v;h6ciLWoRb`=Mq;gx-ezM&1_15F@Ajo;{xyG$MXP%?eUL;-B>Xs^5zk zFi5NS<3uoo8--2AeSd?J($3C)x9c!J_xR4OR{zu3NW@1!O^nzT~4bHa~Tj*CP*!CpT6GFruA?^MTXtOuy`RBLy&`FN_ z4mZzNNTm6YCeJ*9(%X|g#(u;Y{-fwqDjPm?3g2kz&9f0x#}$FqbkxI{~@&OL?7` zHC!<{`pF;trXy=log;-z!xO)|h$g`ADqBq3cp_vLjm`DX^n%N&$yQI17ocL^wMqS> z3k$wT>@(<$gzA;quwp(Q$eVNdG02>NF+Y7**m(&cqVb}RU(^F&rM<{inneqKR;QTs zHu=Ek@&(T$wYM?g%C9{uvqIo?No1t!iO?>oJNN#!s4S!tXejRS{0 zwdW+$EQUlEqSEjVT9swIVE^$I{1nrM#Md&w!IOx)PQV8Z8TP37dbgp&Jqs`5qcmW5 zirUUkewS~w@C_SE@A5ISY8NqvLy%_r;;Ks^J-V{8{;AHYgQ#>Fl8+1P;NO1ih2nDu zaFTk!pKv@H67$E*XctH^{*+Xj&szbEWu%|;eN>NG18boVPFq19RZhufeh?b;<-Ok1 zw~A>;=O4b4cz_=5FD5E(hJuHB$CrM`R!EX3ocbMFj=?Xh>KF4C(S~z`Q99WgRE17P zg@$uL+9FR2*<1%|ypFRweb5*}Q^LD)ylqjDx2G$#wGNM6(Bb0!kVXlzFo%_8*) zLv!-;nLeuxGr3B7 z1|4(Wilp}6fB;LkOM?f_p_Bh(PHH|Ibf>2BVpEpDgk|%ht%JkhlPQ)22AGaQNqf3UJNTug){&G4YiXoSznM6|d;I6u6rQ~h!X0N!m;Mypj{fPb9390-ZcnGd z4o6Jcdy%M5e+BE5yVvwyvtmYEo$=F8e&C*e`v%dJBh=^>RJkArJ>Z}G6w;|hyZjwcUr0RnfhC-n2>m@JtfTYWDL za|bV;iX)kYuxpI5+;jry*@c{Wr)a?EJ-2F*&;hWi8+ui19|cb7MW5`{#&-RuXG3K) z2*WC#MU1$#LAt-v<#DM(blef(kj|b1oyBhwkxgzGy-IgA(&7okR%lF|m z`7;G!D5373b}b=;kiyQ)U%tE;;IDngW-t<>hf$mT+%8}Cc^MSGw2Nb8*FBb<5gq65 zSuoTc0o9);>rXoTMEm3moAwvYG5^%|L(#xWbYm^&X}T1T*1?pMgmsTG=fkx7Q42$e ze~^Fv`sFNiNLso%Pg@81{N{l?s+$nGPpLLziy9ohhR0df@A^g7$kz*V#t>9yz!l8= z8GWu9I2{xdNBxM^npdCuz+t~?^7N(v`sZdH>l6Bkf&LfoyPgukAflK;0+FjwKvX~f zhgAeU#`oSp#d9dq_<$^{L@V9I|WW&I~O$#h%i%!+Lm_wD0--i%DG$L!$gKz z^1`H1@C$4>bgPO9Q<^>I*v3y`R{MS)&-rDDpg%n)r<;I^Vd*Y@xBft+j+*8N<6S=e zrodR0Xca@hsYiUdR{@E)Chi&UC&S3Qe&o;M7BQ*pQJRtY9=N_w0Kcd&U`7RN^g!(? zOg=#At>rL{C0S22JFmO~m-4ig4h15JPi{If%zp-AIxd`_)t$%88xP;HtaU@G+4YoZ z{xwWba}m&rDMhEr7g5$O0iZ#;NPnd~7M;7yNo0zIp-QlWjAri%O#1WSu(WhBxRzyv zI8c~k{S?bJeANyO&SHn=%rOjNF|@k-r5}@9$YOalPe8JiH#M~7fxmOh z(di>MF-u!7#Npvp2#L=Qx!O;S=hGjp*=X)Vzk@#-yA5Q}{rBHb zzae_|*{Txa^d#N|8hT@rrGmZxCm}TMAU0*Uvx0!7Gy#>3cbLX9UHOf^5n_G+L`tL@ zfj4vDo;)#o&^G5<4k+6}Jz;yaY-uC_!NKSH4 zu5x9AC_xAQvhqK8Q#NF)54}J&g>?I&`5C0{Qp~>KQU!iDd?vCu8PK)l*v?h|9CYY; zs=uZoi;h`jNxdzpkS?lfelTkY5@tv3bd$HxMM=wGtR)=+hppF~Iz=JmfYIc_+BXb8 zGyiVqxIctA*7n=)>cmuascM^I&uJY7L>60A>u>^ps25+bWtd$g7uAf_r;H?U$G z#G|Rzq}vxTIVN@S7S(Y~rE2*w@7azn?Oz^$Xq^GW7uJ2c(WDr9VeNaFR~njIGre`~ z)Ic}!>jwKc2+-R(C9*#<4C{$#j~_3(j(OJy80@sBF)UJL>#({Ws(5PN)adPk_^13A zMt6!ZL_zl9*_Lgz&%by-fQ}nopDxg+Prm}$?nBFg&X>SzTWq56z!Y2fDZdeZ+hwN<~{ph6~~cmwBw>q>-^>bp&Z1C7la)k zl31hcLmxN93F>zXReyqnKk1cfm2BWIT1(&H8;_DH2h}c351}&wWu*O^1&nT0KTfU6 zhrWZO1`3W}!0pXEDTr8))@*FlBOAUprhIys|{ujcE#f21j$((WGzWtJQ!F1UMuN z_$3`fTWq~2PH`XHl3Gc|tp+gr0b|bS4l%||UAR&#mk9}1@`8?5)k8o>Ua7``6o@3P z@X&3}1B>U?mtyiqFi7y(k2iNpz)g08&XDaUI3(+ewfLHYU)rd}h@2=`TBitnc)<^j zDL1F~m$#uC(@aMfV?HFy4~gE63PIXPQHhMcZxHf;tb>FR&fv0Y8W;?RQx>`-N(jEnkQN zm?804di90u4;ZU*XTfSL10rfFj>k{(fQLe6yV{xW5XVBSRI#E6{y(ha_wUmJ`vMJp z(}KI`>(i5OBGrmlMTvV|x{Ja1S0&~fjzM^~$rG83yQuKBC+58D5NdAl#g7GwqdI~5 z`E$$zU`E2RbX->qvF{?((baoXAGG@Y{mnDg<439B69c!~}As(VtF^pw-GcWfJ}v^gVZ4 zzm@>_v8*3B#>|6p;}hL2Ceh$`pC!Ypl^&gVx8mA%Ho?Jz?ad>mHV`E^^iGA*0(|W* zCuguogO+pgXG4#3knpPDKqAi#Fe>SPv>C<=fyz4JgAWYQlKJ~JhqN|uy{Du4XtoBW zW%IVyKRicig=2N$^txzaVKL>-B7|Z?Ph^53&C#CPOMWgc4gwvn?-Wi)fb&Ay<4yt< zOe1}n{Uvf6gDT6(xp%_Qi(7!ctkMy+zkawO;i7?wJ~S4y=lMXvWaouR#a9gZ-gI`f z?-vHTe9quCih`KP@x~vojlrFPJXNvx4c?4d{+0fD3$r6EPZnlyfxF6_Nbu7qm{GTJ zVeB^zL@~t|Ic~j#tnif1mclg@cpRi#wEqVvo5K5ty}uxiQq3mld=f~7MOR(AqlwP* zWSM%Q8Q`49*607a5Dl5m)*1e4L}fOW*@f@T7;rW7%y(j03_5YTk?3j!*w&nRJX1G> zJ`Pcr_1z=DFFeK1X)G3k8Qwp1vOfaBbO#D;GmRm>wWN7&&H~-^HG+QD4Tf# z{K%B&(Px0rN1r&|3DzO-9-r{3_#J}(-~NC5|6rJQb<$anN*eDBTK!aU{)%RQxHRZsa^83r(>9JeEE~)8+FVuv1{PF@&YnRYpA=a4gMRy{}<}K zYMlx!prGB`CY6Z=Wn~v58HX|Pnp{%jj0801%FC1nbN=`F1RV)i6IESxWf%u zUyNl=w=(>DUzlans`;Jo7CH{6$LzdU__rUVrAyjvlW<}FnU_Dvbrvx?srWm^q#zcl zvUd7&zJ_GV9b)A{f?YkxIxSMyh`Ee^8#dC+3C7Y=;hkwavpI)l2>+#Z?ykTZlvnrX zj?=t@v`F45dp%lA+cWrJ>U8{n<18raFrxKJ#hyOW?P`f7=)0Dm#(Sb;cizt=?l%0l zUpTcKiAGZ|mK!C`c2x=d*T0FEx0x(%4!du4{+udGf-0SXlF|S_h^ftOsowqpDJ%Lm zrQR{%T`YW{JEa9029EuHFa7Yp{z$Gu@ zFZP{?eku{t3Or}VJ)|-B;RnM4$8D$@)b}R8G7PnhoKJ+>x1ieL2{E^$HF|!xI4Dau z@!$1}wa$udedj}OpwUcb8;5L%3fWbAe=P33W6thFjoHtH&Kz(50)3u#3QOIBka4e7 zzN5DSGfvK>%-$fyf8Imn?L?ZZl$SB{M2B*5(J*E{P$RW&;eZBCops{nVf46XCLwe> z@4t0Sa0zyX${x(YM*k1fvg&AK2ul0&fSUG3VP=&}7{y+f`Tu`Ig7j zye)J8>tFQ0b;FXkTwDdrW{{9BHn_Mdfd9-tM*q)`(7UA2#bTftQwqf+wGyvDjN6ZW zRdf{4G8BG3iChySAC!ap+jWfp{z7UKzCa#HifEq|GkV_NnbZ$9h00aSu99q8jL6`8 zoBliln#CSEfA6WoqTrd@@*@|a@SpoCr#{1c|6L!JGR0)oGVO=_;C-_~b}H!czkXP~ zb>6-A(y86N#AHnShZmyZA$dWoHva2B|HK7UUsf9~9w>nji#-+31WW(D4@mI}DQy2e z`0xDu_xW5#{YyNVx1k~dJxe^qAqOEgmt5WM=p!FLDosTMdNp&=xOsh zyNx3Qdh#-&^L|#~KmGy_(|Z4C9X$iNQq<`ctQ3%xK_Z;Sbsp{%*C>onFhFzmMb_u1 zR{rzjJ9K{=*1if4nI9y8j*M)Q4eCkk9HL#!Jemr5Cd|w#2X8^F)265}wH5mAVIrf@ zv4vdWg5lRaeCVV5@fi8m8%*WA^i9R30?XrK%bLSyu>Q47q5Jw}%-?<;X;aw-P5rM@ zJfDm}uSVVew5dw)zFYAM2k&8tg|0IT_a^!b!yMmWB<9Z@CZ9V@fd#whwF_aGPW`uG zdUeMU>+h9N|AJoBV8a3nhVv~=ZqQ+Rk_*dEntt>jI?pw|*X}>uC^dJQGH4pbT1N5@ z3UiB??Jz*U+n^{wLcyeq0n@x=3?JPo!}R?P*?e|4Fec(TKT-cl?4n-vu(?qPcW&Ch zJGS`|TcY&3YWEIe>KS%3`XepSeo&LH#U>seY)-0OI!b^6Wp*X4-h=Ed#X4acl=6!5gV+ z!`L8+c3i(g^e_NMK)Jt$23VX3u%Nd+^%y(Um!pnRc@n-<2?3BuK;!bA{}8&R zifN2*>R`#;CXaC=!reGOVt3h>75oX9ClA(SK$Er%+p%BwA<)S%=iz5(%*co=UXfpc z#9ooHs|VggPm+dGA%6$fXxARQPSXm`y(Z3c)bBtid}J&%kp#1Rlt%N{Ww5-hn4_yn z7g8k#wGT3zVgZD0Tk{2B;P8P@rqWF4tLbS)5j_e$qO7G94h>LslCv+pvk&g*Z|${- zJHN~0I@C^nn1Hm2tJ|dqFF+?})M`KX8k8_l3eZhxW7b^W{Hs+bEOWZf-`4Pd|Ce67 zKm5B9=0g1aJplooikMjv*7tmFHy)Q8lKDhB!T&siYlEQ{dUho}?07^4F_}&lksqp| zXUR!`idz#3lJ*Zv(;mXqvi1uNk?dGt$Rd)mTnR}RZ(YbYABC_;L$OA;989JAAgA@= z1>BCT6&U`}gVFzsGc3J)JXklQ0Yh`fT+J8mV|*~(EbZVGO!?kR^?uI@Xm)0?Ie2#m zs%f8wb^i2*q6RT0RmV8YAqcrGu*Hq421RZhCp{r4qJ;T5CpE?;RWx^=j6~HN%J~7m zt-_KS)Xt?)>{Ozo z^f&+-qf@w1CZbD?UKlx~!i z9!q{%7}hNqx9?)N*&;K@%fZzLQcggY>>ebnJ1 zRNhoSu@okc@h$qvW#w&H7ZqA9`|uGa(!4949(jOOMbBa#JoB+?`fs8K6)4^3{f8CG zgX&oiEv7^3;fC7-vL@)%AVS$7atu=?rrKW{et}v|5gJFISd1=?66a$t#}>|PvXTy8 zD7TC?IbDAj)Y$i{@A2va=aYsZaQ8G+4^O6x6>($YdT@8aMGJ_3zu>*jV23yMw6V}j zq(d1u#ee(fXa4VjX`QwD?t+k(HCyk*#m}R80s2NK5go^XyBO&B@#bcWq4-6{v zsc!wD2pJ>#ulozVprrp(iM(WTYjo8+$^+ zHKz}Ep9G)<0dvfM2&@C4r5@72n5$Xpx&%F0F`qWo-ofcL*g%zV?;tW zn4#<>_&jO_HGR3s>Rh}qEb@AQd+{I!J-c!z;c`D_kR?_Ur+vjh@7@v8Lmx1YYV&(Nmx4Vj+E+P*daAlU<%jaEf7^k}t&{q;}9>uT^RJ$)~2wVJ{vA&7IzNtLq&Yx%&E51&=yrt5}EMh%f|; z_0j-CV+rU?48Bn2Edfo$j9Pvv|M3;H-pWt8OdN=bHrIT8?|1h$o$!xRkB|EBiRvzfW&Lnn|sA zR~t2^-R^(DYIG55=p{2+Jf_e{*5L4gQ4w&Pu+Z2a8H;A2>PK$WIziIyONO;7BUs?R zeIbl*7Gp9Gy9w&*gUZNLYj&j_NFC@pOnqMubGK;hOZDv`@;%S!^#CF~Rzw2xHyPhP~b^`giVlAYjio-Ui7RSvT}rAX7j|Mw{BC1WJTq7pY=?%1_6<#n0VC`-z9=j)k#ch5uuk z_d=c+N3&OxDzOq{k3K}r)Volk=f1-Do)603yUIJf(}TmsxeR-Qh{-Tj z#q7jxgY-v-7fWy6Lj%Y1`g4va(es~rRBihWMP9#8*y`gn<3bmV532GPU2a`~a)w$% z*N#AF@_wh(aVi?~-zrf!g-^B@ z<#m2TvJwrWYsvrBt;_Y*-8=VoVg5ZD>G5O5f93ZWF6wD0_&iB<*2o#n+}2hV_kS4ACYG7urMwHL$Gg+;USiDt+aS(3JF zPKWzuuWmeT`i2#+4?JGgWJf*0&-}xk@1a1rSxf=Ru-hgy*~(uRn*PcArDK(pfyzg) zL0+jZl&6qZX2mC{glRYyS{LlFR)%9U9 zN^e9=Z$h`}8&OD>!ej?MvK@V{gLW$){@&78`h*o3;DJK6+# z9L|rv+UbFgpkpFa;|2!b*-1>Io1**S3vFT{#{e~vwt(Mg*g$feaow(E-OeC3hKaw^L_<} zx6c3g5aI%*H2co$#@X!hqCUsK#tOLEO;&XC7e7Y4)X+3mzYf(@<;)LrwxNNDj=5Xa z925JU1-^@9Ly-!X*K!O%UXz-zXzUYA_+OmBKTr0>%>7QK9;4wHPpe(A{q8IL!w>)U z)BozYHJ%AiD;T^W-!;6rK*JWg1GaC~9AU$faf7ML6lWo;u!tw~@<~kjryh}JE|UFd zDjgc+opfW_t6^mS&vP9w>M-f0{=r{KM=-ahg#C#3Dh6;*dIee&g4TnWw*uS)m`r_V z>riGI@NxbzTTy?BwNf;KSSJTbc2~B`=PqD&)@v6tMk?$TYs?vcC=8`$>I5Ajt7WKp* zG3+*Mxc}(o#q9`8epPBGNH7eMp~BVU27ond@&l49s+jXhdt+PK2dYcO-tv%~gS+$z zU%%C@VA=lh~SnO$5G$>^D`G;iRW9uUJ%(e;^V9`&oJ-nESEh z2{vjEa-*8`Pc!4^TiDvQhr#UDDmE)Fc^A4}hc3F#FM?FuSS3O8mWNjZx{iu$@uqlS z{jX!ao#P3Rw>IyQ`1Kn8lTV;^JhE5kdkf@F&aTIiG-LIvvM(;Wl#nv_f?c6m5ktEi zV`(1##QIS-?OuVacvtp~wjFOWRNR|XTrAiFJzWO`FP)JEM@n0t3+r7F=X-m0ttTEj zQv34n?DFs8C?na{V^NTN=Bq*7Z5hldJj<@0m4sQp1Xk@9XQ95oiAw256r{c@;UDoJ zgQkDRmD6#nVx(gLoCR;(AMB051UMYSCvyhN67{%-I=^E4iQkfA$&WFskT+rGQ4`kj z{%ue?^j_Zddnv>#eLd`XS{m~YJKcKa8ID6oUZGMXXF1S* zQg&A4VJ+tVh-Z3xM;0rexg0i`_r-!&BMz$HeW8wT(RYQb0zdCdgn^04 zm{#MW^SKR~|KNVkQ6Xu$0!xh8!?fSWP#fB>zmPKGwfT?t2bY|cQ%x>`+E)#R2lli= zd8%~I**!B@Bct-jg+T_gr9AV=x`QymPOj$u8B*{Zy-Cjg=P?@GXe!z~sR;R=7QG~; z(crzHp#65Q2-FfbPO$d{W4?Kvb&V`BRC84K?p3bBkP`FQ+}eYX*pzi_yYC6+jEdA3 zuYLj*=E>WK3k5Ol!e^u#55)8_Pt()J40q%McZeRXtG##I7+M&=ZxyI4L-0lF z*g_UUtS(v9UfJW1CFj5DnC|Dm!qh1L;&;|iaIZ1WdUOL*gF_0KEo8wdKj10Zh24B} z@G*zvXeH!6R^3ak?FGR${o5mB=P|`am|1jZ8gAdUNhN&v9!$v=T7Trc!|cR|eMP?7 z;6z8g7(pfgX%Dn>P`pk!lt3g4g$pvA ze2xp4+e-LjPoX^&omjk1Mn?!~n!^4Dz4xH-^*3MBBLbLVCY(p`@jjHccI?mn9EFMh z>~C2gyYuF$;XACA?IxGz+JL58ocTp1z0kNayMDBb8*)}iyv5&;L)RG_nWv%2FqTiJ zZ8n*Q&2I{xjBYYOy-Fk9V^%FFR{Pt~`-)7%P+cxoo~0-8aOuDVIY*_=CjwAHyD|JM z)CsbPd+Tr0kwA553jayY326V#<>$Fc4+T1- z!5#L^vNCN?Xr#~F!z%*V+N$$iDS?DsREuET`wQWDAgZ?73E1STh!!I^J8* z{uLS+-bh({-NXEiIQNaX|Jx^OroLE0d3sJuIQc1RdvFj^0tZfJqmJwuSgCK=VRGy8SOE zsHzaOIMphOIn{0*YJY;j*J$-AIioSwU3Vf@S{uOpHe!Y$r2Q{GD=hyu2+mN5TyfyR zQuZ`sO^FSRRj(d=rE3q(dD?;FBq9*HAb|@}JOu&W} zcham#+~zIT+GTLJ%It&WoGYr%zvS==rGJUFWGvqM>~o~&2pLA#$A~^8eFS%6H|F2d zxT2@jkG<^I?qRCIvEw&;+ptL__}X}R4YbYon`Ue)V=3(&hKc6yP%7V(*=a)#<<2*$ zcN;jB#S&~Ky~BEmfYg^!FVViGo%cd810+m0%*rSZLU>m$zkb3|EM_3S{M;rBv#C_s z1Y6Z0LQ^=ccgYy4%4QeorJsUD(ETfurE^e_0R2BNpMX*}W7pjV@xjcb66C>HlFqk6 z^l1cJEB~@8sF3m@+^&kndTRA^l#;ihh>!gKyDcfKKijgN=fg~HAPSwM}A5Q z%&_3EG9P6F)HUs+&73?7cLy5}nC;Dg6wAUcThlp=AMlPRN_zwi3u@o4MEl`wt>no= z*Fw>a{_lb^7RPyf*y8>Uv3K4&@06zhr*kxj0t~fI5JTXN9Nz@DMvMZ&rf+lr^-i1n z45WmyVD)T}OWtX0TH&XEUoV2?LwrnW#5`F3&;3^0tY^PtRKg^s@-+MU87#<_r;SQ| z0Y%B2mCx);AV1tp^7iEotd^m;??5jDk>0&JL4i(Ko*eq+$391_P9UjY48MZKtNWEs zCa=Okiind$=QB)l6P9{M@Bm8Nh|S`I(je!bc>d?y1>_U{)JxG5fYM98CqBOw$B>`z z^WGdN!4lbRzkMNhjCz_tfxSh%21o^s!boI_7kmAO!UtFpKNohB$6z&IN!XyL5B*Re*`OYv^r4Wgk z2PgUS7XP42|C7VCzjz>LrnaPhei5&%h?DFo?}A9iwqu{-r7-2EPE*R>DJ;84llN@x zAe6Wd7zIa!V%m}9!@`AUp+fs_gVG<2KGD92#rnPGa}KYuP1H~Jn^Y+V{Nsm72a;(_ z>`!6LF)@=SmJe9>`r6&vIVZ?2X?9}GWx`TswV#w#GgxM&A3W$%ikV-1lbPBtLQ0VE z@gU(7;OYI5!^!p&x_y30-|}b~T*~i#oiVG$VC@TbADu1G&-U}pY8f@i5jF6(o>GR` z5t1gt&pjA(!N)ORY7p`a2;}?n>9IsHsq} zb&dl<8s2WG+D~A@g{X)xJ=Iu=2VEWWJ;DE^Siqirq!?w>`eL_X`HfrDyA8Uz_IK8N zcnci|WWPNVDTH$G^-50ze@ObW@%7`p7MA^^4@+%%>q$oC{=><3{g4m44U21t#h=ht zV6vsF;3*!k21pz6eXQ-9es zw)kG1F(JAKjr+JVFZNYo;?R~tz=eElK7E0-HuVuy??l`?5_%S5d{EZ!VIn5n7d51L znunR!ZBHIz6@dGscA5$tKk;71*~E;qN!Z{kPqo?c`O@1%9+GgU{9Qw5 ztTjaVTF~q^?6df^k4IMxvMzDlJ4dDud8#4ppP6nz=X`&AL+u6VZ72Wy!}>iYrewAq zzQqEWetov$3a0?Q=#J7XAawL=d~2W_#MXVD<~w4`Sd>A3f!famYTBlst(-Z5P7+yl zI8uzYMK!%2g6>Gd7ZcR);horvp(`0_^hz_1CaV$)NSpgBS-B-T!ob!W}s==`UxY zeLSGyaK*V@{8)~D{-Yfn{@3rnx>eUd`<4If;6vMzZ`zV?I*hD5x8QZ5z#PL+`ADDl zP@Sn>crREL(&vP)nh(FlU}yC*)~XF?=rs^&-;9K!&ovAC9))A#K8jrhvII>Ab+lg!3*CJi_pd zo^`^A$5=Xj@>`>0E*8+LUpcoJgXwLI+^iZ3SoET+%wK>Ds{hsxJQ&CfAs@1<7JDtWo)V9HJ{zkhG&u~?s(#AQ;Km|4X^%aW>6p!>`jo9<0q${)zA|kc#eC&adYzhF zOj)+#nZD5l1@~)j9oAlie1_B+!3aGt_3>|3zWo`)0%VAb!?!V?nD;y7gJ5j%c=(I_ zj0zOpV;OONOohd_7(NR8)Wp)C>udV=7NPCk-6aB6FHF{^GO)7Z#mKLCC`(oiGCPhQ z(hc9u^C!;HPiU1w`XOPDdmG;%XI;^jt!xuh>dV)zd#7Om?>kNRmT%~OYA5>4m?abj zSse|sIs|!zS5FFFevJ_XGnal7MPYEu&}aKz2`F;kbAyifAOw7L`1(1@2J@+{tGUgL zFe^aUJkcT(U3i9SUhueJDUZ?z)mIxB-&|$lO7tA74t}?e9XtXtf(*N_OIVV1{?(cQ z0hVXII3b|l1Vto~BAFz!SdmMzu9(6CIdeU0^OfA#QPr7I)tLvmjnWQxK8|3BS>XeA ze^02lB#yTvj>C%mIh6#uv%B*}+x(Qn9P5`|^tvS2utBc${Jx?RD8C)UFhh7BqY8*U zx`X4fjoXQe+ld@XPnCpM7&Bu2nRf*ad*q-k$s+3L#IAno=`#}B;=;z8f0;2_{6#0N zEihQaPFqBz0(;_y(|l9Cpnkj{Px49xSS2L>;CoSnJ*Sl%@9}K_#xF>l8VO_mOQo^M z$wbJ%+I_B#JOtw3j_t6uG(uxM#b22KnigpuGYV;7UeTIw+~jYFYMS($)#So_I`#9l zo2JlYKAOdU`zhQre!BOdC+Ti{?fWPfeGKJK@{8T}=Z8Ykz`c_iUAyr&Ph)oeDf$c5 z*Bm9e2!R(UBwa_QpwQL!hGOzrOfaqpSZgALe4P#U%ghOo(L$tiaL@qb`X+A5xcgu| z^LqKl@~&PWX`18mx`9b1-*+f;*WmBG#juVkD+b3`^uI#;;nhzLzX4jb7ff0jTcAL* z5znTa+tuZp?lTm;P-eyATBzxXn)56wHVZxRd!EKc;1b_Vx@+spwZm6=8<=S&s2m1czXUtf*wJ756yNwNj zM--?}eumsNwh`X*gxH|!{xET70TO7uPrXntfkx?zQSnp?;Lchsw60+Y-Iki_;W5?N zcs}c;TZkY8{521a3s4}+Gqao*2*rEV7fQbE#>Xq4Z8L^WOoPX$8J%Nk|`16s=JXz?S_P919xM(8Dlt zhGs|_%PemmH{{yoO(TEV9Z(sjbRm*S!l?Vi6<-)5AuA=*M3*xkR3htx;?Fx`wnzMv za(XAMnoEhg^{EDKO@Crdyu7RP3*uO;0}o(z)X&1BRuiB$MpJvM@gew~-`8^PU?~=u zE0md%$v{i3Olz)PJG%d!-}hsbkO}Mbbs5NhrV+6>iw+|n_kE#S-o~nNj`^YhH1gl*mukY0s0gZ-h2a4!ELlNT`CF9rubYi&q&`#PMGszh_viZ8v zLu0?cWc*?1BRw-sdS(|NeCzYCZT3LQbFR*7io;+Rdh7aDkvJx-Y<^#{wt#AJip`gA zEuck2UqW(01FPNV24d-b&?mRXdpeO3#K}UqC(`LLi(Nx<@o6t)j#kf%R&Sz5DwpWv zJTEMJeV1)rOC0|8cLOF2$hSRLANdILtC)G3F4m*}vFg_nYD*9pO6cfLzYYb1#T0`@ ze<1AIL1D_1HCP}O(i`yU3`SDdWRU6$W1xwpBY7n~vh5Vz3|ed^B^R=WtYrMzl6!$0r_v`R#9Ct`wz#yGRQB~_W9I2ft7b{ zW@-9=VzSwvAEShnSQ5~+r+;^yjErvasCC*w-ou}V2!FR=q7ajwY0n)9vCzGLxvU41 zJ?CUP+T3q|n1y1Wn;e~&YMbv+;BZXG{c9P%2&5?z8~vKSz!$XZEUSOMsb zW)BrOoW-)N*)tZ^icSzIzOu0xXXlD3cd`gGPSpLg?*$&Sw6 z&FC)g3vrPBsSdRjQew58RG_VU=iq|daR}Tdiahb15vm-nJ9>l@LSg2x_1Wq&EVq)O z(ggGHD@WbE$qotR8qwX{n$SZDIcLR)5qWdy%KibAImE01$FG!Jy6t3 zH+h+&2jUJ5v=Q%f#`x)@XKRK}V^hH=v#W!*u-tl>b~UscYXkmhy?*ins%w5+Y>yB} z_pgQDPc*-QvhL>VtRdU~-LJga{KDNYhFD)4e7@koGL#K}j(I902&LD959$j^VKBW< zBSi)Sbp7T&o*dGR*?-ryEc>DPI zE>cJ-6nl5C*$DEa_0>cpLm~-pfBQR`tD%3*95$r+y*9mGg@FfU$Zqw#f{uBs@80`jp&|ZLS`op0 zRQ$Uhu?O4juhvyg|A45;KR39&>oH9zyd_C;9fKUKmPc4;&}H1c-y@v|vjg-W56g%` zS?#EpEC(G_yiS=Ov+9OX{SQmuvR0wB`(-$(mMb(|d0r#fwhp12Ig)22Lm|;MO}wtx z7p4C`zrX+)C%3Lm%rl}BWvbcCYXbEBTUK~Mtfue~;oBIzde^3#;&BrO?SHZEb(9tp zo^e|lxoBesi+)Lzb{mvyJ=8x3?P!1Nz3G{yWr$1UI7t5-dDfw;fchm;jk z4kn$8OkcoGfuCPV${&IYq4IG;Wm+ts*z6B`!UIJDX*I>9;%IhmN28qR(e661oSuM6 zDBX5T$p3K_61jF}9HO6K4a1hn`N_}FMEiHa01^tD?mvFF2+pS%bgd>WQGA@ZrqD+a zqt_f+&v+0)j6QO)THHdJ%KuZ($ilEIO(G;E=O8R- zAIG_8u~?h(T8CxNiCtXxEZ8Q~fUu7l^Rze(jlbM_hi1hvULccPAoDc3{e2!y1R@W@ z{`&$xSaKjlqChzhUH;DZWRO}NprE(p0!0^fzgRKsV6xCq&9`5Hn0_zvF@3idrruN$ zH!ER5_h!u|s|YsqXS=WMF?11{63zN4gjgYm>hHn^l-+wL!7X?VLR%Q4NfL}P#U!oM zTXhr)pE^5H>K|JEHq{$;XDbwXvl6+`Ln=ASU+= zZZaQm#*E_`t*6(-AaCa{`vm!UDcKUf(il(k*T$kN7D};e-@Z%&*-x(L^oB4(7!6Us zxWi>EX53NPe0&SsKO7It<@d&jxm=pLTy~5&S`qqTKoN{xeyv>lZ3g}fUma>=j4}1< zI-yNq4WwSYHgm|P08;)gS1_UHo62{_6W-``h*s;~b|aM2>t!j(Pe9&=+Hk>+GrBPz z6IN+_2MHVde0rH|!S(rJB5t)H^beJIqmgG12^=eD`?v34Oe4o(jeP`=B(!f#oYxwP z3eP>^{8){pPYeUf)g96FFFm||0JQ$9568}7T2=N1vB$f3`}aP%A*MQr`!nAn$MC2z zgTa7{5dMs`_+r>msFvNIIp?GUsj%^(n`so9m*`Jijj+SSdoF2$0c#Lypxi^^q69es z@7@@hjX?!<1hZdO3}$+V-R8Qw0%5hb@|PaR8O5>m|T`20!Hb}q==_;WXf^G+9Ia#vNm_iryDRpi8~t{9rfxVS*nTCu zQo|3Cj1$^JpG6>;Rkr)q>oqj_d!KvPKmJa`hM3fLLHG1HK-AymYf22Qu3u603&)@` z)}02EL=5CgI{!K05o8b#oR>D%V#mk#5T_2Q*^v zCbQ>Tm+d4dqx}>0a<3W`M}81)aGXP@xW%PyMx}r9!Z8SV_3d+4`$??-`@Byhq`%~f zP)$6Gv6JiiCVNaE`>e~CoT;BsD`_~Vb3PR+)0YjcOnT7dlo)D+#X$g5&6uWIABG&R zx4(B)7mMMH;qi47v~xHvAw$y%g{7Hf27R6ARi}U8U1;6_iBtO(WEc}`1*Bet>{`;1DjN<= z5v_2F_5TU+fy2{RC^s;v=cBK8k_b8vw}-LRIV0a+yn>(%DwG{~u=tneF zr?F{tgz1N4H-=rEd+vEt3HWq3kFLGR2Irf~{q{-6F#fdt&l7{OSoHPB@UTfFruEq0 z+RxAdMSq_=W&}@T`WH%Z_aQs*sAnR3GZYA%HPCasjp2X&K4FaveSSIws60!wM&jXTC9-oa<6)h;~u1k_o>P@p1{O}25YO$U%R-HQF9AiKv(EQz2R$NNTTc- z7RdR6aSa(|assv(ZxZaz7aIpoq|fO;JDP#lWfjYFJHhCxU05n)rVIt?ht`vX&VzG` z&_d&cK9ss=XP#J(#lW!J508mRVj|1x#XrxkLxB#x$9#b{<{P;$23J+1(YsNmdXIxx ztXi}ALgEJG^Xjr1y6IqQ;nbfuH?BgCkm232H*`=UsuMjMxYN%uW{(0R&9cr-{Ff{G=yn{BS4dv$f*zN7mwy10XDa#|Ksj^v1N z$-6?5jQ-8X9Frg;=Okd&CJUDQwB^c9r4Z7indSHMJ!a6;XscAlVE*vtz#jEbu+lwL z?K4{h@#meNibqjH8R57F>p>6Dc>ZTtm|YlRZ@;qNG=GE~zm3q%LK>WNDo=NOpTsaF zr2(dUt`Oa~EMe!X zBdKK`zGA~727+l`lcde96v1`^*|1d7%s;}&qP4Z5xLw9HfoILuWtOvzJ_TJSeqU) zZ$PZhRPQA^FZ4`vJ}9308E^JI=~nJ$#q9NP|MRu`F_`C120N7w6tj-LfZh^tVimqo z(b#|qrnk>oq&Z^YVC)Xnjd_q|gMnhRw~%x8vt)t53vdZse^4Ys4PlS!y9kJmLB@}d ztv8+yLq<&c^O*E+81my(i!Uz~#5rX0X&UOF0?WcB$>m%y770-HYo-JL>EB&ft*%4< z$Hcgk+1%jMkTWluL;-=tlHShJagY=(s!GFq0)tGw;wbi3K*8nmDG|+3OuBiD#UmyT z1NdfF?p#nq57U8PrK5L2MErKt!R~$xVq3oy_S_8J$z^|7K7Wc1a|6L7((}YG4D4s1>wo|j6NNXY zHX-rim8>o`Q}8(AbLh!6EsS_n$f~~c%%4R`vQ3qO zW2^36@JR>?a(U1BQ46Y%zS`6Bd;#o}ZF8CX*&tj!&b-xD9@28d#E;2-N6%N%SM!XG zA-S0+@8^yxME_|xsBGknR;MNukEW$#`kzb}PU>Y0D55W;>(Ph%W1oyqwNqk}FFlKv z&#vxHWVZoC4!AT(acSTuW(TT>n#MOl$x6q_kJ1SU zr?qBgm{J2-UK?2M zA#sPj`(A4wvgx-J){bHN>i(8n@sN5$Xv=Uq2$JJPd*4*$K&RYeCweD4S|7wKY3$8nh^rF=}HkI#w%o&Z@DQ^zIh>H(%9xMNb z>IJ&MeVmjKthcnB_Ff;Htkq5t_uN3Er$Xk><%%F%NwdH>Hy*5LxcMISi-5Dp<_e+Y z)BlI9vjD5A>$bn$-QAs>v)3+bn%J$_T_~c2q=0mTbc>*X-JR3!?(XjH_#^sx|DN%_ z-*=z)KJ$9ndyg^JI%oZybHl;Oeb#;6{E?!Rvn4yXOd|7#emkw3+4CHi*)_X3I#PP? zVx2a&ea5rzx!>|BlZWg&ly7hFAI0-VOf)Q+Qinz!dh*dGdw+_2KP9lRMHbEL)$nc! zxdaE7OLn)cbA?_%>SEn9pHBN#{@5m{Cqjn ztH}Wl^_jTf)60(>f46d2=E9ydKPci@jl7R(!L|Xdo13dVX;rs7ZWZDw?QzXY*20UY zm&%v4HX)FPIGHV}ulf3SGFBlahIZg$;JHDEfYpB()1_Rb87>!3Y^bOdZf; z$*k;k+qFu6wMieRddPn$Fm+g2VY|gmkHyVI(blf{*r@-+}%$Ohl;uR2hTfe zcJ2BN>d^1NT$dj+c~riFh9t$x;mGQB$ltsilk zV@DOqQ$DsTPkl2iWz#})inRBsQKpJ$t{pr%fCA zhGY7b8obT!INO#kT<@+tk5iLE1D@Hhq{$l>g`eV;6kGO5@$WyjQdW`XMUTwPO$!RV zc+zL-7ETFm+Gy3j42qHq4)e%m#-Zk$TaMrVgojMosf1PU$WcuO4LaL%GtKH|wSVv7 z13cYhoPXJueR#^bA{MROw^7oanHE zeGWgF{Du-1HCnyI^BUWKSUReFkJ2>tLvx2)ohDF}|M&NWU8j?4biK@plRA^fkJ}3` zdat3l!@dLJW*RtP%K5nNTMARK$D+#B`^;v$r;mb1yw3g{ss?bVeXf`1?HTh z>B|?j?>lcLkKP|;p4j;wr5%auH@x2k8du`M`5`49aQKypgSy3Cr3mTThLqPeIc39z z7417R$2A=NWcZ|26!&bTdxn2wj+}FUb3f~HG_hdhsHLmJd9vi)qkZBN4&LZL?X}qr z8eeo`N_z7FJlQLzL;YGrHqZ05eY#$!(2BQ<86+t*0F0=;_bXCnTq^<-Jt5 z=6)$0(7DN_QVzArDy&}0-h)**A+ev;f_bs*`P1j)qPE-E`D~@NcbAx z(5XYaG}yd_!c*25TKA~W#^=jdHByRG+O?8}-r7B-;3pTJUHG|%LOX?i>|5G_rvHe4 zdcA5fo>RT++7t69|J`@eDy2EMJ*n`HaTSemHB}B32cvEJE~2O*!xu$e%0oUOX`2_e zZbjY=((g^`KaOmUEDMU=jE#1@G3S_O?UsG2xR0ep4ek#pb&n$MAA7RaY(7O7 z39qrasRakG_i2>gTneo1~;uGHVpBfkf}$rd+k$-aK~2fJsK;9jxa>3gA;?B`IoQGf4FoKUGkjpK*1 zzgNk{9+y}>gZw*tKC3gm3`sH7;&zRhMU!*-8DG=1izknNwt2d5qJGA^0@X3YZO19eU5Uk+sFHLa|)g?Xl!{s{ZR! z_xF;23-(=dZZrpZzHYu`Z8@H0Wt%dzW&w_P5OdsSQw_44YGctZ+JU0O>YSZiXfTJw zlwLG*c{r^;yl3KrnMoWKRA@|jyNcBF_KUiYiZxckJ^@FT`Qh#us^E-je)3 zUa)v$K8L!$|9Wqs`3xG}asHi(`RB0HHvi`iTfS1_oUpN91Jc={S^pYiKX>B(1>Pt0 zwHU>*eRLO>iTh}E`x-f1v?c zl`Yody3bYiIyW}n_Hz;^9NCZ=b|97Go&=1JIA}}#`ov7xXKY2W*JT z=8ZYm^1)P^aHmXWu9XkTzh6SJdzW%k$otn>m$JW)rEWcbqQcA{?Cp@0xP9*vcBuEI zQSp%m@>WkY*uHKx&nh)=w?&<&968~3`~HDdXwH$fCl)UC=E$&nxdwJT#6HXG2Q(Y- zm9mn(3k0rSKtl_r#Ge^+lR|#zKI)-1l(A8{_l#bV{i7n56|NL#-(7dlP5L;Ulk95k zUpcD|$A4TkX#UMJ+0TFWT3B*XatJ>%Bn|qG2%6-m#jV+8hHe+Lp+5Gx1KA-pJ z{dv8#=$ldeN?DS8SipR&#{fe;NOFT41Y>9%0^^GFgNU;lCQeF(psYW0~IO;J1Q zJ;APYPfxs|7{BFQqOYN;iNWv!gW|zWJ>Z+cClo-!!|Up88R3ej-!CMEN2z>^a*l37 z@kQRInndph?JUtIZyks27j`_KTC82~5bIaJud#{_{CPcoHSD{ycp?HA4G>(bp76_ z8*|RDB#u#jv#LMuUeP0_v2<=w5VB~oTS9A&bntN+9X_|>cq*3Mqx3zrd(@q7sukH{ zG4#gBwBGN(RiaOMAU~@KO#;4oO@^}=w_kQ6Fih;!L(yLf;#!Jrw-?M^kcn7_+`gk- zwob0uw?*svlU?oI;cI@@$vFk^VV~&4=3d2)gTLP zBtBGfl1R@nbLCCYl())Csfn@sK2;{D@#fhHL^lt)esj~aOb9Lv3Ez$@g8-dfD&&~O68i_eCT zJ05~c3#aMMl-2hi+9;myUlHobQ?O{7if-hexy<7RC$iNptnmemE4(pmy2wvV1NC#& zJ9BgoypkjjG_SD@+hVPiJ%1(olSiLoEfk2$lHZes&)w^Vrs4}ic0AfdBSFE4>n9$~ zWU^4BQdY)V)YK^4Hcirfn=dv>9G#%ghh7%c3`*E+AA1tRr6Pq9kxP4y(llL*1Ny@> zH!g5y+<4uwo^QtQ5->NLc+59EtmL=bB>9MUnGzkDy>y#vBH|aWwOgai=?gjC$J}8z z(%ZBuUa~wT)EjG5lOzQx#`k&|ml#=?Bv2$HehxxrkNYazMlMKR`-pJRi2n6Xb7ESs!8nxg;X7kiq{sO%hfG z9BfwVOh2nEh*QHNKRlv~cc|RP+e}}YDEz(SE!Tv%`t_q>X+b^6pwS8ebSj5lKnQpB zXRduOeXj*_5MC;AKS4MMMsNKy^wzC;S~Hb`gXg(O+%vJs6yKPLj5N1l$&u;VOIc5j z@_0uy-$m;-P;*ukYGhC7w8De6nE*>gfoygXd~wfXx_o;AB-35&BbY23={dpp8yatt z{nVn1Wt6bkogThRC{Vb%1@<0%=;o~gGt;oTxHoD>Fz&01r0jKGa zRK!O=N1PUIDLQPft)eUi#bTf?V<&Qc_Xa|*^89{KRSKMU03+TZ88Bsc3iEh8;oUXn zSdfc$v6+6-4f+u*XmBMxRVnl!e^52CN6XduKL#(<2KrxZPxQv6N5jv-Zd{C}(+9sd z;{J$mKcAcQb~_krt9 z&sBmA0X|#OXe1QMSAz%S7<%;tmlKw3qXa&>u_-02Pw7b;NAIb%{zRh62B`cc}UBhCG? z;*84mbcc`2DW_*u5W@;-(ou^EUhzb$$+}8<$-oj`f(<&`hAL|*cAdP>FtrMS2{TK5 z`#j<+3Fp<@CE_i8JK3WH+ep!CH{2`A;Twc*?7bw7*B>JxTWfdY`YIfapr^gdBwq14qhf6;hh+Hda5Gz{iUz zYR)G|s3wP!MQyWUm9tmCV}I%wr%I;{OqPTF>ny(XN0TqVH-F=O=5$||1P=JSL!cnI z#2sHEI{9sW#91sB5@f&d%AE-05<-?bCVpUfxds+;L=Ef6hIdnF%XM9rzRSKHpAlwO zS>4@dQBUbary>ibQ1V27?|!-=SVBdIc^15X+TpZz&Rp5J2pO4iuJO~}9Q)tk8Hn8z z{h_ziU%@3-;O*WCPqX-q`Ik=@ySbCwav?7&o>wXGMhq*ybtTKY#~oOLygpD?JJW^F z8wM~laCP5T=ZEIAX$08z>Mm}D5M5g`qf^eJkGOzVd=4zN30v}~ca;o8<3aw=YYppNtT^{D+y6+s<55;WI zcNy2UQTrrI4qvr~u*hMI_xER9I)UTT-hLtl;ce*dL7*P{1g@C0FaEv9x$RiBL#@=6 z;qfjOb>qji!AMYT_rj-3f;YtJ2di#iDYO^BASA`7gFK$rt~Fk#t?n}aY8`$R*(2f9 zeW?Pa&7PkIT~F3jFY@c%Q1sgW$9!;u=~8N!(k#(N_A=DJJLcFG?h47(iVCV|CN?eJ zdTSn|G&sHp>Sr2f#7DTEe_1nUhL2ZFZtSrXk{(T~FO1pa6F?R6N};o@Q8xdSU<9M= zNF^M{K5VI?NdfMV&!MZiSb3PP(Q2Ffn+WONmnq z7j+29mZ-QN4t<{t+8ny;T4z)j_5|WX53|?Z=ir6nCU2Fl_|ZdAY9RZcN?d0)ZpI6Q zQ|(Rnq3x~Lb4p<;yt7abB2 zhI!QR;AF83Sr@dLa2K5RjLzV1vxV6@q4YN%D;|2DwygWwsviflHHAo8{*Wp+aob_n z#i1xQrNKsejbg~bnMGvOulHP4S z>iRDyZ+rC8c0{f=a=^@i}=6XqkoZCt(BZz`M_mpFu#3@zjGL)jF3S)XD7AoW}u6R8!ciRwWU$?q87nSPt znVC6V&OwMgY7M46@`?^NT#fz)rJl)(&UzmCgOnh-E(A+Z$J}+W#1v#aVI@U$E$Zx< z*65vhE0^-s@oXdUD2pe_RsA;byelj zIME0kQn=0u9sc;^LJSm&bLF!k=zOojbkhApkNywZo$pY-`OP?=sxcAybRjQ&+4IHd z0m6o`GkLby5#fyT+|F?vs9>Y~p$V30G|b+z=PkvAyFyb*6X}1JlNjD zIn04}%~oCisUM6@7mgX=j4@I}Oo2D{yT_|l)($mjrEq8^v#F6=5K8;`hZ-bx%3J(z zUD~tNjtluw{^Wxyj5U{Hcu>V)T!2vn>a5Zc(aj(Db|}Mvf|w#%b1%0Bi%p2HJ;!tF z)Hi8ePgaf2W1ZMUV6y$t2k~jyMh4Wd3&^aNt&eBy1fUhO{ZW zZ?(%_yyCJL%<8e3w^jomkSB+3A(@b^(|$=c|FECkq}^7#RP^nOVp>W+%TEQkSPvum z79F3-6o22#l^yh%`M1DE2qIv*E|dVUGd(+I;tjA^b0fJSHc$NE)|vF865AmMMKQB5 zVVb!n;A1Ci$1Ci!>_Wd1hv8sQXG22x@jcc0(OG8xVzFzEot79h;&@cnMO?8$MUsz6 zSk?SQ6ePrcGz+&_{2W)pqip58NkQwX1RB zX+ah(ffjDqT=bYsY_;7@%(G9K-iy6sl5Dp1Sfu7L7Y|_)lT_q1NH6}^SX{E#`(4T( zp}-czTc9W`S&haGs{`VPOpj53+_b{xvOwD~pQhZ*R-$v}NYuivWBWE}JW!Q^Jw~vS zoXS;}8LnMQadY=>**ZTtXW%|F8G~&@zWOr+722*=(ycgFLio8lJCR6&2Vp}LAqO+D zp#!x|?^M`c{e8ys1ht}-PW`BUnfi?s$>Eylm*=M!t6S;OMi+|GdKf|25exmy%xHEG z-?O_DnpQfI4-FjZCW6mamCX=+yfs(lzthU=WPxq#$`u{M!!|-yEn7=#LFf`|b^6<_ zM`V(J{2m3i(bvGO?SuWkWOjnF%4B2}C);~8+0G^A8Z`Urgb+0xJC34^^8Rj^n0Syo z*pv4V89Z&wgIvNHFibZ-2^r&R@%9;K80D24NTm?BJi0tG;e$lfn-c}lru zc2rCJ$F@A*F8rvZU+QZp_M!P@v(5h^Jcvy{=>hR%SBzQ7y1I90v#=9V3S0?gtSm%2 zPkxASpJ#w`^-G*ry}jF7`3Ft+b~4c+diKpgry6qiz=5-yy-`5rRe1?06b~O64BI9B z6$4Df8y+UQgebxh|6>Bl>N;MhzGmQny|Vf*#bv#3ZNI#xr>{T1M5>7h*6Am*T6U(^ z)hBW!I_KYavQP7U{~q7JJoDt98fqv>GV{7@&T;yRE@uC0ryEa4Fb+^W-SHtm{Xkm+ zbbN>CQW(c_XtHL#=eW&b4E|pGv$-c$aQ*88ufuvD<3;HT-pIdM`>=u`i<&5b*D66` zcFv=zbfVu=o|-&^qkA1+fS_~r?eR;a=PW4hXKb5tk0N>MnMN=3pq z8wq0pd`@03ZmY-3h9w2F@y$x6DiT}VF9qBFNXma5{qzY#^|_JPdRtBO`MmE`7e2O3 zNB9uMaRCUArLRqmQbC>vdYdg&70IpSP-44VO&&RdkvWY$TAlHAmy1_yQ)@UYJ8OaX zCHNcj0Hd8lxvt{rzi(6svR`@HCIUp)m9|}xD<+v~7_^vmr4Z1c-QMtKI11(Yijc7t zdRxY4XwP!o_REIF)t*)1m%6dbT(&2}L)Q6Gzu|S{EdKANFE>{R|=E za?)zPKkIZG5?^86@h6@!#eHrwSEO)D7TUpl#?A7^TxT+08P=@Ai_c&PkyjNw&{onx z)R|#)f%CG5^}$q+uT_=v#@{8XUx6i`73Jh~G+2`#KOhGR*Z<`byk|qz!u%+?RK^Rd zq|U}T5@}Vr{6zPhI9OL;#E!WvxTGw4K|gE_N#6s*zcrMSBa$7`wV(mdDXarhc^NY5X3z7?`K1DykcpWhK>2X)z5Omz}S_30zfg zWJ9}zP}S_yZ<7UAW&6OZheH!={s7dEVG7Y@ru6b2eL@(Q*;|jt`lYC5A*EXJDxIUZ zje@QgXm%vZ56+%_b*xSkLFf`eQU zos}nXs#BnO@_Ju=&k!}j-p!7k(X;}ylCOU(JT8CDSc%EcYFn$#XWTR=);eZA0-Y_s z@L9fk`61;vz2rzj-%J`_HkYtaAbUgieRnxSGtzBHIYd;&I1+U;O@N3BX%uyL7I8#4 zkpq=CZKI)d#;jBD=H$K1aSbT>M|aA)0?;lR9R|#q5aD&sZhrTHuTC*)_3c#U9W(Mq zmQBF6O48Xf)H&m?sg}kyLBFuqrhuj*bL{Ms8I3mP?+=1mn?+KljHLYktz@bu$sD@5 z-s0quccE^VX~lUBb3fFi+DR^NcWmavSK=3Dy#m&0YBg1#>4XIm5tpJjfarX$;_&eVS{?(^D(_UmdiTK52_V=fy)Pa`)*%s zTKe8XU${kT7^oF|wfIK2F$)$IeQ+~SR0@Ud#DvpToI5+1B*6!-5ZY77Ck6h=WAb;f+6&+`E*{V_ki zuY^aThORp6_&)Borswe6{eFE5 umwE($;D*L)N4ojAKRj6-E%83F`TsYNnfh4;{ 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. + +When you click the **Knit** button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this: + +```{r cars} +summary(cars) +``` + +## Including Plots + +You can also embed plots, for example: + +```{r pressure, echo=FALSE} +hist(GroupProjectData[,2]) +``` + +Note that the `echo = FALSE` parameter was added to the code chunk to prevent printing of the R code that generated the plot. diff --git a/Exercises/Exerciseset1/dataSet1.R b/Exercises/Exerciseset1/dataSet1.R index 48b2a1fc..2f0b3388 100644 --- a/Exercises/Exerciseset1/dataSet1.R +++ b/Exercises/Exerciseset1/dataSet1.R @@ -1,12 +1,12 @@ -# rm(list=ls()) # Clean up the memory, if we want to rerun from scratch -# source("helpersSet1.R") +#get(list=ls()) # Clean up the memory, if we want to rerun from scratch +#source("helpersSet1.R") getdata.fromscratch = 1 website_used = "yahoo" # can be "yahoo" or other ( see help(getSymbols) ). Depending on the website we may need to change the stock tickers' representation -mytickers = c("SPY", "AAPL") # Other tickers for example are "GOOG", "GS", "TSLA", "FB", "MSFT", -startDate = "2001-01-01" +mytickers = c("SPY", "AAPL","YHOO") # Other tickers for example are "GOOG", "GS", "TSLA", "FB", "MSFT", +startDate = "1996-01-01" if (getdata.fromscratch){ # Get SPY first, to get all trading days From c7b00e6fe2a8a4f9c886f93e6a19662c8868094e Mon Sep 17 00:00:00 2001 From: "config(repo, user.email=readline(\"Github email: \"))" Date: Mon, 23 Jan 2017 00:21:27 +0100 Subject: [PATCH 3/6] Exercise set 1 --- Exercises/Exerciseset1/CopyOfExerciseSet1.Rmd | 250 + Exercises/Exerciseset2/CopyOfExerciseSet2.Rmd | 329 + .../Exerciseset2/CopyOfExerciseSet2.html | 16634 ++++++++++++++++ 3 files changed, 17213 insertions(+) create mode 100644 Exercises/Exerciseset1/CopyOfExerciseSet1.Rmd create mode 100644 Exercises/Exerciseset2/CopyOfExerciseSet2.Rmd create mode 100644 Exercises/Exerciseset2/CopyOfExerciseSet2.html diff --git a/Exercises/Exerciseset1/CopyOfExerciseSet1.Rmd b/Exercises/Exerciseset1/CopyOfExerciseSet1.Rmd new file mode 100644 index 00000000..dbc85657 --- /dev/null +++ b/Exercises/Exerciseset1/CopyOfExerciseSet1.Rmd @@ -0,0 +1,250 @@ + +--- +title: "Exercise Set 1" +author: "Jaime Andaluz" +output: + html_document: default + pdf_document: default +--- + +library(git2r) +repo <- repository(".") +config(repo, user.name=readline("Github username: ")) +config(repo, user.email=readline("Github email: ")) + +git clone git@github.com:https://github.com/jaimeandaluz/INSEADAnalytics.git + + +
+ +The purpose of this exercise is to become familiar with: + +1. Basic statistics functions in R; +2. Simple matrix operations; +3. Simple data manipulations; +4. The idea of functions as well as some useful customized functions provided. + +While doing this exercise we will also see how to generate replicable and customizable reports. For this purpose the exercise uses the R Markdown capabilities (see [Markdown Cheat Sheet](https://www.rstudio.com/wp-content/uploads/2015/02/rmarkdown-cheatsheet.pdf) or a [basic introduction to R Markdown](http://rmarkdown.rstudio.com/authoring_basics.html)). These capabilities allow us to create dynamic reports. For example today's date is `r Sys.Date()` (you need to see the .Rmd to understand that this is *not* a static typed-in date but it changes every time you compile the .Rmd - if the date changed of course). + +Before starting, make sure you have pulled the [exercise files](https://github.com/InseadDataAnalytics/INSEADAnalytics/tree/master/Exercises/Exerciseset1) on your github repository (if you pull the course github repository you also get the exercise set files automatically). Moreover, make sure you are in the directory of this exercise. Directory paths may be complicated, and sometimes a frustrating source of problems, so it is recommended that you use these R commands to find out your current working directory and, if needed, set it where you have the main files for the specific exercise/project (there are other ways, but for now just be aware of this path issue). For example, assuming we are now in the "MYDIRECTORY/INSEADAnalytics" directory, we can do these: + +```{r echo=TRUE, eval=FALSE, tidy=TRUE} +#getwd() + +#setwd("Exercises/Exerciseset1/") + +#list.files() +``` + +**Note:** you can always use the `help` command in Rstudio to find out about any R function (e.g. type `help(list.files)` to learn what the R function `list.files` does). + +Let's now see the exercise. + +**IMPORTANT:** You should answer all questions by simply adding your code/answers in this document through editing the file ExerciseSet1.Rmd and then clicking on the "Knit HTML" button in RStudio. Once done, please post your .Rmd and html files in your github repository. + +


+
+ +### Exercise Data + +We download daily prices (open, high, low, close, and adjusted close) and volume data of publicly traded companies and markets from the web (e.g. Yahoo! or Google, etc). This is done by sourcing the file data.R as well as some helper functions in herpersSet1.R which also installs a number of R libraries (hence the first time you run this code you will see a lot of red color text indicating the *download* and *installation* process): + +```{r eval = TRUE, echo=TRUE, error = FALSE, warning=FALSE,message=FALSE,results='asis'} +source("helpersSet1.R") +source("dataSet1.R") +``` + +For more information on downloading finance data from the internet as well as on finance related R tools see these starting points (there is a lot more of course available): + +* [Some finance data loading tools](http://www.r-bloggers.com/r-code-yahoo-finance-data-loading/) +* [Connecting directly to Bloomberg](http://www.r-bloggers.com/rblpapi-connecting-r-to-bloomberg/) +* [Some time series plot tools](http://www.r-bloggers.com/plotting-time-series-in-r-using-yahoo-finance-data/) +* [Various finance code links](https://cran.r-project.org/web/views/Finance.html) +* [More links](http://blog.revolutionanalytics.com/2013/12/quantitative-finance-applications-in-r.html) +* [Even more links](http://www.r-bloggers.com/financial-data-accessible-from-r-part-iv/) +* Of course endless available code (e.g. like this one that seems to [get companies' earnings calendars](https://github.com/gsee/qmao/blob/master/R/getCalendar.R)) + +#### Optional Question + +1. Can you find some interesting finance related R package or github repository? +**Your Answers here:** +
+
+ +
+
+ +### Part I: Statistics of S&P Daily Returns + +We have `r nrow(StockReturns)` days of data, starting from `r rownames(StockReturns)[1]` until `r tail(rownames(StockReturns),1)`. Here are some basic statistics about Apple and Yahoo returns: + +Here are returns of YHOO and APPL in this period: + +```{r echo=FALSE, comment=NA, warning=FALSE, message=FALSE,results='asis',fig.align='center', fig.height=4,fig.width= 6, fig=TRUE} +AAPL = StockReturns[,"AAPL"] +YHOO = StockReturns[,"YHOO"] +pnl_plot(AAPL) +pnl_plot(YHOO) + +``` + +#### Questions + +1. Notice that the code also downloads the returns of Apple during the same period. Can you explain where this is done in the code (including the .R files used)? +2. What are the cumulative, average daily returns, and the standard deviation of the daily returns of Apple in the same period? +3. *(Extra points)* What if we want to also see the returns of another company, say Yahoo!, in the same period? Can you get that data and report the statistics for Yahoo!'s stock, too? + +**Your Answers here:** +
1. Going to DataSet1.R you need to update mytickers and within vector c include AAPL symbol. It can be seen on Exercise1 script that the data source is dataSet1. Then going to line 81 you replace SPY for AAPL and re-run the script +
2. The cumulave daily returns APPL is `r round(sum(AAPL),3)` the average returns are `r round(ifelse(sum(!is.na(AAPL)) > 0, mean(AAPL[!is.na(AAPL)]), 0),4)`. The standard deviation of daily returns is `r round(ifelse(sum(!is.na(AAPL)) > 2, sd(AAPL[!is.na(AAPL)]), 0),4)` +
3.The cumulave daily returns Yahoo is `r round(sum(YHOO),3)` the average returns are `r round(ifelse(sum(!is.na(YHOO)) > 0,mean(YHOO[!is.na(YHOO)]), 0),6)`. The standard deviation of daily returns is `r round(ifelse(sum(!is.na(YHOO)) > 2, sd(YHOO[!is.na(YHOO)]), 0),4)` + +### Part II: Simple Matrix Manipulations + +For this part of the exercise we will do some basic manipulations of the data. First note that the data are in a so-called matrix format. If you run these commands in RStudio (use help to find out what they do) you will see how matrices work: + +```{r eval = FALSE, echo=TRUE} +class(StockReturns) +dim(StockReturns) +nrow(StockReturns) +ncol(StockReturns) +StockReturns[1:6] +head(StockReturns,1) +tail(StockReturns,1) +``` + +We will now use an R function for matrices that is extremely useful for analyzing data. It is called *apply*. Check it out using help in R. + +For example, we can now quickly estimate the average returns of S&P and Apple (of course this can be done manually, too, but what if we had 500 stocks - e.g. a matrix with 500 columns?) and plot the returns of that 50-50 on S&P and Apple portfolio: + +```{r echo=FALSE, comment=NA, warning=FALSE, message=FALSE,results='asis',fig.align='center', fig=TRUE} +portfolio = apply(StockReturns,1,mean) +names(portfolio) <- rownames(StockReturns) +pnl_plot(portfolio) +``` + + +We can also transpose the matrix of returns to create a new "horizontal" matrix. Let's call this matrix (variable name) transposedData. We can do so using this command: `r transposedData = t(StockReturns)`. + +#### Questions + +1. What R commands can you use to get the number of rows and number of columns of the new matrix called transposedData? +2. Based on the help for the R function *apply* (`help(apply)`), can you create again the portfolio of S&P and Apple and plot the returns in a new figure below? + +**Your Answers here:** +
1. Number of rows in transposed matrix: `r nrow(transposedData)`, and number of columns is `r ncol(transposedData)` +
2. Ths is the plot for the portfolio transposed data + +```{r echo=FALSE, comment=NA, warning=FALSE, message=FALSE,results='asis',fig.align='center', fig=TRUE} +transposedData = t(StockReturns) +portfolio_transpose = apply(transposedData,2,mean) +names(portfolio_transpose) <- rownames(StockReturns) +pnl_plot(portfolio_transpose) +``` + +
+
+ +### Part III: Reproducibility and Customization + +This is an important step and will get you to think about the overall process once again. + +#### Questions + +1. We want to re-do all this analysis with data since 2001-01-01: what change do we need to make in the code (hint: all you need to change is one line - exactly 1 number! - in data.R file), and how can you get the new exercise set with the data since 2001-01-01? +```{r echo=FALSE, comment=NA, warning=FALSE, message=FALSE,results='asis',fig.align='center', fig.height=4,fig.width= 6, fig=TRUE} +AAPL = StockReturns[,"AAPL"] +YHOO = StockReturns[,"YHOO"] +pnl_plot(YHOO) +pnl_plot("AAPL") +``` + + +2. *(Extra Exercise)* Can you get the returns of a few companies and plot the returns of an equal weighted portfolio with those companies during some period you select? + +```{r echo=FALSE, comment=NA, warning=FALSE, message=FALSE,results='asis',fig.align='center', fig.height=4,fig.width= 6, fig=TRUE} +AAPL = StockReturns[,"AAPL"] +YHOO = StockReturns[,"YHOO"] +TSLA = StockReturns[,"TSLA"] +BHP = StockReturns[,"BHP"] +pnl_plot(AAPL+YHOO+TSLA+BHP) +``` +**Your Answers here:** +
+
+
+
+ +
+
+ +### Part IV: Read/Write .CSV files + +Finally, one can read and write data in .CSV files. For example, we can save the first 20 days of data for S&P and Apple in a file using the command: + +```{r eval = TRUE, echo=TRUE, comment=NA, warning=FALSE, message=FALSE,results='asis'} +write.csv(StockReturns[1:20,c("SPY","AAPL")], file = "twentydays.csv", row.names = TRUE, col.names = TRUE) +``` + +Do not get surpsised if you see the csv file in your directories suddenly! You can then read the data from the csv file using the read.csv command. For example, this will load the data from the csv file and save it in a new variable that now is called "myData": + +```{r eval = TRUE, echo=TRUE, comment=NA, warning=FALSE, message=FALSE,results='asis'} +myData <- read.csv(file = "twentydays.csv", header = TRUE, sep=";") +``` + +Try it! + +#### Questions + +1. Once you write and read the data as described above, what happens when you run this command in the console of the RStudio: `r sum(myData != StockReturns[1:1,])` +2. *(Extra exercise)* What do you think will happen if you now run this command, and why: + +```{r eval = FALSE, echo=TRUE} +myData + StockReturns[1:40,] +``` + +**Your Answers here:** +
+
+
+
2. My data has two columns whereas this chunk of code adding a matrix with 40 rows + +
+
+ +### Extra Question + +Can you now load another dataset from some CSV file and report some basic statistics about that data? + +
+ +### Creating Interactive Documents + +Finally, just for fun, one can add some interactivity in the report using [Shiny](http://rmarkdown.rstudio.com/authoring_shiny.html).All one needs to do is set the eval flag of the code chunk below (see the .Rmd file) to "TRUE", add the line "runtime: shiny" at the very begining of the .Rmd file, make the markdown output to be "html_document", and then press "Run Document". + +```{r, eval=FALSE, echo = TRUE} +sliderInput("startdate", "Starting Date:", min = 1, max = length(portfolio), + value = 1) +sliderInput("enddate", "End Date:", min = 1, max = length(portfolio), + value = length(portfolio)) + +renderPlot({ + pnl_plot(portfolio[input$startdate:input$enddate]) +}) +``` + +
+ +
+
+ +### Endless explorations (optional homework) + +This is a [recent research article](http://poseidon01.ssrn.com/delivery.php?ID=851091091009083082092113118102076099034023058067019062072066007100008111081022102123034016097101060099003106125099002090116089026058012038004030005113111105079028059062024121067073126072090091089069014121102110107075029090001011087028011082124103085&EXT=pdf) that won an award in 2016. Can you implement a simple strategy as in Figure 1 of this paper? You may find these R commands useful: `names`, `which`, `str_sub`,`diff`,`as.vector`, `length`, `pmin`, `pmax`, `sapply`, `lapply`,`Reduce`,`unique`, `as.numeric`, `%in%` +![A Simple Trading Startegy](simpletrade.png) + +What if you also include information about bonds? (e.g. download the returns of the the ETF with ticker "TLT") Is there any relation between stocks and bonds? + + +**Have fun** + diff --git a/Exercises/Exerciseset2/CopyOfExerciseSet2.Rmd b/Exercises/Exerciseset2/CopyOfExerciseSet2.Rmd new file mode 100644 index 00000000..23c24a2f --- /dev/null +++ b/Exercises/Exerciseset2/CopyOfExerciseSet2.Rmd @@ -0,0 +1,329 @@ +--- +title: 'Exercise Set 2: A $300 Billion Strategy' +author: "Jaime Andaluz" +output: + html_document: + css: ../../AnalyticsStyles/default.css + theme: paper + toc: yes + toc_float: + collapsed: no + smooth_scroll: yes + pdf_document: + includes: + in_header: ../../AnalyticsStyles/default.sty +always_allow_html: yes +--- + +> **IMPORTANT**: Please make sure you create a copy of this file with a customized name, so that your work (e.g. answers to the questions) is not over-written when you pull the latest content from the course github. + +```{r setuplibraries, echo=FALSE, message=FALSE} +suppressWarnings(source("../../AnalyticsLibraries/library.R")) +# Package options +suppressWarnings(ggthemr('fresh')) # ggplot theme +opts_knit$set(progress=FALSE, verbose=FALSE) +opts_chunk$set(echo=FALSE, fig.align="center", fig.width=10, fig.height=6.35, results="asis") +options(knitr.kable.NA = '') + +iplot.pnl <- function(x) { + df <- data.frame(Date=as.Date(names(x)), value=cumsum(x)*100) + p <- iplot.df(df, x="Date", y="value", v=NULL, ylab="Cumulative Return") + if (getDocumentOutputFormat() == "html") + p <- p %>% xAxis(type="timeseries", tick=list(format="%d/%m/%Y", count=10), label="Date") %>% legend() + p +} +``` + +The purpose of this exercise is to become familiar with: + +1. Some time series analysis tools; +2. Correlation matrices and principal component analysis (PCA) (see [readings of sessions 3-4](http://inseaddataanalytics.github.io/INSEADAnalytics/CourseSessions/Sessions23/FactorAnalysisReading.html)); +3. More data manipulation and reporting tools (including Google Charts). + +As always, while doing this exercise we will also see how to generate replicable and customizable reports. For this purpose the exercise uses the R Markdown capabilities (see [Markdown Cheat Sheet](https://www.rstudio.com/wp-content/uploads/2015/02/rmarkdown-cheatsheet.pdf) or a [basic introduction to R Markdown](http://rmarkdown.rstudio.com/authoring_basics.html)). These capabilities allow us to create dynamic reports. For example today's date is `r Sys.Date()` (you need to see the .Rmd to understand that this is *not* a static typed-in date but it changes every time you compile the .Rmd - if the date changed of course). + +Before starting, make sure you have pulled the [exercise set 2 souce code files](https://github.com/InseadDataAnalytics/INSEADAnalytics/tree/master/Exercises/Exerciseset2) on your github repository (if you pull the course github repository you also get the exercise set files automatically). Moreover, make sure you are in the directory of this exercise. Directory paths may be complicated, and sometimes a frustrating source of problems, so it is recommended that you use these R commands to find out your current working directory and, if needed, set it where you have the main files for the specific exercise/project (there are other ways, but for now just be aware of this path issue). For example, assuming we are now in the "Data Analytics R version/INSEADAnalytics" directory, we can do these: + +```{r echo=TRUE, eval=FALSE, tidy=TRUE} +getwd() +setwd("Exercises/Exerciseset2/") +list.files() +``` + +**Note:** as always, you can use the `help` command in Rstudio to find out about any R function (e.g. type `help(list.files)` to learn what the R function `list.files` does). + +Let's now see the exercise. + +**IMPORTANT:** You should answer all questions by simply adding your code/answers in this document through editing the file ExerciseSet2.Rmd and then clicking on the "Knit HTML" button in RStudio. Once done, please post your .Rmd and html files in your github repository. + +# The Exercise: Introduction + +For this exercise we will use the Futures' daily returns to develop what is considered to be a *"classic" hedge fund trading strategy*, a **futures trend following strategy**. There is a lot written about this, so it is worth doing some online search about "futures trend following", or "Managed Futures", or "Commodity Trading Advisors (CTA)". There is about **[$300 billion](http://www.barclayhedge.com/research/indices/cta/Money_Under_Management.html)** invested on this strategy today, and is considered to be one of the **oldest hedge fund strategies**. Some example links are: + +* [A fascinating report on 2 centuries of trend following from the CFM hedge - a $6 billion fund](https://www.trendfollowing.com/whitepaper/Two_Centuries_Trend_Following.pdf) +* [Another fascinating report on 1 century of trend following investing from AQR - a $130 billion fund](https://www.aqr.com/library/aqr-publications/a-century-of-evidence-on-trend-following-investing) +* [Wikipedia on CTAs](https://en.wikipedia.org/wiki/Commodity_trading_advisor) +* [Morningstar on CTAs](http://www.morningstar.co.uk/uk/news/69379/commodity-trading-advisors-(cta)-explained.aspx) +* [A report](http://perspectives.pictet.com/wp-content/uploads/2011/01/Trading-Strategies-Final.pdf) +* [Man AHL (a leading hedge fund on CTAs - among others) - an $80 billion fund](https://www.ahl.com) + +Of course there are also many starting points for developing such a strategy (for example [this R bloggers one](http://www.r-bloggers.com/system-from-trend-following-factors/) (also on [github](https://gist.github.com/timelyportfolio/2855303)), or the [turtle traders website](http://turtletrader.com) which has many resources. + +In this exercise we will develop our own strategy from scratch. + +*Note (given today's market conditions):* **Prices of commodities, like oil or gold, can be excellent indicators of the health of the economy and of various industries, as we will also see below**. + +# Getting the Futures Data + +There are many ways to get futures data. For example, one can use the [Quandl package,](https://www.quandl.com/browse) or the [turtle traders resources,](http://turtletrader.com/hpd/) or (for INSEAD only) get data from the [INSEAD library finance data resources](http://sites.insead.edu/library/E_resources/ER_subject.cfm#Stockmarket) website. One has to pay attention on how to create continuous time series from underlying contracts with varying deliveries (e.g. see [here](https://www.quantstart.com/articles/Continuous-Futures-Contracts-for-Backtesting-Purposes) ). Using a combination of the resources above, we will use data for a number of commodities. + + +# Data description + +Let's load the data and see what we have. + +```{r echo=TRUE} +suppressPackageStartupMessages(source("helpersSet2.R")) +load("data/FuturesTrendFollowingData.Rdata") +``` + +We have data from `r head(rownames(futures_data),1)` to `r tail(rownames(futures_data),1)` of daily returns for the following `r ncol(futures_data)` futures: + +```{r echo=TRUE, results='markup'} +print(colnames(futures_data)) +``` + +# Basic data analysis + +Let's see how these are correlated. The correlation matrix is as follows: + +```{r} +show_data = round(cor(futures_data),2) +iprint.df(show_data, scale=TRUE) +``` + +We see quite high correlations among some of the futures. Does it make sense? Why? Do you see some negative correlations? Do those make sense? + +Given such high correlations, we can try to see whether there are some "principal components" (see [reading on dimensionality reduction](http://inseaddataanalytics.github.io/INSEADAnalytics/CourseSessions/Sessions23/FactorAnalysisReading.html)). This analysis can also indicate whether all futures (the global economy!) are driven by some common "factors" (let's call them **"risk factors"**). + +```{r echo=TRUE} +Variance_Explained_Table_results<-PCA(futures_data, graph=FALSE) +Variance_Explained_Table<-Variance_Explained_Table_results$eig +colnames(Variance_Explained_Table)<-c("Eigenvalue", + "Pct of explained variance", "Cumulative pct of explained variance") +``` + +```{r} +show_data = round(Variance_Explained_Table, 2) +iprint.df(show_data) +``` + +Here is the scree plot (see Sessions 3-4 readings): + +```{r echo=TRUE} +eigenvalues <- Variance_Explained_Table[, "Eigenvalue"] +``` + +```{r} +df <- cbind(as.data.frame(eigenvalues), c(1:length(eigenvalues)), rep(1, length(eigenvalues))) +colnames(df) <- c("eigenvalues", "components", "abline") +iplot.df(melt(df, id="components")) +``` + +Let's now see how the 20 first (**rotated**) principal components look like. Let's also use the *rotated* factors (note that these are not really the "principal component", as explained in the [reading on dimensionality reduction](http://inseaddataanalytics.github.io/INSEADAnalytics/CourseSessions/Sessions23/FactorAnalysisReading.html)) and not show any numbers less than 0.3 in absolute value, to avoid cluttering. + +```{r echo=TRUE, tidy=TRUE} +corused = cor(futures_data[,apply(futures_data!=0,2,sum) > 10, drop=F]) +Rotated_Results<-principal(corused, nfactors=20, rotate="varimax",score=TRUE) +Rotated_Factors<-round(Rotated_Results$loadings,2) +Rotated_Factors<-as.data.frame(unclass(Rotated_Factors)) +colnames(Rotated_Factors)<-paste("comp",1:ncol(Rotated_Factors),sep=" ") + +sorted_rows <- sort(Rotated_Factors[,1], decreasing = TRUE, index.return = TRUE)$ix +Rotated_Factors <- Rotated_Factors[sorted_rows,] +Rotated_Factors[abs(Rotated_Factors) < 0.3]<-NA +``` + +```{r} +show_data <- Rotated_Factors +iprint.df(show_data, scale=TRUE) +``` + +**Questions** + +1. How many principal components ("factors") do we need to explain at least 50% of the variance in this data? +2. What are the highest weights (in absolute value) of the first principal component portfolio above on the `r ncol(futures_data)` futures? +3. Can we interpret the first 10 components? How would you call these factors? +4. Can you now generate the principal components and scree plot using only: a) the pre-crisis bull market years (e.g. only using the data between November 1, 2002, and October 1, 2007)? b) the financial crisis years (e.g. only using the data between October 1, 2007 and March 1, 2009), (Hint: you can select subsets of the data using for example the command `crisis_data` `=` `futures_data[` `as.Date(rownames(futures_data))` `>` `"2007-10-01"` `&` `as.Date(rownames(futures_data))` `<` `"2009-03-01"` `,` `]`) +5. Based on your analysis in question 3, please discuss any differences you observe about the futures returns during bull and bear markets. What implications may these results have? What do the results imply about how assets are correlated during bear years compared to bull years? + + +**Answers** + +*1. We need to select 6 components to explain more than 50 percent of the data +
+*2. 5 and 10 years T-notes in US. both with 0.93 in rotated factors in component 1 +* +*3. First ten components explain 62.61 percent of the data. I would call these factors +comp 1: Low risk long term or risk free investments +comp 2: develop nations currencies and gold +comp3 : Stock price market index +comp4: Stock price market index 2 +comp5: European futures +comp6: oil +comp7: metals +comp8: agrilcultural commodities +comp9: precious metals +comp10:asian stock index + +*4.Correlations between these two periods change as well as number of factors that explain more than 50% of the data. During Financial Crisis there was a negative correlation between food commodities and financial securities. Whereas bull market there was a very minimal correlation between commodities and stock market + +*Financial Crisis + +```{r} +crisis_data = futures_data[as.Date(rownames(futures_data)) > "2007-10-01" & as.Date(rownames(futures_data))< "2009-03-01",] +``` + +```{r} +show_data = round(cor(crisis_data),2) +iprint.df(show_data, scale=TRUE) +``` +```{r} +Variance_Explained_Table_results1<-PCA(crisis_data, graph=FALSE) +Variance_Explained_Table1<-Variance_Explained_Table_results1$eig +colnames(Variance_Explained_Table1)<-c("Eigenvalue", + "Pct of explained variance", "Cumulative pct of explained variance") +``` + +```{r} +show_data = round(Variance_Explained_Table1, 2) +iprint.df(show_data) +eigenvalues <- Variance_Explained_Table1[, "Eigenvalue"] +df <- cbind(as.data.frame(eigenvalues), c(1:length(eigenvalues)), rep(1, length(eigenvalues1))) +colnames(df) <- c("eigenvalues", "components", "abline") +iplot.df(melt(df, id="components")) +``` +* + +* Bull period + +```{r} +crisis_data2 = futures_data[as.Date(rownames(futures_data)) > "2002-11-01" & as.Date(rownames(futures_data))< "2007-10-01",] +``` + +```{r} +show_data = round(cor(crisis_data2),2) +iprint.df(show_data, scale=TRUE) +``` +```{r} +Variance_Explained_Table_results2<-PCA(crisis_data2, graph=FALSE) +Variance_Explained_Table2<-Variance_Explained_Table_results2$eig +colnames(Variance_Explained_Table2)<-c("Eigenvalue", + "Pct of explained variance", "Cumulative pct of explained variance") +``` + + +```{r} +show_data = round(Variance_Explained_Table2, 2) +iprint.df(show_data) +eigenvalues <- Variance_Explained_Table2[, "Eigenvalue"] +df <- cbind(as.data.frame(eigenvalues), c(1:length(eigenvalues)), rep(1, length(eigenvalues2))) +colnames(df) <- c("eigenvalues", "components", "abline") +iplot.df(melt(df, id="components")) +``` + +### A Simple Futures Trend Following Strategy + +We can now develop a simple futures trend following trading strategy, as outlined in the papers in the Exercise Introduction above. There are about $300 billion invested in such strategies! Of course we cannot develop here a sophisticated product, but with some more work... + +We will do the following: + +1. Calculate a number of moving averages of different "window lengths" for each of the `r ncol(futures_data)` futures - there are [many](http://www.r-bloggers.com/stock-analysis-using-r/) so called [technical indicators](http://www.investopedia.com/active-trading/technical-indicators/) one can use. We will use the "moving average" function `ma` for this (try for example to see what this returns `ma(1:10,2)` ). +2. Add the signs (can also use the actual moving average values of course - try it!) of these moving averages (as if they "vote"), and then scale this sum across all futures so that the sum of their (of the sum across all futures!) absolute value across all futures is 1 (hence we invest $1 every day - you see why?). +3. Then invest every day in each of the `r ncol(futures_data)` an amount that is defined by the weights calculated in step 2, using however the weights calculated using data until 2 days ago (why 2 days and not 1 day?) - see the use of the helper function `shift` for this. +4. Finally see the performance of this strategy. + +Here is the code: + +```{r echo=TRUE, tidy=TRUE} +signal_used = 0*futures_data # just initialize the trading signal to be 0 +# Take many moving Average (MA) Signals and let them "vote" with their sign (+-1, e.g. long or short vote, for each signal) +MAfreq<-seq(10,250,by=20) +for (iter in 1:length(MAfreq)) + signal_used = signal_used + sign(apply(futures_data,2, function(r) ma(r,MAfreq[iter]))) +# Now make sure we invest $1 every day (so the sum of the absolute values of the weights is 1 every day) +signal_used = t(apply(signal_used,1,function(r) { + res = r + if ( sum(abs(r)) !=0 ) + res = r/sum(abs(r)) + res +})) +colnames(signal_used) <- colnames(futures_data) +# Now create the returns of the strategy for each futures time series +strategy_by_future <- scrub(shift(signal_used,2)*futures_data) # signal 2 days ago +# finally, this is our futures trend following strategy +trading_strategy = apply(strategy_by_future,1,sum) +names(trading_strategy) <- rownames(futures_data) +``` + +# Reporting the performance results + +Let's see how this strategy does: + +```{r} +iplot.pnl(trading_strategy) +``` + +Here is how this strategy has performed during this period: + +```{r} +show_data = round(pnl_matrix(trading_strategy),2) +iprint.df(show_data) +``` + +How does this compare with **existing CTA products** such as [this one from Societe Generale?](https://cib.societegenerale.com/fileadmin/indices_feeds/SG_CTA_Monthly_Report.pdf) (Note: one can easily achieve a correlation of more than 0.8 with this specific product - as well as with many other ones) + +![Compare our strategy with this product](societegenerale.png) + +**Questions** + +1. Can you describe in more detail what the code above does? +2. What happens if you use different moving average technical indicators in the code above? Please explore and report below the returns of a trading strategy you build. (Hint: check that the command line `MAfreq<-seq(10,250,by=20)` above does for example - but not only of course, the possibilities are endless) + +**Answers** + +* +* +* +* +* +* +* +* +* +* + +# A class competition + +Now you have seen how to develop some trading strategies that hedge funds have been using for centuries. Clearly this is only the very first step - as many of the online resources on technical indicators also suggest. Can you now explore more such strategies? How good a **futures trend following hedge fund strategy** can you develop? Let's call this.... a **class competition**! Explore as much as you can and report your best strategy as we move along the course... + +Here is for example something that can be achieved relatively easily... + +```{r} +load("data/sample_strategy.Rdata") +iplot.pnl(sample_strategy) +``` + +Here is how this strategy has performed during this period: + +```{r} +show_data = round(pnl_matrix(sample_strategy),2) +iprint.df(show_data) +``` + +As always, **have fun** + + + + + diff --git a/Exercises/Exerciseset2/CopyOfExerciseSet2.html b/Exercises/Exerciseset2/CopyOfExerciseSet2.html new file mode 100644 index 00000000..ce519d5a --- /dev/null +++ b/Exercises/Exerciseset2/CopyOfExerciseSet2.html @@ -0,0 +1,16634 @@ + + + + Exercise Set 2: A $300 Billion Strategy + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Exercise Set 2: A $300 Billion Strategy

+

+

Jaime Andaluz

+
+
+
+ + + + +
+
+

IMPORTANT: Please make sure you create a copy of this file with a customized name, so that your work (e.g. answers to the questions) is not over-written when you pull the latest content from the course github.

+
+ +

The purpose of this exercise is to become familiar with:

+ +
    +
  1. Some time series analysis tools;
  2. +
  3. Correlation matrices and principal component analysis (PCA) (see readings of sessions 3-4);
  4. +
  5. More data manipulation and reporting tools (including Google Charts).
  6. +
+ +

As always, while doing this exercise we will also see how to generate replicable and customizable reports. For this purpose the exercise uses the R Markdown capabilities (see Markdown Cheat Sheet or a basic introduction to R Markdown). These capabilities allow us to create dynamic reports. For example today's date is 2017-01-23 (you need to see the .Rmd to understand that this is not a static typed-in date but it changes every time you compile the .Rmd - if the date changed of course).

+ +

Before starting, make sure you have pulled the exercise set 2 souce code files on your github repository (if you pull the course github repository you also get the exercise set files automatically). Moreover, make sure you are in the directory of this exercise. Directory paths may be complicated, and sometimes a frustrating source of problems, so it is recommended that you use these R commands to find out your current working directory and, if needed, set it where you have the main files for the specific exercise/project (there are other ways, but for now just be aware of this path issue). For example, assuming we are now in the "Data Analytics R version/INSEADAnalytics" directory, we can do these:

+ +
getwd()
+setwd("Exercises/Exerciseset2/")
+list.files()
+
+ +

Note: as always, you can use the help command in Rstudio to find out about any R function (e.g. type help(list.files) to learn what the R function list.files does).

+ +

Let's now see the exercise.

+ +

IMPORTANT: You should answer all questions by simply adding your code/answers in this document through editing the file ExerciseSet2.Rmd and then clicking on the "Knit HTML" button in RStudio. Once done, please post your .Rmd and html files in your github repository.

+ +

The Exercise: Introduction

+ +

For this exercise we will use the Futures' daily returns to develop what is considered to be a "classic" hedge fund trading strategy, a futures trend following strategy. There is a lot written about this, so it is worth doing some online search about "futures trend following", or "Managed Futures", or "Commodity Trading Advisors (CTA)". There is about $300 billion invested on this strategy today, and is considered to be one of the oldest hedge fund strategies. Some example links are:

+ + + +

Of course there are also many starting points for developing such a strategy (for example this R bloggers one (also on github), or the turtle traders website which has many resources.

+ +

In this exercise we will develop our own strategy from scratch.

+ +

Note (given today's market conditions): Prices of commodities, like oil or gold, can be excellent indicators of the health of the economy and of various industries, as we will also see below.

+ +

Getting the Futures Data

+ +

There are many ways to get futures data. For example, one can use the Quandl package, or the turtle traders resources, or (for INSEAD only) get data from the INSEAD library finance data resources website. One has to pay attention on how to create continuous time series from underlying contracts with varying deliveries (e.g. see here ). Using a combination of the resources above, we will use data for a number of commodities.

+ +

Data description

+ +

Let's load the data and see what we have.

+ +
suppressPackageStartupMessages(source("helpersSet2.R"))
+load("data/FuturesTrendFollowingData.Rdata")
+
+ +

We have data from 2001-01-02 to 2015-09-24 of daily returns for the following 64 futures:

+ +
print(colnames(futures_data))
+
+ +
##  [1] "Corn"               "Wheat"              "Soybeans"          
+##  [4] "Soybean Oil"        "Soybean Meal"       "Lean Hoggs"        
+##  [7] "Sugar"              "Coffee"             "Cocoa"             
+## [10] "Cotton"             "Canola"             "Orange Juice"      
+## [13] "Lumber"             "Natural Gas"        "Crude Oil"         
+## [16] "Brent Crude"        "Heating Oil"        "Kerosene"          
+## [19] "Gas Oil"            "Gasoline"           "Copper NY"         
+## [22] "Copper LDN"         "Silver"             "Gold"              
+## [25] "Platinum"           "Palladium"          "Aluminium"         
+## [28] "Zinc"               "Nickel"             "Treasury Bonds"    
+## [31] "5 yr T-Notes US"    "2 yr T-Note US"     "10yr T-Notes"      
+## [34] "Euro-Bund"          "Euro-Bobl"          "Euro-Schatz"       
+## [37] "Canadian Bond"      "JGB Japan"          "Gilts UK"          
+## [40] "Euroyen"            "Eurodollar"         "Euroswiss"         
+## [43] "Euribor"            "SP500 E-Mini"       "DAX 30"            
+## [46] "Eurostoxx"          "Hang Seng"          "FTSE 100 UK"       
+## [49] "Nasdaq 100 Mini"    "Russel 2000 E-Mini" "Dow Jones"         
+## [52] "TSE Toronto"        "CAC 40 France"      "OMX 30 Stockholm"  
+## [55] "NIKKEI 225"         "Euro"               "Norwegian Krone"   
+## [58] "New Zealand Dollar" "Australian Dollar"  "British Pound"     
+## [61] "Canadian Dollar"    "Swiss Franc"        "Japanese Yen"      
+## [64] "Singapore Dollar"
+
+ +

Basic data analysis

+ +

Let's see how these are correlated. The correlation matrix is as follows:

+ +

<!--html_preserve-->

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Corn Wheat Soybeans Soybean Oil Soybean Meal Lean Hoggs Sugar Coffee Cocoa Cotton Canola Orange Juice Lumber Natural Gas Crude Oil Brent Crude Heating Oil Kerosene Gas Oil Gasoline Copper NY Copper LDN Silver Gold Platinum Palladium Aluminium Zinc Nickel Treasury Bonds 5 yr T-Notes US 2 yr T-Note US 10yr T-Notes Euro-Bund Euro-Bobl Euro-Schatz Canadian Bond JGB Japan Gilts UK Euroyen Eurodollar Euroswiss Euribor SP500 E-Mini DAX 30 Eurostoxx Hang Seng FTSE 100 UK Nasdaq 100 Mini Russel 2000 E-Mini Dow Jones TSE Toronto CAC 40 France OMX 30 Stockholm NIKKEI 225 Euro Norwegian Krone New Zealand Dollar Australian Dollar British Pound Canadian Dollar Swiss Franc Japanese Yen Singapore Dollar
Corn 1.00 0.63 0.60 0.51 0.52 0.02 0.21 0.17 0.10 0.23 0.45 0.06 0.08 0.12 0.24 0.25 0.22 0.02 0.15 0.25 0.23 0.22 0.23 0.18 0.13 0.17 0.20 0.18 0.16 -0.08 -0.07 -0.05 -0.07 -0.08 -0.06 -0.08 -0.07 -0.03 -0.06 -0.01 -0.01 -0.05 -0.07 0.14 0.13 0.13 0.08 0.16 0.10 0.12 0.11 0.18 0.13 0.15 0.05 0.17 0.20 0.18 0.21 0.16 -0.20 0.11 -0.02 0.17
Wheat 0.63 1.00 0.45 0.42 0.39 0.03 0.20 0.18 0.09 0.22 0.38 0.03 0.07 0.09 0.21 0.21 0.18 0.00 0.12 0.21 0.21 0.21 0.20 0.16 0.12 0.15 0.17 0.17 0.14 -0.10 -0.09 -0.07 -0.09 -0.07 -0.06 -0.06 -0.07 -0.02 -0.06 -0.01 -0.04 -0.06 -0.06 0.13 0.13 0.13 0.06 0.15 0.10 0.13 0.11 0.17 0.13 0.13 0.05 0.16 0.20 0.18 0.20 0.15 -0.20 0.12 0.00 0.16
Soybeans 0.60 0.45 1.00 0.74 0.84 0.04 0.20 0.16 0.12 0.26 0.64 0.08 0.08 0.11 0.27 0.27 0.25 0.04 0.18 0.28 0.28 0.26 0.24 0.17 0.17 0.21 0.23 0.21 0.18 -0.12 -0.11 -0.09 -0.11 -0.11 -0.10 -0.10 -0.09 -0.02 -0.12 -0.02 -0.05 -0.09 -0.09 0.15 0.17 0.17 0.13 0.20 0.11 0.14 0.13 0.20 0.18 0.20 0.08 0.17 0.22 0.19 0.25 0.17 -0.22 0.11 -0.01 0.21
Soybean Oil 0.51 0.42 0.74 1.00 0.47 0.04 0.20 0.18 0.13 0.28 0.64 0.10 0.09 0.13 0.34 0.34 0.31 0.09 0.25 0.37 0.32 0.30 0.29 0.23 0.20 0.24 0.27 0.25 0.22 -0.14 -0.12 -0.09 -0.12 -0.11 -0.10 -0.11 -0.10 -0.02 -0.13 0.00 -0.04 -0.08 -0.08 0.20 0.20 0.20 0.19 0.25 0.14 0.19 0.18 0.24 0.22 0.24 0.12 0.20 0.26 0.24 0.30 0.21 -0.28 0.13 -0.05 0.23
Soybean Meal 0.52 0.39 0.84 0.47 1.00 0.02 0.16 0.13 0.09 0.20 0.51 0.08 0.07 0.09 0.17 0.17 0.16 0.02 0.11 0.17 0.20 0.18 0.17 0.12 0.12 0.15 0.16 0.15 0.13 -0.08 -0.08 -0.07 -0.08 -0.07 -0.07 -0.07 -0.06 -0.02 -0.08 -0.01 -0.04 -0.07 -0.07 0.10 0.13 0.13 0.09 0.15 0.08 0.09 0.09 0.15 0.13 0.15 0.07 0.13 0.16 0.15 0.19 0.12 -0.17 0.08 0.01 0.16
Lean Hoggs 0.02 0.03 0.04 0.04 0.02 1.00 0.03 0.02 0.03 0.02 0.01 0.01 0.03 0.04 0.07 0.06 0.05 -0.02 0.02 0.05 0.06 0.06 0.02 0.01 0.05 0.04 0.05 0.07 0.06 -0.04 -0.05 -0.04 -0.04 -0.04 -0.03 -0.02 -0.04 0.01 -0.05 0.00 -0.05 -0.05 -0.04 0.04 0.04 0.06 0.01 0.06 0.01 0.02 0.03 0.05 0.06 0.04 0.02 0.00 0.01 0.01 0.02 0.02 -0.03 -0.02 -0.03 0.01
Sugar 0.21 0.20 0.20 0.20 0.16 0.03 1.00 0.22 0.15 0.19 0.17 0.06 0.04 0.07 0.20 0.19 0.17 0.02 0.14 0.19 0.23 0.21 0.18 0.13 0.12 0.16 0.19 0.18 0.16 -0.07 -0.06 -0.04 -0.06 -0.09 -0.10 -0.09 -0.05 0.00 -0.08 0.00 -0.01 -0.04 -0.06 0.11 0.12 0.13 0.08 0.15 0.08 0.11 0.08 0.13 0.13 0.14 0.08 0.13 0.15 0.17 0.20 0.13 -0.15 0.09 -0.04 0.16
Coffee 0.17 0.18 0.16 0.18 0.13 0.02 0.22 1.00 0.18 0.16 0.12 0.06 0.07 0.05 0.15 0.14 0.13 0.04 0.12 0.15 0.19 0.18 0.20 0.15 0.13 0.17 0.17 0.17 0.15 -0.06 -0.05 -0.03 -0.05 -0.06 -0.06 -0.06 -0.05 0.00 -0.05 -0.01 -0.01 -0.05 -0.04 0.12 0.13 0.13 0.11 0.13 0.07 0.12 0.11 0.14 0.13 0.14 0.07 0.15 0.17 0.19 0.20 0.15 -0.17 0.08 0.00 0.16
Cocoa 0.10 0.09 0.12 0.13 0.09 0.03 0.15 0.18 1.00 0.12 0.08 0.05 0.06 0.04 0.16 0.15 0.13 0.06 0.15 0.14 0.17 0.17 0.21 0.18 0.13 0.14 0.16 0.16 0.12 -0.08 -0.06 -0.02 -0.07 -0.10 -0.09 -0.06 -0.07 -0.01 -0.09 -0.03 -0.01 -0.05 -0.05 0.10 0.11 0.12 0.12 0.11 0.06 0.11 0.09 0.13 0.13 0.14 0.07 0.21 0.22 0.22 0.23 0.24 -0.20 0.14 0.01 0.19
Cotton 0.23 0.22 0.26 0.28 0.20 0.02 0.19 0.16 0.12 1.00 0.22 0.08 0.07 0.04 0.20 0.20 0.18 0.03 0.16 0.19 0.23 0.22 0.17 0.13 0.10 0.15 0.19 0.18 0.18 -0.10 -0.10 -0.08 -0.10 -0.09 -0.09 -0.10 -0.08 -0.02 -0.08 0.01 -0.06 -0.07 -0.07 0.17 0.16 0.17 0.09 0.18 0.13 0.16 0.15 0.18 0.17 0.17 0.05 0.17 0.20 0.17 0.21 0.15 -0.20 0.11 -0.01 0.17
Canola 0.45 0.38 0.64 0.64 0.51 0.01 0.17 0.12 0.08 0.22 1.00 0.06 0.06 0.06 0.17 0.19 0.16 0.03 0.11 0.21 0.18 0.16 0.18 0.13 0.12 0.15 0.15 0.14 0.12 -0.09 -0.09 -0.07 -0.08 -0.06 -0.07 -0.09 -0.05 -0.02 -0.07 -0.01 -0.05 -0.06 -0.09 0.09 0.10 0.10 0.11 0.13 0.07 0.07 0.07 0.16 0.11 0.13 0.06 0.09 0.13 0.11 0.15 0.10 -0.06 0.05 -0.02 0.12
Orange Juice 0.06 0.03 0.08 0.10 0.08 0.01 0.06 0.06 0.05 0.08 0.06 1.00 0.04 0.05 0.10 0.08 0.08 0.04 0.08 0.09 0.09 0.08 0.10 0.06 0.06 0.07 0.10 0.07 0.08 -0.05 -0.03 -0.02 -0.04 -0.06 -0.06 -0.06 -0.07 -0.03 -0.06 -0.02 -0.01 -0.02 -0.04 0.08 0.08 0.09 0.07 0.10 0.06 0.06 0.08 0.10 0.08 0.11 0.07 0.06 0.05 0.07 0.09 0.03 -0.09 0.03 -0.03 0.07
Lumber 0.08 0.07 0.08 0.09 0.07 0.03 0.04 0.07 0.06 0.07 0.06 0.04 1.00 0.00 0.07 0.07 0.07 0.04 0.05 0.09 0.12 0.11 0.07 0.02 0.03 0.06 0.10 0.08 0.09 -0.10 -0.11 -0.09 -0.11 -0.08 -0.08 -0.07 -0.09 0.01 -0.10 -0.01 -0.07 -0.08 -0.06 0.12 0.14 0.14 0.08 0.14 0.12 0.10 0.11 0.10 0.14 0.12 0.04 0.05 0.08 0.09 0.11 0.08 -0.09 0.01 -0.07 0.09
Natural Gas 0.12 0.09 0.11 0.13 0.09 0.04 0.07 0.05 0.04 0.04 0.06 0.05 0.00 1.00 0.29 0.27 0.34 0.00 0.20 0.16 0.10 0.09 0.08 0.07 0.04 0.06 0.09 0.06 0.05 -0.02 -0.02 -0.02 -0.02 0.00 0.00 0.01 -0.02 -0.01 -0.01 0.00 -0.01 -0.01 0.00 0.04 0.04 0.03 0.03 0.04 0.02 0.03 0.03 0.10 0.04 0.04 0.03 0.07 0.07 0.07 0.09 0.06 -0.10 0.06 0.01 0.05
Crude Oil 0.24 0.21 0.27 0.34 0.17 0.07 0.20 0.15 0.16 0.20 0.17 0.10 0.07 0.29 1.00 0.89 0.84 0.10 0.56 0.66 0.37 0.35 0.29 0.26 0.20 0.24 0.30 0.27 0.25 -0.20 -0.14 -0.10 -0.17 -0.15 -0.14 -0.12 -0.15 -0.02 -0.14 -0.03 -0.05 -0.08 -0.08 0.23 0.19 0.20 0.15 0.25 0.13 0.23 0.19 0.33 0.22 0.25 0.10 0.23 0.32 0.25 0.32 0.22 -0.34 0.13 -0.06 0.25
Brent Crude 0.25 0.21 0.27 0.34 0.17 0.06 0.19 0.14 0.15 0.20 0.19 0.08 0.07 0.27 0.89 1.00 0.85 0.11 0.62 0.69 0.36 0.34 0.29 0.25 0.20 0.24 0.29 0.27 0.25 -0.17 -0.13 -0.09 -0.14 -0.13 -0.12 -0.10 -0.13 -0.02 -0.12 -0.01 -0.03 -0.08 -0.07 0.23 0.18 0.19 0.16 0.25 0.13 0.24 0.19 0.33 0.22 0.25 0.12 0.23 0.31 0.26 0.32 0.24 -0.34 0.14 -0.05 0.24
Heating Oil 0.22 0.18 0.25 0.31 0.16 0.05 0.17 0.13 0.13 0.18 0.16 0.08 0.07 0.34 0.84 0.85 1.00 0.10 0.64 0.63 0.31 0.30 0.26 0.23 0.18 0.21 0.25 0.24 0.21 -0.14 -0.10 -0.08 -0.11 -0.10 -0.09 -0.08 -0.11 -0.01 -0.09 -0.02 -0.03 -0.06 -0.05 0.19 0.15 0.15 0.13 0.20 0.11 0.21 0.16 0.28 0.18 0.21 0.10 0.20 0.26 0.22 0.28 0.20 -0.30 0.13 -0.03 0.21
Kerosene 0.02 0.00 0.04 0.09 0.02 -0.02 0.02 0.04 0.06 0.03 0.03 0.04 0.04 0.00 0.10 0.11 0.10 1.00 0.28 0.10 0.09 0.10 0.08 0.05 0.14 0.15 0.10 0.08 0.07 -0.03 -0.01 0.00 -0.02 -0.08 -0.06 -0.05 -0.02 -0.14 -0.11 -0.05 0.02 -0.04 -0.02 0.04 0.07 0.09 0.23 0.11 0.01 0.04 0.03 0.08 0.08 0.11 0.33 0.05 0.12 0.11 0.12 0.10 -0.11 0.04 -0.13 0.05
Gas Oil 0.15 0.12 0.18 0.25 0.11 0.02 0.14 0.12 0.15 0.16 0.11 0.08 0.05 0.20 0.56 0.62 0.64 0.28 1.00 0.40 0.29 0.30 0.24 0.19 0.18 0.21 0.25 0.25 0.21 -0.11 -0.07 -0.04 -0.09 -0.10 -0.09 -0.07 -0.09 -0.03 -0.11 -0.01 -0.01 -0.06 -0.04 0.13 0.15 0.16 0.14 0.21 0.08 0.15 0.11 0.19 0.17 0.21 0.09 0.20 0.29 0.23 0.27 0.20 -0.31 0.16 -0.03 0.21
Gasoline 0.25 0.21 0.28 0.37 0.17 0.05 0.19 0.15 0.14 0.19 0.21 0.09 0.09 0.16 0.66 0.69 0.63 0.10 0.40 1.00 0.36 0.34 0.28 0.23 0.21 0.25 0.30 0.27 0.26 -0.18 -0.15 -0.10 -0.16 -0.15 -0.15 -0.15 -0.15 -0.02 -0.14 -0.05 -0.06 -0.11 -0.12 0.26 0.22 0.23 0.18 0.28 0.16 0.26 0.23 0.35 0.25 0.28 0.13 0.19 0.28 0.23 0.31 0.21 -0.31 0.10 -0.08 0.22
Copper NY 0.23 0.21 0.28 0.32 0.20 0.06 0.23 0.19 0.17 0.23 0.18 0.09 0.12 0.10 0.37 0.36 0.31 0.09 0.29 0.36 1.00 0.91 0.45 0.36 0.31 0.39 0.67 0.68 0.57 -0.20 -0.17 -0.13 -0.18 -0.20 -0.19 -0.17 -0.17 -0.06 -0.19 -0.03 -0.06 -0.14 -0.14 0.28 0.36 0.37 0.25 0.40 0.21 0.23 0.26 0.33 0.38 0.38 0.18 0.29 0.35 0.38 0.45 0.29 -0.38 0.20 -0.08 0.32
Copper LDN 0.22 0.21 0.26 0.30 0.18 0.06 0.21 0.18 0.17 0.22 0.16 0.08 0.11 0.09 0.35 0.34 0.30 0.10 0.30 0.34 0.91 1.00 0.42 0.33 0.31 0.39 0.72 0.75 0.60 -0.19 -0.17 -0.12 -0.17 -0.22 -0.20 -0.19 -0.17 -0.06 -0.21 -0.02 -0.06 -0.15 -0.15 0.28 0.38 0.39 0.26 0.43 0.20 0.24 0.26 0.33 0.41 0.41 0.18 0.28 0.35 0.38 0.45 0.28 -0.39 0.18 -0.07 0.33
Silver 0.23 0.20 0.24 0.29 0.17 0.02 0.18 0.20 0.21 0.17 0.18 0.10 0.07 0.08 0.29 0.29 0.26 0.08 0.24 0.28 0.45 0.42 1.00 0.78 0.44 0.51 0.37 0.37 0.29 -0.01 0.02 0.04 0.01 -0.01 0.01 0.01 0.00 0.00 0.00 -0.01 0.06 -0.01 0.00 0.09 0.13 0.13 0.17 0.18 0.04 0.11 0.08 0.23 0.15 0.19 0.12 0.40 0.43 0.40 0.43 0.37 -0.39 0.35 0.14 0.37
Gold 0.18 0.16 0.17 0.23 0.12 0.01 0.13 0.15 0.18 0.13 0.13 0.06 0.02 0.07 0.26 0.25 0.23 0.05 0.19 0.23 0.36 0.33 0.78 1.00 0.43 0.44 0.29 0.30 0.23 0.10 0.12 0.12 0.12 0.11 0.12 0.12 0.10 0.03 0.12 -0.01 0.10 0.07 0.08 -0.02 -0.02 -0.02 0.06 0.04 -0.04 0.01 -0.03 0.14 0.00 0.07 0.05 0.42 0.41 0.35 0.37 0.36 -0.34 0.41 0.23 0.36
Platinum 0.13 0.12 0.17 0.20 0.12 0.05 0.12 0.13 0.13 0.10 0.12 0.06 0.03 0.04 0.20 0.20 0.18 0.14 0.18 0.21 0.31 0.31 0.44 0.43 1.00 0.46 0.30 0.27 0.23 -0.08 -0.06 -0.05 -0.06 -0.09 -0.09 -0.08 -0.06 -0.02 -0.07 0.00 -0.01 -0.07 -0.06 0.12 0.14 0.14 0.15 0.16 0.08 0.13 0.11 0.20 0.16 0.18 0.13 0.24 0.28 0.29 0.33 0.23 -0.27 0.20 0.03 0.27
Palladium 0.17 0.15 0.21 0.24 0.15 0.04 0.16 0.17 0.14 0.15 0.15 0.07 0.06 0.06 0.24 0.24 0.21 0.15 0.21 0.25 0.39 0.39 0.51 0.44 0.46 1.00 0.36 0.36 0.29 -0.11 -0.08 -0.05 -0.09 -0.10 -0.08 -0.06 -0.08 -0.04 -0.09 -0.02 0.00 -0.06 -0.04 0.19 0.21 0.22 0.18 0.26 0.13 0.20 0.17 0.27 0.23 0.27 0.15 0.28 0.32 0.32 0.36 0.25 -0.33 0.22 0.03 0.31
Aluminium 0.20 0.17 0.23 0.27 0.16 0.05 0.19 0.17 0.16 0.19 0.15 0.10 0.10 0.09 0.30 0.29 0.25 0.10 0.25 0.30 0.67 0.72 0.37 0.29 0.30 0.36 1.00 0.68 0.53 -0.16 -0.13 -0.10 -0.14 -0.17 -0.16 -0.15 -0.15 -0.05 -0.16 -0.04 -0.04 -0.13 -0.12 0.23 0.30 0.31 0.18 0.33 0.17 0.20 0.22 0.28 0.32 0.32 0.15 0.27 0.32 0.31 0.36 0.26 -0.34 0.20 -0.04 0.31
Zinc 0.18 0.17 0.21 0.25 0.15 0.07 0.18 0.17 0.16 0.18 0.14 0.07 0.08 0.06 0.27 0.27 0.24 0.08 0.25 0.27 0.68 0.75 0.37 0.30 0.27 0.36 0.68 1.00 0.57 -0.14 -0.14 -0.11 -0.13 -0.16 -0.16 -0.16 -0.14 -0.05 -0.16 -0.03 -0.06 -0.13 -0.12 0.21 0.29 0.30 0.22 0.35 0.15 0.19 0.20 0.26 0.33 0.33 0.16 0.24 0.30 0.31 0.37 0.23 -0.33 0.15 -0.06 0.27
Nickel 0.16 0.14 0.18 0.22 0.13 0.06 0.16 0.15 0.12 0.18 0.12 0.08 0.09 0.05 0.25 0.25 0.21 0.07 0.21 0.26 0.57 0.60 0.29 0.23 0.23 0.29 0.53 0.57 1.00 -0.13 -0.12 -0.09 -0.12 -0.16 -0.13 -0.12 -0.12 -0.04 -0.15 -0.03 -0.05 -0.10 -0.09 0.20 0.26 0.27 0.18 0.30 0.14 0.17 0.19 0.23 0.29 0.27 0.13 0.19 0.24 0.26 0.31 0.18 -0.28 0.13 -0.06 0.23
Treasury Bonds -0.08 -0.10 -0.12 -0.14 -0.08 -0.04 -0.07 -0.06 -0.08 -0.10 -0.09 -0.05 -0.10 -0.02 -0.20 -0.17 -0.14 -0.03 -0.11 -0.18 -0.20 -0.19 -0.01 0.10 -0.08 -0.11 -0.16 -0.14 -0.13 1.00 0.85 0.66 0.93 0.61 0.56 0.46 0.81 0.09 0.54 0.04 0.54 0.33 0.33 -0.35 -0.35 -0.35 -0.12 -0.31 -0.29 -0.31 -0.33 -0.28 -0.34 -0.28 -0.09 0.04 -0.05 -0.09 -0.13 -0.01 0.17 0.15 0.31 -0.09
5 yr T-Notes US -0.07 -0.09 -0.11 -0.12 -0.08 -0.05 -0.06 -0.05 -0.06 -0.10 -0.09 -0.03 -0.11 -0.02 -0.14 -0.13 -0.10 -0.01 -0.07 -0.15 -0.17 -0.17 0.02 0.12 -0.06 -0.08 -0.13 -0.14 -0.12 0.85 1.00 0.90 0.96 0.55 0.57 0.52 0.77 0.09 0.49 0.04 0.76 0.37 0.40 -0.35 -0.35 -0.34 -0.13 -0.30 -0.31 -0.27 -0.33 -0.26 -0.32 -0.25 -0.08 0.11 0.00 -0.05 -0.09 0.04 0.11 0.21 0.34 -0.03
2 yr T-Note US -0.05 -0.07 -0.09 -0.09 -0.07 -0.04 -0.04 -0.03 -0.02 -0.08 -0.07 -0.02 -0.09 -0.02 -0.10 -0.09 -0.08 0.00 -0.04 -0.10 -0.13 -0.12 0.04 0.12 -0.05 -0.05 -0.10 -0.11 -0.09 0.66 0.90 1.00 0.81 0.45 0.50 0.51 0.64 0.07 0.39 0.04 0.85 0.38 0.42 -0.33 -0.31 -0.30 -0.12 -0.27 -0.30 -0.22 -0.30 -0.23 -0.28 -0.21 -0.07 0.15 0.05 -0.02 -0.06 0.08 0.06 0.22 0.31 0.02
10yr T-Notes -0.07 -0.09 -0.11 -0.12 -0.08 -0.04 -0.06 -0.05 -0.07 -0.10 -0.08 -0.04 -0.11 -0.02 -0.17 -0.14 -0.11 -0.02 -0.09 -0.16 -0.18 -0.17 0.01 0.12 -0.06 -0.09 -0.14 -0.13 -0.12 0.93 0.96 0.81 1.00 0.59 0.59 0.51 0.82 0.10 0.53 0.04 0.68 0.36 0.38 -0.35 -0.35 -0.35 -0.12 -0.30 -0.30 -0.28 -0.32 -0.27 -0.33 -0.26 -0.08 0.09 -0.02 -0.06 -0.10 0.02 0.13 0.20 0.34 -0.06
Euro-Bund -0.08 -0.07 -0.11 -0.11 -0.07 -0.04 -0.09 -0.06 -0.10 -0.09 -0.06 -0.06 -0.08 0.00 -0.15 -0.13 -0.10 -0.08 -0.10 -0.15 -0.20 -0.22 -0.01 0.11 -0.09 -0.10 -0.17 -0.16 -0.16 0.61 0.55 0.45 0.59 1.00 0.93 0.76 0.62 0.14 0.81 0.08 0.34 0.49 0.59 -0.30 -0.43 -0.46 -0.16 -0.40 -0.23 -0.27 -0.29 -0.25 -0.45 -0.36 -0.12 -0.02 -0.08 -0.09 -0.13 -0.04 0.17 0.11 0.33 -0.11
Euro-Bobl -0.06 -0.06 -0.10 -0.10 -0.07 -0.03 -0.10 -0.06 -0.09 -0.09 -0.07 -0.06 -0.08 0.00 -0.14 -0.12 -0.09 -0.06 -0.09 -0.15 -0.19 -0.20 0.01 0.12 -0.09 -0.08 -0.16 -0.16 -0.13 0.56 0.57 0.50 0.59 0.93 1.00 0.91 0.59 0.14 0.74 0.08 0.41 0.56 0.73 -0.31 -0.43 -0.46 -0.16 -0.41 -0.25 -0.26 -0.29 -0.25 -0.45 -0.35 -0.12 0.00 -0.05 -0.07 -0.11 -0.02 0.14 0.15 0.33 -0.09
Euro-Schatz -0.08 -0.06 -0.10 -0.11 -0.07 -0.02 -0.09 -0.06 -0.06 -0.10 -0.09 -0.06 -0.07 0.01 -0.12 -0.10 -0.08 -0.05 -0.07 -0.15 -0.17 -0.19 0.01 0.12 -0.08 -0.06 -0.15 -0.16 -0.12 0.46 0.52 0.51 0.51 0.76 0.91 1.00 0.51 0.12 0.59 0.07 0.45 0.59 0.81 -0.29 -0.41 -0.43 -0.16 -0.39 -0.24 -0.22 -0.26 -0.24 -0.42 -0.32 -0.13 0.02 -0.02 -0.06 -0.11 0.00 0.11 0.17 0.30 -0.06
Canadian Bond -0.07 -0.07 -0.09 -0.10 -0.06 -0.04 -0.05 -0.05 -0.07 -0.08 -0.05 -0.07 -0.09 -0.02 -0.15 -0.13 -0.11 -0.02 -0.09 -0.15 -0.17 -0.17 0.00 0.10 -0.06 -0.08 -0.15 -0.14 -0.12 0.81 0.77 0.64 0.82 0.62 0.59 0.51 1.00 0.10 0.55 0.05 0.54 0.34 0.38 -0.34 -0.35 -0.35 -0.11 -0.30 -0.29 -0.29 -0.32 -0.27 -0.34 -0.27 -0.09 0.06 -0.02 -0.07 -0.09 0.00 0.17 0.17 0.30 -0.06
JGB Japan -0.03 -0.02 -0.02 -0.02 -0.02 0.01 0.00 0.00 -0.01 -0.02 -0.02 -0.03 0.01 -0.01 -0.02 -0.02 -0.01 -0.14 -0.03 -0.02 -0.06 -0.06 0.00 0.03 -0.02 -0.04 -0.05 -0.05 -0.04 0.09 0.09 0.07 0.10 0.14 0.14 0.12 0.10 1.00 0.14 0.38 0.06 0.15 0.12 -0.06 -0.09 -0.09 -0.19 -0.10 -0.05 -0.04 -0.06 -0.06 -0.10 -0.11 -0.35 0.03 0.01 -0.06 -0.08 0.00 0.03 0.06 0.08 0.00
Gilts UK -0.06 -0.06 -0.12 -0.13 -0.08 -0.05 -0.08 -0.05 -0.09 -0.08 -0.07 -0.06 -0.10 -0.01 -0.14 -0.12 -0.09 -0.11 -0.11 -0.14 -0.19 -0.21 0.00 0.12 -0.07 -0.09 -0.16 -0.16 -0.15 0.54 0.49 0.39 0.53 0.81 0.74 0.59 0.55 0.14 1.00 0.07 0.28 0.44 0.49 -0.27 -0.38 -0.40 -0.18 -0.37 -0.20 -0.24 -0.26 -0.24 -0.41 -0.33 -0.16 0.02 -0.05 -0.08 -0.12 -0.10 0.16 0.12 0.33 -0.08
Euroyen -0.01 -0.01 -0.02 0.00 -0.01 0.00 0.00 -0.01 -0.03 0.01 -0.01 -0.02 -0.01 0.00 -0.03 -0.01 -0.02 -0.05 -0.01 -0.05 -0.03 -0.02 -0.01 -0.01 0.00 -0.02 -0.04 -0.03 -0.03 0.04 0.04 0.04 0.04 0.08 0.08 0.07 0.05 0.38 0.07 1.00 0.17 0.30 0.25 -0.06 -0.06 -0.06 -0.09 -0.07 -0.05 -0.04 -0.06 -0.07 -0.06 -0.08 -0.17 0.00 0.00 -0.04 -0.06 -0.02 0.03 0.01 0.00 -0.03
Eurodollar -0.01 -0.04 -0.05 -0.04 -0.04 -0.05 -0.01 -0.01 -0.01 -0.06 -0.05 -0.01 -0.07 -0.01 -0.05 -0.03 -0.03 0.02 -0.01 -0.06 -0.06 -0.06 0.06 0.10 -0.01 0.00 -0.04 -0.06 -0.05 0.54 0.76 0.85 0.68 0.34 0.41 0.45 0.54 0.06 0.28 0.17 1.00 0.41 0.48 -0.23 -0.23 -0.21 -0.06 -0.18 -0.23 -0.12 -0.21 -0.17 -0.19 -0.10 -0.03 0.20 0.11 0.03 0.02 0.13 -0.01 0.24 0.26 0.07
Euroswiss -0.05 -0.06 -0.09 -0.08 -0.07 -0.05 -0.04 -0.05 -0.05 -0.07 -0.06 -0.02 -0.08 -0.01 -0.08 -0.08 -0.06 -0.04 -0.06 -0.11 -0.14 -0.15 -0.01 0.07 -0.07 -0.06 -0.13 -0.13 -0.10 0.33 0.37 0.38 0.36 0.49 0.56 0.59 0.34 0.15 0.44 0.30 0.41 1.00 0.69 -0.24 -0.33 -0.33 -0.16 -0.32 -0.20 -0.18 -0.22 -0.20 -0.35 -0.24 -0.17 0.00 -0.05 -0.08 -0.11 -0.03 0.12 0.13 0.21 -0.06
Euribor -0.07 -0.06 -0.09 -0.08 -0.07 -0.04 -0.06 -0.04 -0.05 -0.07 -0.09 -0.04 -0.06 0.00 -0.08 -0.07 -0.05 -0.02 -0.04 -0.12 -0.14 -0.15 0.00 0.08 -0.06 -0.04 -0.12 -0.12 -0.09 0.33 0.40 0.42 0.38 0.59 0.73 0.81 0.38 0.12 0.49 0.25 0.48 0.69 1.00 -0.20 -0.31 -0.32 -0.14 -0.31 -0.18 -0.14 -0.18 -0.19 -0.33 -0.21 -0.15 0.02 -0.01 -0.03 -0.06 0.01 0.06 0.14 0.22 -0.03
SP500 E-Mini 0.14 0.13 0.15 0.20 0.10 0.04 0.11 0.12 0.10 0.17 0.09 0.08 0.12 0.04 0.23 0.23 0.19 0.04 0.13 0.26 0.28 0.28 0.09 -0.02 0.12 0.19 0.23 0.21 0.20 -0.35 -0.35 -0.33 -0.35 -0.30 -0.31 -0.29 -0.34 -0.06 -0.27 -0.06 -0.23 -0.24 -0.20 1.00 0.63 0.61 0.25 0.56 0.84 0.76 0.93 0.73 0.58 0.49 0.16 0.09 0.17 0.26 0.31 0.12 -0.28 -0.06 -0.22 0.22
DAX 30 0.13 0.13 0.17 0.20 0.13 0.04 0.12 0.13 0.11 0.16 0.10 0.08 0.14 0.04 0.19 0.18 0.15 0.07 0.15 0.22 0.36 0.38 0.13 -0.02 0.14 0.21 0.30 0.29 0.26 -0.35 -0.35 -0.31 -0.35 -0.43 -0.43 -0.41 -0.35 -0.09 -0.38 -0.06 -0.23 -0.33 -0.31 0.63 1.00 0.94 0.35 0.81 0.52 0.42 0.59 0.51 0.88 0.64 0.26 0.04 0.16 0.26 0.32 0.10 -0.29 -0.09 -0.26 0.23
Eurostoxx 0.13 0.13 0.17 0.20 0.13 0.06 0.13 0.13 0.12 0.17 0.10 0.09 0.14 0.03 0.20 0.19 0.15 0.09 0.16 0.23 0.37 0.39 0.13 -0.02 0.14 0.22 0.31 0.30 0.27 -0.35 -0.34 -0.30 -0.35 -0.46 -0.46 -0.43 -0.35 -0.09 -0.40 -0.06 -0.21 -0.33 -0.32 0.61 0.94 1.00 0.35 0.86 0.48 0.41 0.57 0.51 0.94 0.65 0.26 0.05 0.19 0.27 0.33 0.11 -0.31 -0.09 -0.28 0.23
Hang Seng 0.08 0.06 0.13 0.19 0.09 0.01 0.08 0.11 0.12 0.09 0.11 0.07 0.08 0.03 0.15 0.16 0.13 0.23 0.14 0.18 0.25 0.26 0.17 0.06 0.15 0.18 0.18 0.22 0.18 -0.12 -0.13 -0.12 -0.12 -0.16 -0.16 -0.16 -0.11 -0.19 -0.18 -0.09 -0.06 -0.16 -0.14 0.25 0.35 0.35 1.00 0.40 0.19 0.19 0.23 0.27 0.38 0.34 0.56 0.10 0.19 0.27 0.34 0.15 -0.21 0.00 -0.15 0.23
FTSE 100 UK 0.16 0.15 0.20 0.25 0.15 0.06 0.15 0.13 0.11 0.18 0.13 0.10 0.14 0.04 0.25 0.25 0.20 0.11 0.21 0.28 0.40 0.43 0.18 0.04 0.16 0.26 0.33 0.35 0.30 -0.31 -0.30 -0.27 -0.30 -0.40 -0.41 -0.39 -0.30 -0.10 -0.37 -0.07 -0.18 -0.32 -0.31 0.56 0.81 0.86 0.40 1.00 0.41 0.42 0.52 0.51 0.89 0.68 0.31 0.10 0.24 0.33 0.40 0.10 -0.34 -0.06 -0.28 0.26
Nasdaq 100 Mini 0.10 0.10 0.11 0.14 0.08 0.01 0.08 0.07 0.06 0.13 0.07 0.06 0.12 0.02 0.13 0.13 0.11 0.01 0.08 0.16 0.21 0.20 0.04 -0.04 0.08 0.13 0.17 0.15 0.14 -0.29 -0.31 -0.30 -0.30 -0.23 -0.25 -0.24 -0.29 -0.05 -0.20 -0.05 -0.23 -0.20 -0.18 0.84 0.52 0.48 0.19 0.41 1.00 0.55 0.71 0.60 0.44 0.34 0.12 0.03 0.09 0.19 0.21 0.06 -0.19 -0.08 -0.15 0.15
Russel 2000 E-Mini 0.12 0.13 0.14 0.19 0.09 0.02 0.11 0.12 0.11 0.16 0.07 0.06 0.10 0.03 0.23 0.24 0.21 0.04 0.15 0.26 0.23 0.24 0.11 0.01 0.13 0.20 0.20 0.19 0.17 -0.31 -0.27 -0.22 -0.28 -0.27 -0.26 -0.22 -0.29 -0.04 -0.24 -0.04 -0.12 -0.18 -0.14 0.76 0.42 0.41 0.19 0.42 0.55 1.00 0.75 0.60 0.43 0.50 0.09 0.15 0.20 0.27 0.29 0.16 -0.28 0.00 -0.21 0.26
Dow Jones 0.11 0.11 0.13 0.18 0.09 0.03 0.08 0.11 0.09 0.15 0.07 0.08 0.11 0.03 0.19 0.19 0.16 0.03 0.11 0.23 0.26 0.26 0.08 -0.03 0.11 0.17 0.22 0.20 0.19 -0.33 -0.33 -0.30 -0.32 -0.29 -0.29 -0.26 -0.32 -0.06 -0.26 -0.06 -0.21 -0.22 -0.18 0.93 0.59 0.57 0.23 0.52 0.71 0.75 1.00 0.66 0.54 0.49 0.14 0.08 0.16 0.24 0.28 0.11 -0.26 -0.06 -0.22 0.20
TSE Toronto 0.18 0.17 0.20 0.24 0.15 0.05 0.13 0.14 0.13 0.18 0.16 0.10 0.10 0.10 0.33 0.33 0.28 0.08 0.19 0.35 0.33 0.33 0.23 0.14 0.20 0.27 0.28 0.26 0.23 -0.28 -0.26 -0.23 -0.27 -0.25 -0.25 -0.24 -0.27 -0.06 -0.24 -0.07 -0.17 -0.20 -0.19 0.73 0.51 0.51 0.27 0.51 0.60 0.60 0.66 1.00 0.51 0.44 0.22 0.13 0.22 0.27 0.32 0.18 -0.24 0.01 -0.16 0.24
CAC 40 France 0.13 0.13 0.18 0.22 0.13 0.06 0.13 0.13 0.13 0.17 0.11 0.08 0.14 0.04 0.22 0.22 0.18 0.08 0.17 0.25 0.38 0.41 0.15 0.00 0.16 0.23 0.32 0.33 0.29 -0.34 -0.32 -0.28 -0.33 -0.45 -0.45 -0.42 -0.34 -0.10 -0.41 -0.06 -0.19 -0.35 -0.33 0.58 0.88 0.94 0.38 0.89 0.44 0.43 0.54 0.51 1.00 0.69 0.30 0.07 0.21 0.30 0.36 0.13 -0.33 -0.08 -0.28 0.25
OMX 30 Stockholm 0.15 0.13 0.20 0.24 0.15 0.04 0.14 0.14 0.14 0.17 0.13 0.11 0.12 0.04 0.25 0.25 0.21 0.11 0.21 0.28 0.38 0.41 0.19 0.07 0.18 0.27 0.32 0.33 0.27 -0.28 -0.25 -0.21 -0.26 -0.36 -0.35 -0.32 -0.27 -0.11 -0.33 -0.08 -0.10 -0.24 -0.21 0.49 0.64 0.65 0.34 0.68 0.34 0.50 0.49 0.44 0.69 1.00 0.26 0.21 0.32 0.36 0.42 0.22 -0.38 0.04 -0.25 0.34
NIKKEI 225 0.05 0.05 0.08 0.12 0.07 0.02 0.08 0.07 0.07 0.05 0.06 0.07 0.04 0.03 0.10 0.12 0.10 0.33 0.09 0.13 0.18 0.18 0.12 0.05 0.13 0.15 0.15 0.16 0.13 -0.09 -0.08 -0.07 -0.08 -0.12 -0.12 -0.13 -0.09 -0.35 -0.16 -0.17 -0.03 -0.17 -0.15 0.16 0.26 0.26 0.56 0.31 0.12 0.09 0.14 0.22 0.30 0.26 1.00 0.06 0.12 0.20 0.26 0.11 -0.15 -0.01 -0.18 0.11
Euro 0.17 0.16 0.17 0.20 0.13 0.00 0.13 0.15 0.21 0.17 0.09 0.06 0.05 0.07 0.23 0.23 0.20 0.05 0.20 0.19 0.29 0.28 0.40 0.42 0.24 0.28 0.27 0.24 0.19 0.04 0.11 0.15 0.09 -0.02 0.00 0.02 0.06 0.03 0.02 0.00 0.20 0.00 0.02 0.09 0.04 0.05 0.10 0.10 0.03 0.15 0.08 0.13 0.07 0.21 0.06 1.00 0.78 0.56 0.58 0.66 -0.48 0.76 0.29 0.57
Norwegian Krone 0.20 0.20 0.22 0.26 0.16 0.01 0.15 0.17 0.22 0.20 0.13 0.05 0.08 0.07 0.32 0.31 0.26 0.12 0.29 0.28 0.35 0.35 0.43 0.41 0.28 0.32 0.32 0.30 0.24 -0.05 0.00 0.05 -0.02 -0.08 -0.05 -0.02 -0.02 0.01 -0.05 0.00 0.11 -0.05 -0.01 0.17 0.16 0.19 0.19 0.24 0.09 0.20 0.16 0.22 0.21 0.32 0.12 0.78 1.00 0.57 0.60 0.61 -0.52 0.60 0.17 0.56
New Zealand Dollar 0.18 0.18 0.19 0.24 0.15 0.01 0.17 0.19 0.22 0.17 0.11 0.07 0.09 0.07 0.25 0.26 0.22 0.11 0.23 0.23 0.38 0.38 0.40 0.35 0.29 0.32 0.31 0.31 0.26 -0.09 -0.05 -0.02 -0.06 -0.09 -0.07 -0.06 -0.07 -0.06 -0.08 -0.04 0.03 -0.08 -0.03 0.26 0.26 0.27 0.27 0.33 0.19 0.27 0.24 0.27 0.30 0.36 0.20 0.56 0.57 1.00 0.82 0.54 -0.56 0.40 0.07 0.56
Australian Dollar 0.21 0.20 0.25 0.30 0.19 0.02 0.20 0.20 0.23 0.21 0.15 0.09 0.11 0.09 0.32 0.32 0.28 0.12 0.27 0.31 0.45 0.45 0.43 0.37 0.33 0.36 0.36 0.37 0.31 -0.13 -0.09 -0.06 -0.10 -0.13 -0.11 -0.11 -0.09 -0.08 -0.12 -0.06 0.02 -0.11 -0.06 0.31 0.32 0.33 0.34 0.40 0.21 0.29 0.28 0.32 0.36 0.42 0.26 0.58 0.60 0.82 1.00 0.54 -0.62 0.40 0.06 0.59
British Pound 0.16 0.15 0.17 0.21 0.12 0.02 0.13 0.15 0.24 0.15 0.10 0.03 0.08 0.06 0.22 0.24 0.20 0.10 0.20 0.21 0.29 0.28 0.37 0.36 0.23 0.25 0.26 0.23 0.18 -0.01 0.04 0.08 0.02 -0.04 -0.02 0.00 0.00 0.00 -0.10 -0.02 0.13 -0.03 0.01 0.12 0.10 0.11 0.15 0.10 0.06 0.16 0.11 0.18 0.13 0.22 0.11 0.66 0.61 0.54 0.54 1.00 -0.46 0.51 0.18 0.48
Canadian Dollar -0.20 -0.20 -0.22 -0.28 -0.17 -0.03 -0.15 -0.17 -0.20 -0.20 -0.06 -0.09 -0.09 -0.10 -0.34 -0.34 -0.30 -0.11 -0.31 -0.31 -0.38 -0.39 -0.39 -0.34 -0.27 -0.33 -0.34 -0.33 -0.28 0.17 0.11 0.06 0.13 0.17 0.14 0.11 0.17 0.03 0.16 0.03 -0.01 0.12 0.06 -0.28 -0.29 -0.31 -0.21 -0.34 -0.19 -0.28 -0.26 -0.24 -0.33 -0.38 -0.15 -0.48 -0.52 -0.56 -0.62 -0.46 1.00 -0.33 -0.03 -0.48
Swiss Franc 0.11 0.12 0.11 0.13 0.08 -0.02 0.09 0.08 0.14 0.11 0.05 0.03 0.01 0.06 0.13 0.14 0.13 0.04 0.16 0.10 0.20 0.18 0.35 0.41 0.20 0.22 0.20 0.15 0.13 0.15 0.21 0.22 0.20 0.11 0.15 0.17 0.17 0.06 0.12 0.01 0.24 0.13 0.14 -0.06 -0.09 -0.09 0.00 -0.06 -0.08 0.00 -0.06 0.01 -0.08 0.04 -0.01 0.76 0.60 0.40 0.40 0.51 -0.33 1.00 0.39 0.45
Japanese Yen -0.02 0.00 -0.01 -0.05 0.01 -0.03 -0.04 0.00 0.01 -0.01 -0.02 -0.03 -0.07 0.01 -0.06 -0.05 -0.03 -0.13 -0.03 -0.08 -0.08 -0.07 0.14 0.23 0.03 0.03 -0.04 -0.06 -0.06 0.31 0.34 0.31 0.34 0.33 0.33 0.30 0.30 0.08 0.33 0.00 0.26 0.21 0.22 -0.22 -0.26 -0.28 -0.15 -0.28 -0.15 -0.21 -0.22 -0.16 -0.28 -0.25 -0.18 0.29 0.17 0.07 0.06 0.18 -0.03 0.39 1.00 0.27
Singapore Dollar 0.17 0.16 0.21 0.23 0.16 0.01 0.16 0.16 0.19 0.17 0.12 0.07 0.09 0.05 0.25 0.24 0.21 0.05 0.21 0.22 0.32 0.33 0.37 0.36 0.27 0.31 0.31 0.27 0.23 -0.09 -0.03 0.02 -0.06 -0.11 -0.09 -0.06 -0.06 0.00 -0.08 -0.03 0.07 -0.06 -0.03 0.22 0.23 0.23 0.23 0.26 0.15 0.26 0.20 0.24 0.25 0.34 0.11 0.57 0.56 0.56 0.59 0.48 -0.48 0.45 0.27 1.00
<!--/html_preserve-->

+ +

We see quite high correlations among some of the futures. Does it make sense? Why? Do you see some negative correlations? Do those make sense?

+ +

Given such high correlations, we can try to see whether there are some "principal components" (see reading on dimensionality reduction). This analysis can also indicate whether all futures (the global economy!) are driven by some common "factors" (let's call them "risk factors").

+ +
Variance_Explained_Table_results<-PCA(futures_data, graph=FALSE)
+Variance_Explained_Table<-Variance_Explained_Table_results$eig
+colnames(Variance_Explained_Table)<-c("Eigenvalue", 
+  "Pct of explained variance", "Cumulative pct of explained variance")
+
+ +

<!--html_preserve-->

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Eigenvalue Pct of explained variance Cumulative pct of explained variance
comp 1 14.04 21.94 21.94
comp 2 7.84 12.25 34.19
comp 3 3.52 5.50 39.69
comp 4 3.05 4.77 44.46
comp 5 2.63 4.11 48.57
comp 6 2.38 3.72 52.29
comp 7 2.14 3.34 55.64
comp 8 1.70 2.65 58.29
comp 9 1.46 2.28 60.57
comp 10 1.31 2.04 62.61
comp 11 1.18 1.84 64.45
comp 12 1.14 1.79 66.24
comp 13 1.00 1.56 67.80
comp 14 1.00 1.56 69.36
comp 15 0.98 1.53 70.89
comp 16 0.94 1.47 72.37
comp 17 0.90 1.41 73.78
comp 18 0.87 1.36 75.14
comp 19 0.84 1.32 76.46
comp 20 0.82 1.29 77.75
comp 21 0.79 1.23 78.98
comp 22 0.78 1.22 80.20
comp 23 0.76 1.19 81.39
comp 24 0.70 1.09 82.48
comp 25 0.63 0.98 83.46
comp 26 0.60 0.93 84.40
comp 27 0.59 0.92 85.32
comp 28 0.55 0.86 86.18
comp 29 0.53 0.83 87.01
comp 30 0.51 0.80 87.81
comp 31 0.50 0.78 88.59
comp 32 0.49 0.76 89.35
comp 33 0.45 0.70 90.06
comp 34 0.43 0.67 90.73
comp 35 0.39 0.62 91.34
comp 36 0.38 0.60 91.94
comp 37 0.37 0.57 92.52
comp 38 0.36 0.56 93.07
comp 39 0.35 0.55 93.62
comp 40 0.34 0.53 94.15
comp 41 0.33 0.51 94.67
comp 42 0.32 0.51 95.18
comp 43 0.31 0.48 95.65
comp 44 0.30 0.46 96.12
comp 45 0.29 0.45 96.56
comp 46 0.23 0.36 96.92
comp 47 0.21 0.32 97.24
comp 48 0.20 0.31 97.56
comp 49 0.19 0.30 97.85
comp 50 0.18 0.27 98.13
comp 51 0.16 0.24 98.37
comp 52 0.15 0.24 98.61
comp 53 0.14 0.23 98.84
comp 54 0.13 0.21 99.04
comp 55 0.11 0.16 99.21
comp 56 0.09 0.14 99.35
comp 57 0.09 0.13 99.49
comp 58 0.08 0.13 99.62
comp 59 0.08 0.12 99.74
comp 60 0.06 0.09 99.83
comp 61 0.04 0.06 99.89
comp 62 0.03 0.05 99.94
comp 63 0.02 0.03 99.97
comp 64 0.02 0.03 100.00
<!--/html_preserve-->

+ +

Here is the scree plot (see Sessions 3-4 readings):

+ +
eigenvalues  <- Variance_Explained_Table[, "Eigenvalue"]
+
+ +
## Error in loadNamespace(name): there is no package called 'webshot'
+
+ +

Let's now see how the 20 first (rotated) principal components look like. Let's also use the rotated factors (note that these are not really the "principal component", as explained in the reading on dimensionality reduction) and not show any numbers less than 0.3 in absolute value, to avoid cluttering.

+ +
corused = cor(futures_data[, apply(futures_data != 0, 2, sum) > 10, drop = F])
+Rotated_Results <- principal(corused, nfactors = 20, rotate = "varimax", score = TRUE)
+Rotated_Factors <- round(Rotated_Results$loadings, 2)
+Rotated_Factors <- as.data.frame(unclass(Rotated_Factors))
+colnames(Rotated_Factors) <- paste("comp", 1:ncol(Rotated_Factors), sep = " ")
+
+sorted_rows <- sort(Rotated_Factors[, 1], decreasing = TRUE, index.return = TRUE)$ix
+Rotated_Factors <- Rotated_Factors[sorted_rows, ]
+Rotated_Factors[abs(Rotated_Factors) < 0.3] <- NA
+
+ +

<!--html_preserve-->

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
comp 1 comp 2 comp 3 comp 4 comp 5 comp 6 comp 7 comp 8 comp 9 comp 10 comp 11 comp 12 comp 13 comp 14 comp 15 comp 16 comp 17 comp 18 comp 19 comp 20
5 yr T-Notes US 0.93
10yr T-Notes 0.93
Treasury Bonds 0.86
2 yr T-Note US 0.85
Canadian Bond 0.79
Eurodollar 0.74 -0.45
Euro-Bund 0.43 0.67 0.44
Euro-Bobl 0.41 0.79
Gilts UK 0.39 0.55 0.47
Euro-Schatz 0.34 0.83
Japanese Yen 0.33 0.36
Euribor 0.87
Euroswiss 0.72
Swiss Franc 0.74
Euro 0.87
Gold 0.34 0.74
Canadian Dollar -0.61
JGB Japan 0.75
British Pound 0.74
Silver 0.32 0.73
Norwegian Krone 0.79
Kerosene 0.87
Sugar 0.67
Coffee 0.64
Orange Juice 0.98
Natural Gas 0.91
Euroyen 0.83
Singapore Dollar 0.70
Corn 0.72
Canola 0.77
NIKKEI 225 0.78
Soybean Meal 0.82
Lean Hoggs 0.99
Gas Oil 0.65 0.40
Platinum 0.69
Soybeans 0.90
Cocoa 0.87
Heating Oil 0.89
Hang Seng 0.78
New Zealand Dollar 0.73
Wheat 0.59 0.36
Soybean Oil 0.74
Brent Crude 0.90
Palladium 0.66
Aluminium 0.77
Zinc 0.81
Nickel 0.72
Gasoline 0.72
Copper LDN 0.84
Australian Dollar 0.72
Cotton 0.73
Lumber 0.98
Crude Oil 0.88
Copper NY 0.79
TSE Toronto 0.71
OMX 30 Stockholm 0.62
FTSE 100 UK 0.81
Russel 2000 E-Mini 0.79
CAC 40 France 0.85
DAX 30 0.82 0.34
Eurostoxx 0.85 0.30
Nasdaq 100 Mini 0.80
Dow Jones 0.85
SP500 E-Mini 0.30 0.89
<!--/html_preserve-->

+ +

Questions

+ +
    +
  1. How many principal components ("factors") do we need to explain at least 50% of the variance in this data?
  2. +
  3. What are the highest weights (in absolute value) of the first principal component portfolio above on the 64 futures?
  4. +
  5. Can we interpret the first 10 components? How would you call these factors?
  6. +
  7. Can you now generate the principal components and scree plot using only: a) the pre-crisis bull market years (e.g. only using the data between November 1, 2002, and October 1, 2007)? b) the financial crisis years (e.g. only using the data between October 1, 2007 and March 1, 2009), (Hint: you can select subsets of the data using for example the command crisis_data = futures_data[ as.Date(rownames(futures_data)) > "2007-10-01" & as.Date(rownames(futures_data)) < "2009-03-01" , ])
  8. +
  9. Based on your analysis in question 3, please discuss any differences you observe about the futures returns during bull and bear markets. What implications may these results have? What do the results imply about how assets are correlated during bear years compared to bull years?
  10. +
+ +

Answers

+ +

*1. We need to select 6 components to explain more than 50 percent of the data +
+*2. 5 and 10 years T-notes in US. both with 0.93 in rotated factors in component 1 +* +*3. First ten components explain 62.61 percent of the data. I would call these factors +comp 1: Low risk long term or risk free investments +comp 2: develop nations currencies and gold +comp3 : Stock price market index +comp4: Stock price market index 2 +comp5: European futures +comp6: oil +comp7: metals +comp8: agrilcultural commodities +comp9: precious metals +comp10:asian stock index

+ +

*4.Correlations between these two periods change as well as number of factors that explain more than 50% of the data. During Financial Crisis there was a negative correlation between food commodities and financial securities. Whereas bull market there was a very minimal correlation between commodities and stock market

+ +

*Financial Crisis

+ +

<!--html_preserve-->

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Corn Wheat Soybeans Soybean Oil Soybean Meal Lean Hoggs Sugar Coffee Cocoa Cotton Canola Orange Juice Lumber Natural Gas Crude Oil Brent Crude Heating Oil Kerosene Gas Oil Gasoline Copper NY Copper LDN Silver Gold Platinum Palladium Aluminium Zinc Nickel Treasury Bonds 5 yr T-Notes US 2 yr T-Note US 10yr T-Notes Euro-Bund Euro-Bobl Euro-Schatz Canadian Bond JGB Japan Gilts UK Euroyen Eurodollar Euroswiss Euribor SP500 E-Mini DAX 30 Eurostoxx Hang Seng FTSE 100 UK Nasdaq 100 Mini Russel 2000 E-Mini Dow Jones TSE Toronto CAC 40 France OMX 30 Stockholm NIKKEI 225 Euro Norwegian Krone New Zealand Dollar Australian Dollar British Pound Canadian Dollar Swiss Franc Japanese Yen Singapore Dollar
Corn 1.00 0.60 0.74 0.69 0.67 0.04 0.44 0.43 0.37 0.46 0.58 0.14 0.08 0.31 0.49 0.50 0.48 0.22 0.37 0.46 0.47 0.45 0.42 0.30 0.19 0.38 0.39 0.31 0.36 -0.20 -0.18 -0.12 -0.15 -0.21 -0.19 -0.20 -0.17 -0.08 -0.19 -0.02 -0.05 -0.19 -0.19 0.20 0.33 0.35 0.17 0.36 0.17 0.13 0.15 0.31 0.33 0.29 0.20 0.36 0.41 0.39 0.42 0.31 -0.38 0.22 -0.19 0.32
Wheat 0.60 1.00 0.56 0.54 0.51 0.12 0.38 0.42 0.34 0.43 0.47 0.09 0.10 0.17 0.37 0.39 0.35 0.08 0.23 0.35 0.38 0.38 0.36 0.27 0.15 0.28 0.30 0.27 0.28 -0.22 -0.19 -0.14 -0.19 -0.15 -0.14 -0.14 -0.15 -0.08 -0.13 -0.05 -0.09 -0.14 -0.14 0.21 0.26 0.27 0.10 0.29 0.18 0.17 0.15 0.27 0.27 0.23 0.12 0.26 0.33 0.34 0.33 0.22 -0.34 0.14 -0.12 0.24
Soybeans 0.74 0.56 1.00 0.87 0.89 0.10 0.45 0.44 0.36 0.48 0.75 0.14 0.13 0.27 0.49 0.53 0.51 0.16 0.36 0.49 0.45 0.43 0.46 0.31 0.21 0.41 0.38 0.34 0.36 -0.23 -0.22 -0.16 -0.21 -0.19 -0.17 -0.18 -0.13 -0.06 -0.21 -0.02 -0.12 -0.18 -0.17 0.21 0.28 0.30 0.17 0.33 0.17 0.14 0.16 0.32 0.30 0.27 0.14 0.31 0.39 0.35 0.39 0.29 -0.35 0.21 -0.11 0.32
Soybean Oil 0.69 0.54 0.87 1.00 0.66 0.11 0.47 0.46 0.40 0.51 0.74 0.18 0.20 0.30 0.60 0.63 0.61 0.25 0.47 0.59 0.55 0.52 0.49 0.37 0.25 0.45 0.44 0.37 0.41 -0.26 -0.25 -0.18 -0.23 -0.21 -0.21 -0.23 -0.20 -0.09 -0.25 -0.04 -0.12 -0.20 -0.18 0.32 0.38 0.41 0.31 0.43 0.26 0.23 0.27 0.41 0.41 0.36 0.23 0.35 0.44 0.46 0.51 0.36 -0.44 0.19 -0.18 0.37
Soybean Meal 0.67 0.51 0.89 0.66 1.00 0.09 0.39 0.40 0.29 0.39 0.66 0.13 0.11 0.24 0.32 0.36 0.34 0.08 0.22 0.33 0.36 0.33 0.39 0.22 0.15 0.31 0.31 0.26 0.28 -0.18 -0.18 -0.12 -0.16 -0.14 -0.12 -0.13 -0.09 -0.09 -0.16 -0.05 -0.12 -0.16 -0.15 0.09 0.18 0.21 0.11 0.23 0.09 0.03 0.05 0.23 0.21 0.20 0.14 0.27 0.30 0.31 0.32 0.23 -0.28 0.17 -0.07 0.27
Lean Hoggs 0.04 0.12 0.10 0.11 0.09 1.00 0.07 0.09 0.04 0.02 0.08 0.10 0.07 0.02 0.14 0.15 0.14 0.00 0.09 0.16 0.11 0.10 0.07 0.05 0.13 0.07 0.11 0.12 0.14 -0.10 -0.10 -0.05 -0.09 0.00 0.00 0.00 -0.08 0.06 0.02 0.00 -0.08 0.03 -0.02 0.06 0.09 0.09 0.06 0.09 0.04 0.06 0.05 0.10 0.09 0.10 0.02 -0.04 0.02 -0.03 -0.02 -0.02 0.01 -0.07 0.00 -0.03
Sugar 0.44 0.38 0.45 0.47 0.39 0.07 1.00 0.49 0.39 0.44 0.41 0.13 0.11 0.27 0.40 0.39 0.36 0.11 0.32 0.38 0.43 0.41 0.37 0.28 0.18 0.35 0.35 0.26 0.30 -0.15 -0.13 -0.08 -0.13 -0.14 -0.16 -0.18 -0.10 -0.05 -0.15 -0.02 -0.06 -0.15 -0.15 0.17 0.30 0.30 0.15 0.30 0.14 0.10 0.13 0.25 0.27 0.25 0.14 0.28 0.33 0.35 0.38 0.27 -0.41 0.15 -0.19 0.29
Coffee 0.43 0.42 0.44 0.46 0.40 0.09 0.49 1.00 0.41 0.45 0.40 0.12 0.12 0.23 0.35 0.38 0.33 0.12 0.28 0.33 0.41 0.39 0.33 0.19 0.18 0.38 0.34 0.28 0.31 -0.18 -0.16 -0.10 -0.17 -0.24 -0.25 -0.25 -0.18 -0.14 -0.22 -0.09 -0.05 -0.20 -0.20 0.22 0.32 0.32 0.17 0.34 0.17 0.19 0.17 0.27 0.32 0.31 0.16 0.27 0.35 0.37 0.39 0.27 -0.33 0.13 -0.18 0.32
Cocoa 0.37 0.34 0.36 0.40 0.29 0.04 0.39 0.41 1.00 0.28 0.26 0.09 0.03 0.21 0.34 0.31 0.29 0.13 0.26 0.28 0.33 0.33 0.43 0.34 0.21 0.36 0.27 0.24 0.23 -0.14 -0.08 -0.02 -0.09 -0.13 -0.10 -0.07 -0.09 -0.07 -0.12 -0.07 0.00 -0.06 -0.08 0.16 0.21 0.21 0.18 0.23 0.13 0.12 0.11 0.26 0.20 0.16 0.18 0.39 0.42 0.38 0.38 0.38 -0.33 0.27 -0.03 0.33
Cotton 0.46 0.43 0.48 0.51 0.39 0.02 0.44 0.45 0.28 1.00 0.45 0.13 0.09 0.25 0.36 0.41 0.39 0.05 0.30 0.37 0.42 0.43 0.30 0.22 0.13 0.30 0.38 0.30 0.35 -0.16 -0.16 -0.12 -0.15 -0.15 -0.18 -0.22 -0.14 -0.04 -0.17 0.03 -0.11 -0.19 -0.18 0.26 0.32 0.32 0.09 0.32 0.23 0.21 0.21 0.28 0.30 0.30 0.09 0.27 0.32 0.34 0.37 0.24 -0.33 0.16 -0.14 0.29
Canola 0.58 0.47 0.75 0.74 0.66 0.08 0.41 0.40 0.26 0.45 1.00 0.13 0.13 0.22 0.36 0.41 0.38 0.15 0.28 0.40 0.33 0.32 0.37 0.26 0.21 0.37 0.31 0.26 0.27 -0.20 -0.21 -0.14 -0.20 -0.16 -0.17 -0.21 -0.15 -0.11 -0.20 -0.01 -0.13 -0.16 -0.21 0.12 0.18 0.21 0.16 0.26 0.10 0.06 0.08 0.30 0.22 0.21 0.13 0.20 0.27 0.30 0.33 0.19 -0.20 0.10 -0.12 0.24
Orange Juice 0.14 0.09 0.14 0.18 0.13 0.10 0.13 0.12 0.09 0.13 0.13 1.00 0.08 0.17 0.19 0.17 0.18 0.14 0.16 0.19 0.13 0.13 0.14 0.06 0.04 0.11 0.15 0.11 0.13 -0.12 -0.09 -0.08 -0.10 -0.08 -0.10 -0.12 -0.13 -0.08 -0.09 -0.12 -0.09 -0.12 -0.13 0.09 0.16 0.17 0.14 0.17 0.09 0.02 0.07 0.14 0.15 0.18 0.17 0.05 0.05 0.05 0.11 0.02 -0.10 -0.02 -0.05 0.06
Lumber 0.08 0.10 0.13 0.20 0.11 0.07 0.11 0.12 0.03 0.09 0.13 0.08 1.00 0.06 0.12 0.12 0.17 0.16 0.14 0.11 0.23 0.21 0.10 0.01 -0.01 0.10 0.22 0.13 0.12 -0.14 -0.19 -0.16 -0.17 -0.10 -0.09 -0.08 -0.15 -0.10 -0.15 -0.04 -0.15 -0.09 -0.04 0.14 0.20 0.20 0.16 0.20 0.14 0.10 0.13 0.13 0.19 0.22 0.17 0.13 0.16 0.22 0.25 0.17 -0.17 0.06 -0.15 0.20
Natural Gas 0.31 0.17 0.27 0.30 0.24 0.02 0.27 0.23 0.21 0.25 0.22 0.17 0.06 1.00 0.38 0.38 0.41 0.11 0.29 0.35 0.23 0.24 0.23 0.15 0.12 0.18 0.26 0.11 0.17 -0.11 -0.08 -0.06 -0.08 -0.06 -0.04 -0.07 -0.10 -0.11 -0.09 -0.08 -0.07 -0.14 -0.13 0.12 0.18 0.16 0.13 0.16 0.10 0.06 0.09 0.21 0.15 0.13 0.15 0.19 0.16 0.24 0.26 0.20 -0.22 0.14 -0.09 0.15
Crude Oil 0.49 0.37 0.49 0.60 0.32 0.14 0.40 0.35 0.34 0.36 0.36 0.19 0.12 0.38 1.00 0.90 0.83 0.14 0.54 0.83 0.52 0.50 0.40 0.35 0.17 0.34 0.42 0.35 0.43 -0.36 -0.26 -0.17 -0.28 -0.28 -0.25 -0.24 -0.24 -0.07 -0.33 -0.11 -0.15 -0.23 -0.21 0.27 0.35 0.36 0.26 0.40 0.19 0.15 0.21 0.40 0.35 0.29 0.20 0.31 0.43 0.34 0.42 0.30 -0.40 0.15 -0.18 0.27
Brent Crude 0.50 0.39 0.53 0.63 0.36 0.15 0.39 0.38 0.31 0.41 0.41 0.17 0.12 0.38 0.90 1.00 0.91 0.15 0.57 0.90 0.54 0.53 0.43 0.35 0.17 0.35 0.45 0.38 0.45 -0.27 -0.23 -0.15 -0.21 -0.26 -0.24 -0.24 -0.20 -0.03 -0.28 -0.08 -0.12 -0.21 -0.22 0.30 0.38 0.39 0.26 0.43 0.21 0.19 0.24 0.45 0.39 0.31 0.21 0.31 0.41 0.36 0.43 0.35 -0.41 0.16 -0.17 0.30
Heating Oil 0.48 0.35 0.51 0.61 0.34 0.14 0.36 0.33 0.29 0.39 0.38 0.18 0.17 0.41 0.83 0.91 1.00 0.19 0.62 0.87 0.52 0.48 0.37 0.31 0.20 0.33 0.44 0.36 0.39 -0.27 -0.23 -0.18 -0.22 -0.23 -0.22 -0.21 -0.23 -0.04 -0.26 -0.08 -0.13 -0.20 -0.21 0.31 0.35 0.36 0.23 0.38 0.23 0.19 0.25 0.43 0.35 0.31 0.19 0.31 0.40 0.33 0.41 0.34 -0.39 0.17 -0.14 0.27
Kerosene 0.22 0.08 0.16 0.25 0.08 0.00 0.11 0.12 0.13 0.05 0.15 0.14 0.16 0.11 0.14 0.15 0.19 1.00 0.37 0.15 0.15 0.15 0.20 0.07 0.19 0.26 0.17 0.01 0.03 -0.01 0.01 0.01 0.00 -0.15 -0.15 -0.12 0.01 -0.25 -0.17 -0.16 0.05 -0.13 -0.11 0.05 0.20 0.20 0.38 0.23 -0.01 -0.01 0.04 0.16 0.19 0.18 0.51 0.23 0.23 0.29 0.31 0.29 -0.21 0.13 -0.16 0.24
Gas Oil 0.37 0.23 0.36 0.47 0.22 0.09 0.32 0.28 0.26 0.30 0.28 0.16 0.14 0.29 0.54 0.57 0.62 0.37 1.00 0.53 0.49 0.49 0.35 0.26 0.18 0.31 0.43 0.36 0.32 -0.19 -0.13 -0.08 -0.14 -0.27 -0.25 -0.23 -0.17 -0.09 -0.29 -0.05 -0.08 -0.21 -0.21 0.12 0.30 0.31 0.22 0.35 0.08 0.07 0.08 0.22 0.31 0.25 0.16 0.34 0.42 0.32 0.39 0.36 -0.39 0.24 -0.14 0.26
Gasoline 0.46 0.35 0.49 0.59 0.33 0.16 0.38 0.33 0.28 0.37 0.40 0.19 0.11 0.35 0.83 0.90 0.87 0.15 0.53 1.00 0.53 0.52 0.33 0.28 0.17 0.31 0.41 0.37 0.45 -0.28 -0.26 -0.20 -0.23 -0.25 -0.25 -0.27 -0.24 -0.09 -0.26 -0.10 -0.15 -0.22 -0.24 0.33 0.38 0.39 0.27 0.42 0.25 0.21 0.27 0.46 0.39 0.33 0.23 0.22 0.33 0.29 0.39 0.28 -0.35 0.07 -0.18 0.20
Copper NY 0.47 0.38 0.45 0.55 0.36 0.11 0.43 0.41 0.33 0.42 0.33 0.13 0.23 0.23 0.52 0.54 0.52 0.15 0.49 0.53 1.00 0.94 0.45 0.34 0.26 0.40 0.65 0.64 0.61 -0.27 -0.25 -0.19 -0.24 -0.30 -0.31 -0.33 -0.21 -0.14 -0.31 -0.06 -0.07 -0.24 -0.28 0.26 0.50 0.52 0.30 0.54 0.20 0.14 0.21 0.29 0.52 0.46 0.31 0.37 0.49 0.50 0.60 0.39 -0.48 0.21 -0.29 0.33
Copper LDN 0.45 0.38 0.43 0.52 0.33 0.10 0.41 0.39 0.33 0.43 0.32 0.13 0.21 0.24 0.50 0.53 0.48 0.15 0.49 0.52 0.94 1.00 0.42 0.29 0.27 0.38 0.68 0.70 0.65 -0.25 -0.25 -0.20 -0.23 -0.33 -0.35 -0.38 -0.23 -0.12 -0.34 -0.05 -0.08 -0.29 -0.32 0.29 0.53 0.57 0.30 0.58 0.22 0.18 0.24 0.34 0.57 0.48 0.31 0.38 0.50 0.50 0.61 0.38 -0.47 0.21 -0.29 0.32
Silver 0.42 0.36 0.46 0.49 0.39 0.07 0.37 0.33 0.43 0.30 0.37 0.14 0.10 0.23 0.40 0.43 0.37 0.20 0.35 0.33 0.45 0.42 1.00 0.78 0.29 0.59 0.34 0.32 0.30 -0.02 -0.01 0.03 0.01 -0.03 -0.03 -0.03 0.01 -0.04 -0.06 -0.03 0.05 -0.08 -0.10 0.10 0.22 0.24 0.23 0.28 0.04 0.04 0.06 0.26 0.26 0.19 0.25 0.55 0.56 0.46 0.45 0.45 -0.43 0.45 0.06 0.46
Gold 0.30 0.27 0.31 0.37 0.22 0.05 0.28 0.19 0.34 0.22 0.26 0.06 0.01 0.15 0.35 0.35 0.31 0.07 0.26 0.28 0.34 0.29 0.78 1.00 0.28 0.47 0.26 0.23 0.23 0.08 0.10 0.13 0.10 0.06 0.07 0.07 0.07 0.01 0.05 -0.04 0.11 0.04 -0.01 -0.07 0.01 0.00 0.05 0.03 -0.10 -0.09 -0.08 0.12 0.00 -0.02 0.07 0.48 0.47 0.28 0.21 0.35 -0.31 0.45 0.15 0.40
Platinum 0.19 0.15 0.21 0.25 0.15 0.13 0.18 0.18 0.21 0.13 0.21 0.04 -0.01 0.12 0.17 0.17 0.20 0.19 0.18 0.17 0.26 0.27 0.29 0.28 1.00 0.37 0.28 0.27 0.22 -0.10 -0.12 -0.11 -0.10 -0.12 -0.14 -0.15 -0.07 -0.07 -0.13 -0.06 -0.07 -0.15 -0.17 0.05 0.13 0.13 0.17 0.15 0.00 0.01 0.03 0.16 0.13 0.12 0.20 0.23 0.23 0.24 0.27 0.22 -0.19 0.15 -0.06 0.13
Palladium 0.38 0.28 0.41 0.45 0.31 0.07 0.35 0.38 0.36 0.30 0.37 0.11 0.10 0.18 0.34 0.35 0.33 0.26 0.31 0.31 0.40 0.38 0.59 0.47 0.37 1.00 0.38 0.35 0.35 -0.12 -0.10 -0.06 -0.09 -0.16 -0.15 -0.15 -0.04 -0.19 -0.18 -0.10 -0.02 -0.17 -0.15 0.18 0.33 0.31 0.25 0.34 0.11 0.14 0.13 0.32 0.31 0.29 0.28 0.36 0.36 0.36 0.40 0.28 -0.34 0.28 -0.04 0.32
Aluminium 0.39 0.30 0.38 0.44 0.31 0.11 0.35 0.34 0.27 0.38 0.31 0.15 0.22 0.26 0.42 0.45 0.44 0.17 0.43 0.41 0.65 0.68 0.34 0.26 0.28 0.38 1.00 0.63 0.55 -0.19 -0.18 -0.13 -0.18 -0.23 -0.22 -0.24 -0.18 -0.13 -0.24 -0.12 -0.03 -0.25 -0.23 0.18 0.37 0.37 0.20 0.38 0.14 0.09 0.15 0.27 0.37 0.31 0.23 0.39 0.43 0.40 0.47 0.34 -0.41 0.30 -0.20 0.32
Zinc 0.31 0.27 0.34 0.37 0.26 0.12 0.26 0.28 0.24 0.30 0.26 0.11 0.13 0.11 0.35 0.38 0.36 0.01 0.36 0.37 0.64 0.70 0.32 0.23 0.27 0.35 0.63 1.00 0.59 -0.12 -0.15 -0.15 -0.12 -0.22 -0.27 -0.31 -0.20 -0.09 -0.23 -0.03 -0.08 -0.22 -0.27 0.17 0.34 0.39 0.19 0.43 0.13 0.11 0.12 0.22 0.41 0.36 0.19 0.30 0.37 0.35 0.42 0.25 -0.37 0.17 -0.17 0.19
Nickel 0.36 0.28 0.36 0.41 0.28 0.14 0.30 0.31 0.23 0.35 0.27 0.13 0.12 0.17 0.43 0.45 0.39 0.03 0.32 0.45 0.61 0.65 0.30 0.23 0.22 0.35 0.55 0.59 1.00 -0.22 -0.20 -0.14 -0.20 -0.23 -0.19 -0.20 -0.24 -0.07 -0.23 -0.02 -0.08 -0.15 -0.17 0.20 0.35 0.36 0.16 0.39 0.15 0.12 0.16 0.24 0.37 0.28 0.15 0.21 0.31 0.30 0.38 0.18 -0.38 0.09 -0.17 0.19
Treasury Bonds -0.20 -0.22 -0.23 -0.26 -0.18 -0.10 -0.15 -0.18 -0.14 -0.16 -0.20 -0.12 -0.14 -0.11 -0.36 -0.27 -0.27 -0.01 -0.19 -0.28 -0.27 -0.25 -0.02 0.08 -0.10 -0.12 -0.19 -0.12 -0.22 1.00 0.83 0.69 0.92 0.54 0.47 0.40 0.73 0.14 0.48 0.07 0.61 0.39 0.30 -0.38 -0.31 -0.31 -0.12 -0.31 -0.36 -0.35 -0.32 -0.36 -0.33 -0.31 -0.07 0.04 -0.17 -0.20 -0.24 -0.15 0.23 0.22 0.44 -0.09
5 yr T-Notes US -0.18 -0.19 -0.22 -0.25 -0.18 -0.10 -0.13 -0.16 -0.08 -0.16 -0.21 -0.09 -0.19 -0.08 -0.26 -0.23 -0.23 0.01 -0.13 -0.26 -0.25 -0.25 -0.01 0.10 -0.12 -0.10 -0.18 -0.15 -0.20 0.83 1.00 0.92 0.94 0.54 0.55 0.51 0.72 0.12 0.49 0.06 0.79 0.42 0.37 -0.46 -0.37 -0.36 -0.16 -0.36 -0.44 -0.41 -0.40 -0.36 -0.37 -0.35 -0.04 0.02 -0.16 -0.19 -0.25 -0.10 0.20 0.24 0.50 -0.12
2 yr T-Note US -0.12 -0.14 -0.16 -0.18 -0.12 -0.05 -0.08 -0.10 -0.02 -0.12 -0.14 -0.08 -0.16 -0.06 -0.17 -0.15 -0.18 0.01 -0.08 -0.20 -0.19 -0.20 0.03 0.13 -0.11 -0.06 -0.13 -0.15 -0.14 0.69 0.92 1.00 0.83 0.49 0.54 0.53 0.64 0.09 0.45 0.06 0.83 0.43 0.40 -0.46 -0.35 -0.35 -0.14 -0.35 -0.44 -0.39 -0.40 -0.31 -0.36 -0.33 -0.02 0.04 -0.07 -0.14 -0.21 -0.05 0.16 0.26 0.49 -0.06
10yr T-Notes -0.15 -0.19 -0.21 -0.23 -0.16 -0.09 -0.13 -0.17 -0.09 -0.15 -0.20 -0.10 -0.17 -0.08 -0.28 -0.21 -0.22 0.00 -0.14 -0.23 -0.24 -0.23 0.01 0.10 -0.10 -0.09 -0.18 -0.12 -0.20 0.92 0.94 0.83 1.00 0.55 0.52 0.46 0.76 0.14 0.49 0.07 0.73 0.39 0.33 -0.40 -0.32 -0.31 -0.15 -0.31 -0.39 -0.36 -0.34 -0.34 -0.33 -0.31 -0.05 0.04 -0.17 -0.18 -0.22 -0.11 0.20 0.25 0.50 -0.11
Euro-Bund -0.21 -0.15 -0.19 -0.21 -0.14 0.00 -0.14 -0.24 -0.13 -0.15 -0.16 -0.08 -0.10 -0.06 -0.28 -0.26 -0.23 -0.15 -0.27 -0.25 -0.30 -0.33 -0.03 0.06 -0.12 -0.16 -0.23 -0.22 -0.23 0.54 0.54 0.49 0.55 1.00 0.92 0.79 0.59 0.19 0.85 0.13 0.39 0.60 0.65 -0.29 -0.44 -0.47 -0.17 -0.47 -0.25 -0.28 -0.25 -0.29 -0.48 -0.44 -0.13 -0.08 -0.18 -0.24 -0.26 -0.24 0.27 0.14 0.50 -0.12
Euro-Bobl -0.19 -0.14 -0.17 -0.21 -0.12 0.00 -0.16 -0.25 -0.10 -0.18 -0.17 -0.10 -0.09 -0.04 -0.25 -0.24 -0.22 -0.15 -0.25 -0.25 -0.31 -0.35 -0.03 0.07 -0.14 -0.15 -0.22 -0.27 -0.19 0.47 0.55 0.54 0.52 0.92 1.00 0.94 0.57 0.18 0.78 0.15 0.45 0.68 0.78 -0.34 -0.49 -0.52 -0.21 -0.52 -0.29 -0.32 -0.29 -0.31 -0.53 -0.50 -0.17 -0.10 -0.19 -0.26 -0.29 -0.23 0.25 0.16 0.51 -0.14
Euro-Schatz -0.20 -0.14 -0.18 -0.23 -0.13 0.00 -0.18 -0.25 -0.07 -0.22 -0.21 -0.12 -0.08 -0.07 -0.24 -0.24 -0.21 -0.12 -0.23 -0.27 -0.33 -0.38 -0.03 0.07 -0.15 -0.15 -0.24 -0.31 -0.20 0.40 0.51 0.53 0.46 0.79 0.94 1.00 0.50 0.17 0.67 0.14 0.45 0.71 0.83 -0.34 -0.52 -0.55 -0.22 -0.55 -0.27 -0.29 -0.28 -0.31 -0.56 -0.51 -0.20 -0.12 -0.20 -0.26 -0.33 -0.20 0.25 0.14 0.51 -0.13
Canadian Bond -0.17 -0.15 -0.13 -0.20 -0.09 -0.08 -0.10 -0.18 -0.09 -0.14 -0.15 -0.13 -0.15 -0.10 -0.24 -0.20 -0.23 0.01 -0.17 -0.24 -0.21 -0.23 0.01 0.07 -0.07 -0.04 -0.18 -0.20 -0.24 0.73 0.72 0.64 0.76 0.59 0.57 0.50 1.00 0.18 0.50 0.11 0.58 0.38 0.37 -0.37 -0.29 -0.32 -0.09 -0.32 -0.37 -0.39 -0.32 -0.35 -0.35 -0.32 -0.04 0.04 -0.15 -0.19 -0.15 -0.14 0.19 0.25 0.45 -0.04
JGB Japan -0.08 -0.08 -0.06 -0.09 -0.09 0.06 -0.05 -0.14 -0.07 -0.04 -0.11 -0.08 -0.10 -0.11 -0.07 -0.03 -0.04 -0.25 -0.09 -0.09 -0.14 -0.12 -0.04 0.01 -0.07 -0.19 -0.13 -0.09 -0.07 0.14 0.12 0.09 0.14 0.19 0.18 0.17 0.18 1.00 0.17 0.61 0.08 0.21 0.18 -0.08 -0.18 -0.17 -0.34 -0.19 -0.06 -0.05 -0.07 -0.08 -0.17 -0.20 -0.46 -0.04 -0.06 -0.20 -0.20 -0.11 0.09 0.05 0.22 -0.06
Gilts UK -0.19 -0.13 -0.21 -0.25 -0.16 0.02 -0.15 -0.22 -0.12 -0.17 -0.20 -0.09 -0.15 -0.09 -0.33 -0.28 -0.26 -0.17 -0.29 -0.26 -0.31 -0.34 -0.06 0.05 -0.13 -0.18 -0.24 -0.23 -0.23 0.48 0.49 0.45 0.49 0.85 0.78 0.67 0.50 0.17 1.00 0.12 0.33 0.52 0.51 -0.26 -0.39 -0.41 -0.21 -0.41 -0.22 -0.24 -0.23 -0.28 -0.42 -0.37 -0.14 -0.08 -0.17 -0.22 -0.26 -0.26 0.27 0.11 0.46 -0.13
Euroyen -0.02 -0.05 -0.02 -0.04 -0.05 0.00 -0.02 -0.09 -0.07 0.03 -0.01 -0.12 -0.04 -0.08 -0.11 -0.08 -0.08 -0.16 -0.05 -0.10 -0.06 -0.05 -0.03 -0.04 -0.06 -0.10 -0.12 -0.03 -0.02 0.07 0.06 0.06 0.07 0.13 0.15 0.14 0.11 0.61 0.12 1.00 0.09 0.24 0.18 -0.07 -0.12 -0.10 -0.22 -0.10 -0.03 -0.02 -0.07 -0.10 -0.11 -0.14 -0.34 -0.07 -0.02 -0.10 -0.13 -0.07 0.07 0.02 0.09 -0.04
Eurodollar -0.05 -0.09 -0.12 -0.12 -0.12 -0.08 -0.06 -0.05 0.00 -0.11 -0.13 -0.09 -0.15 -0.07 -0.15 -0.12 -0.13 0.05 -0.08 -0.15 -0.07 -0.08 0.05 0.11 -0.07 -0.02 -0.03 -0.08 -0.08 0.61 0.79 0.83 0.73 0.39 0.45 0.45 0.58 0.08 0.33 0.09 1.00 0.45 0.46 -0.34 -0.20 -0.19 -0.07 -0.21 -0.35 -0.30 -0.30 -0.27 -0.22 -0.19 0.03 0.10 -0.03 -0.05 -0.11 0.03 0.05 0.28 0.40 0.01
Euroswiss -0.19 -0.14 -0.18 -0.20 -0.16 0.03 -0.15 -0.20 -0.06 -0.19 -0.16 -0.12 -0.09 -0.14 -0.23 -0.21 -0.20 -0.13 -0.21 -0.22 -0.24 -0.29 -0.08 0.04 -0.15 -0.17 -0.25 -0.22 -0.15 0.39 0.42 0.43 0.39 0.60 0.68 0.71 0.38 0.21 0.52 0.24 0.45 1.00 0.75 -0.35 -0.44 -0.45 -0.19 -0.44 -0.28 -0.28 -0.31 -0.36 -0.47 -0.41 -0.21 -0.13 -0.20 -0.28 -0.32 -0.20 0.27 0.04 0.41 -0.13
Euribor -0.19 -0.14 -0.17 -0.18 -0.15 -0.02 -0.15 -0.20 -0.08 -0.18 -0.21 -0.13 -0.04 -0.13 -0.21 -0.22 -0.21 -0.11 -0.21 -0.24 -0.28 -0.32 -0.10 -0.01 -0.17 -0.15 -0.23 -0.27 -0.17 0.30 0.37 0.40 0.33 0.65 0.78 0.83 0.37 0.18 0.51 0.18 0.46 0.75 1.00 -0.22 -0.38 -0.40 -0.19 -0.41 -0.18 -0.18 -0.18 -0.27 -0.42 -0.37 -0.22 -0.16 -0.20 -0.22 -0.29 -0.18 0.20 0.05 0.38 -0.13
SP500 E-Mini 0.20 0.21 0.21 0.32 0.09 0.06 0.17 0.22 0.16 0.26 0.12 0.09 0.14 0.12 0.27 0.30 0.31 0.05 0.12 0.33 0.26 0.29 0.10 -0.07 0.05 0.18 0.18 0.17 0.20 -0.38 -0.46 -0.46 -0.40 -0.29 -0.34 -0.34 -0.37 -0.08 -0.26 -0.07 -0.34 -0.35 -0.22 1.00 0.64 0.59 0.32 0.57 0.92 0.91 0.97 0.74 0.59 0.57 0.16 0.10 0.15 0.33 0.38 0.16 -0.28 -0.15 -0.40 0.23
DAX 30 0.33 0.26 0.28 0.38 0.18 0.09 0.30 0.32 0.21 0.32 0.18 0.16 0.20 0.18 0.35 0.38 0.35 0.20 0.30 0.38 0.50 0.53 0.22 0.01 0.13 0.33 0.37 0.34 0.35 -0.31 -0.37 -0.35 -0.32 -0.44 -0.49 -0.52 -0.29 -0.18 -0.39 -0.12 -0.20 -0.44 -0.38 0.64 1.00 0.96 0.44 0.90 0.54 0.51 0.60 0.48 0.92 0.84 0.42 0.29 0.40 0.50 0.57 0.30 -0.44 0.01 -0.49 0.38
Eurostoxx 0.35 0.27 0.30 0.41 0.21 0.09 0.30 0.32 0.21 0.32 0.21 0.17 0.20 0.16 0.36 0.39 0.36 0.20 0.31 0.39 0.52 0.57 0.24 0.00 0.13 0.31 0.37 0.39 0.36 -0.31 -0.36 -0.35 -0.31 -0.47 -0.52 -0.55 -0.32 -0.17 -0.41 -0.10 -0.19 -0.45 -0.40 0.59 0.96 1.00 0.43 0.94 0.47 0.47 0.53 0.48 0.97 0.86 0.45 0.31 0.41 0.55 0.60 0.35 -0.49 0.00 -0.50 0.37
Hang Seng 0.17 0.10 0.17 0.31 0.11 0.06 0.15 0.17 0.18 0.09 0.16 0.14 0.16 0.13 0.26 0.26 0.23 0.38 0.22 0.27 0.30 0.30 0.23 0.05 0.17 0.25 0.20 0.19 0.16 -0.12 -0.16 -0.14 -0.15 -0.17 -0.21 -0.22 -0.09 -0.34 -0.21 -0.22 -0.07 -0.19 -0.19 0.32 0.44 0.43 1.00 0.46 0.24 0.22 0.31 0.31 0.45 0.42 0.67 0.20 0.27 0.39 0.47 0.25 -0.28 0.01 -0.30 0.32
FTSE 100 UK 0.36 0.29 0.33 0.43 0.23 0.09 0.30 0.34 0.23 0.32 0.26 0.17 0.20 0.16 0.40 0.43 0.38 0.23 0.35 0.42 0.54 0.58 0.28 0.03 0.15 0.34 0.38 0.43 0.39 -0.31 -0.36 -0.35 -0.31 -0.47 -0.52 -0.55 -0.32 -0.19 -0.41 -0.10 -0.21 -0.44 -0.41 0.57 0.90 0.94 0.46 1.00 0.45 0.44 0.51 0.52 0.94 0.85 0.47 0.32 0.44 0.55 0.63 0.31 -0.49 0.01 -0.49 0.39
Nasdaq 100 Mini 0.17 0.18 0.17 0.26 0.09 0.04 0.14 0.17 0.13 0.23 0.10 0.09 0.14 0.10 0.19 0.21 0.23 -0.01 0.08 0.25 0.20 0.22 0.04 -0.10 0.00 0.11 0.14 0.13 0.15 -0.36 -0.44 -0.44 -0.39 -0.25 -0.29 -0.27 -0.37 -0.06 -0.22 -0.03 -0.35 -0.28 -0.18 0.92 0.54 0.47 0.24 0.45 1.00 0.87 0.91 0.64 0.47 0.49 0.04 0.06 0.09 0.26 0.30 0.12 -0.23 -0.17 -0.37 0.15
Russel 2000 E-Mini 0.13 0.17 0.14 0.23 0.03 0.06 0.10 0.19 0.12 0.21 0.06 0.02 0.10 0.06 0.15 0.19 0.19 -0.01 0.07 0.21 0.14 0.18 0.04 -0.09 0.01 0.14 0.09 0.11 0.12 -0.35 -0.41 -0.39 -0.36 -0.28 -0.32 -0.29 -0.39 -0.05 -0.24 -0.02 -0.30 -0.28 -0.18 0.91 0.51 0.47 0.22 0.44 0.87 1.00 0.87 0.70 0.47 0.48 0.03 0.03 0.07 0.26 0.24 0.12 -0.21 -0.16 -0.35 0.19
Dow Jones 0.15 0.15 0.16 0.27 0.05 0.05 0.13 0.17 0.11 0.21 0.08 0.07 0.13 0.09 0.21 0.24 0.25 0.04 0.08 0.27 0.21 0.24 0.06 -0.08 0.03 0.13 0.15 0.12 0.16 -0.32 -0.40 -0.40 -0.34 -0.25 -0.29 -0.28 -0.32 -0.07 -0.23 -0.07 -0.30 -0.31 -0.18 0.97 0.60 0.53 0.31 0.51 0.91 0.87 1.00 0.68 0.52 0.53 0.15 0.06 0.09 0.27 0.32 0.11 -0.22 -0.17 -0.37 0.18
TSE Toronto 0.31 0.27 0.32 0.41 0.23 0.10 0.25 0.27 0.26 0.28 0.30 0.14 0.13 0.21 0.40 0.45 0.43 0.16 0.22 0.46 0.29 0.34 0.26 0.12 0.16 0.32 0.27 0.22 0.24 -0.36 -0.36 -0.31 -0.34 -0.29 -0.31 -0.31 -0.35 -0.08 -0.28 -0.10 -0.27 -0.36 -0.27 0.74 0.48 0.48 0.31 0.52 0.64 0.70 0.68 1.00 0.50 0.47 0.30 0.19 0.28 0.38 0.41 0.25 -0.31 -0.01 -0.32 0.29
CAC 40 France 0.33 0.27 0.30 0.41 0.21 0.09 0.27 0.32 0.20 0.30 0.22 0.15 0.19 0.15 0.35 0.39 0.35 0.19 0.31 0.39 0.52 0.57 0.26 0.00 0.13 0.31 0.37 0.41 0.37 -0.33 -0.37 -0.36 -0.33 -0.48 -0.53 -0.56 -0.35 -0.17 -0.42 -0.11 -0.22 -0.47 -0.42 0.59 0.92 0.97 0.45 0.94 0.47 0.47 0.52 0.50 1.00 0.87 0.44 0.29 0.41 0.55 0.60 0.36 -0.49 -0.01 -0.50 0.35
OMX 30 Stockholm 0.29 0.23 0.27 0.36 0.20 0.10 0.25 0.31 0.16 0.30 0.21 0.18 0.22 0.13 0.29 0.31 0.31 0.18 0.25 0.33 0.46 0.48 0.19 -0.02 0.12 0.29 0.31 0.36 0.28 -0.31 -0.35 -0.33 -0.31 -0.44 -0.50 -0.51 -0.32 -0.20 -0.37 -0.14 -0.19 -0.41 -0.37 0.57 0.84 0.86 0.42 0.85 0.49 0.48 0.53 0.47 0.87 1.00 0.39 0.31 0.37 0.52 0.56 0.32 -0.46 0.00 -0.48 0.36
NIKKEI 225 0.20 0.12 0.14 0.23 0.14 0.02 0.14 0.16 0.18 0.09 0.13 0.17 0.17 0.15 0.20 0.21 0.19 0.51 0.16 0.23 0.31 0.31 0.25 0.07 0.20 0.28 0.23 0.19 0.15 -0.07 -0.04 -0.02 -0.05 -0.13 -0.17 -0.20 -0.04 -0.46 -0.14 -0.34 0.03 -0.21 -0.22 0.16 0.42 0.45 0.67 0.47 0.04 0.03 0.15 0.30 0.44 0.39 1.00 0.28 0.26 0.44 0.52 0.32 -0.32 0.08 -0.29 0.30
Euro 0.36 0.26 0.31 0.35 0.27 -0.04 0.28 0.27 0.39 0.27 0.20 0.05 0.13 0.19 0.31 0.31 0.31 0.23 0.34 0.22 0.37 0.38 0.55 0.48 0.23 0.36 0.39 0.30 0.21 0.04 0.02 0.04 0.04 -0.08 -0.10 -0.12 0.04 -0.04 -0.08 -0.07 0.10 -0.13 -0.16 0.10 0.29 0.31 0.20 0.32 0.06 0.03 0.06 0.19 0.29 0.31 0.28 1.00 0.80 0.64 0.61 0.62 -0.56 0.82 0.11 0.69
Norwegian Krone 0.41 0.33 0.39 0.44 0.30 0.02 0.33 0.35 0.42 0.32 0.27 0.05 0.16 0.16 0.43 0.41 0.40 0.23 0.42 0.33 0.49 0.50 0.56 0.47 0.23 0.36 0.43 0.37 0.31 -0.17 -0.16 -0.07 -0.17 -0.18 -0.19 -0.20 -0.15 -0.06 -0.17 -0.02 -0.03 -0.20 -0.20 0.15 0.40 0.41 0.27 0.44 0.09 0.07 0.09 0.28 0.41 0.37 0.26 0.80 1.00 0.64 0.60 0.59 -0.57 0.60 -0.04 0.63
New Zealand Dollar 0.39 0.34 0.35 0.46 0.31 -0.03 0.35 0.37 0.38 0.34 0.30 0.05 0.22 0.24 0.34 0.36 0.33 0.29 0.32 0.29 0.50 0.50 0.46 0.28 0.24 0.36 0.40 0.35 0.30 -0.20 -0.19 -0.14 -0.18 -0.24 -0.26 -0.26 -0.19 -0.20 -0.22 -0.10 -0.05 -0.28 -0.22 0.33 0.50 0.55 0.39 0.55 0.26 0.26 0.27 0.38 0.55 0.52 0.44 0.64 0.64 1.00 0.86 0.60 -0.65 0.38 -0.32 0.61
Australian Dollar 0.42 0.33 0.39 0.51 0.32 -0.02 0.38 0.39 0.38 0.37 0.33 0.11 0.25 0.26 0.42 0.43 0.41 0.31 0.39 0.39 0.60 0.61 0.45 0.21 0.27 0.40 0.47 0.42 0.38 -0.24 -0.25 -0.21 -0.22 -0.26 -0.29 -0.33 -0.15 -0.20 -0.26 -0.13 -0.11 -0.32 -0.29 0.38 0.57 0.60 0.47 0.63 0.30 0.24 0.32 0.41 0.60 0.56 0.52 0.61 0.60 0.86 1.00 0.56 -0.65 0.32 -0.37 0.57
British Pound 0.31 0.22 0.29 0.36 0.23 -0.02 0.27 0.27 0.38 0.24 0.19 0.02 0.17 0.20 0.30 0.35 0.34 0.29 0.36 0.28 0.39 0.38 0.45 0.35 0.22 0.28 0.34 0.25 0.18 -0.15 -0.10 -0.05 -0.11 -0.24 -0.23 -0.20 -0.14 -0.11 -0.26 -0.07 0.03 -0.20 -0.18 0.16 0.30 0.35 0.25 0.31 0.12 0.12 0.11 0.25 0.36 0.32 0.32 0.62 0.59 0.60 0.56 1.00 -0.55 0.41 -0.15 0.46
Canadian Dollar -0.38 -0.34 -0.35 -0.44 -0.28 0.01 -0.41 -0.33 -0.33 -0.33 -0.20 -0.10 -0.17 -0.22 -0.40 -0.41 -0.39 -0.21 -0.39 -0.35 -0.48 -0.47 -0.43 -0.31 -0.19 -0.34 -0.41 -0.37 -0.38 0.23 0.20 0.16 0.20 0.27 0.25 0.25 0.19 0.09 0.27 0.07 0.05 0.27 0.20 -0.28 -0.44 -0.49 -0.28 -0.49 -0.23 -0.21 -0.22 -0.31 -0.49 -0.46 -0.32 -0.56 -0.57 -0.65 -0.65 -0.55 1.00 -0.29 0.29 -0.47
Swiss Franc 0.22 0.14 0.21 0.19 0.17 -0.07 0.15 0.13 0.27 0.16 0.10 -0.02 0.06 0.14 0.15 0.16 0.17 0.13 0.24 0.07 0.21 0.21 0.45 0.45 0.15 0.28 0.30 0.17 0.09 0.22 0.24 0.26 0.25 0.14 0.16 0.14 0.25 0.05 0.11 0.02 0.28 0.04 0.05 -0.15 0.01 0.00 0.01 0.01 -0.17 -0.16 -0.17 -0.01 -0.01 0.00 0.08 0.82 0.60 0.38 0.32 0.41 -0.29 1.00 0.44 0.53
Japanese Yen -0.19 -0.12 -0.11 -0.18 -0.07 0.00 -0.19 -0.18 -0.03 -0.14 -0.12 -0.05 -0.15 -0.09 -0.18 -0.17 -0.14 -0.16 -0.14 -0.18 -0.29 -0.29 0.06 0.15 -0.06 -0.04 -0.20 -0.17 -0.17 0.44 0.50 0.49 0.50 0.50 0.51 0.51 0.45 0.22 0.46 0.09 0.40 0.41 0.38 -0.40 -0.49 -0.50 -0.30 -0.49 -0.37 -0.35 -0.37 -0.32 -0.50 -0.48 -0.29 0.11 -0.04 -0.32 -0.37 -0.15 0.29 0.44 1.00 -0.06
Singapore Dollar 0.32 0.24 0.32 0.37 0.27 -0.03 0.29 0.32 0.33 0.29 0.24 0.06 0.20 0.15 0.27 0.30 0.27 0.24 0.26 0.20 0.33 0.32 0.46 0.40 0.13 0.32 0.32 0.19 0.19 -0.09 -0.12 -0.06 -0.11 -0.12 -0.14 -0.13 -0.04 -0.06 -0.13 -0.04 0.01 -0.13 -0.13 0.23 0.38 0.37 0.32 0.39 0.15 0.19 0.18 0.29 0.35 0.36 0.30 0.69 0.63 0.61 0.57 0.46 -0.47 0.53 -0.06 1.00
<!--/html_preserve-->

+ +

<!--html_preserve-->

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Eigenvalue Pct of explained variance Cumulative pct of explained variance
comp 1 19.06 29.78 29.78
comp 2 7.72 12.06 41.84
comp 3 3.87 6.04 47.88
comp 4 3.29 5.15 53.03
comp 5 2.45 3.83 56.85
comp 6 2.17 3.40 60.25
comp 7 2.02 3.16 63.41
comp 8 1.76 2.75 66.16
comp 9 1.48 2.32 68.47
comp 10 1.25 1.95 70.42
comp 11 1.13 1.76 72.19
comp 12 1.07 1.68 73.86
comp 13 1.01 1.57 75.44
comp 14 0.98 1.53 76.97
comp 15 0.89 1.39 78.36
comp 16 0.85 1.32 79.68
comp 17 0.77 1.20 80.88
comp 18 0.74 1.16 82.04
comp 19 0.70 1.09 83.14
comp 20 0.65 1.02 84.16
comp 21 0.63 0.98 85.14
comp 22 0.60 0.93 86.07
comp 23 0.56 0.87 86.94
comp 24 0.54 0.84 87.78
comp 25 0.50 0.78 88.56
comp 26 0.49 0.76 89.32
comp 27 0.46 0.71 90.04
comp 28 0.44 0.69 90.73
comp 29 0.43 0.68 91.41
comp 30 0.42 0.65 92.06
comp 31 0.40 0.62 92.68
comp 32 0.36 0.57 93.25
comp 33 0.34 0.54 93.79
comp 34 0.32 0.50 94.29
comp 35 0.30 0.47 94.76
comp 36 0.29 0.46 95.22
comp 37 0.28 0.43 95.65
comp 38 0.25 0.40 96.05
comp 39 0.23 0.36 96.41
comp 40 0.22 0.34 96.75
comp 41 0.21 0.32 97.07
comp 42 0.20 0.31 97.38
comp 43 0.18 0.29 97.67
comp 44 0.16 0.26 97.92
comp 45 0.15 0.23 98.16
comp 46 0.13 0.21 98.36
comp 47 0.12 0.19 98.55
comp 48 0.11 0.17 98.72
comp 49 0.11 0.17 98.89
comp 50 0.10 0.16 99.05
comp 51 0.08 0.13 99.18
comp 52 0.07 0.11 99.29
comp 53 0.07 0.11 99.40
comp 54 0.06 0.10 99.50
comp 55 0.06 0.09 99.59
comp 56 0.05 0.08 99.67
comp 57 0.05 0.07 99.74
comp 58 0.04 0.07 99.81
comp 59 0.03 0.05 99.86
comp 60 0.03 0.05 99.91
comp 61 0.02 0.03 99.94
comp 62 0.02 0.02 99.97
comp 63 0.01 0.02 99.98
comp 64 0.01 0.02 100.00
<!--/html_preserve-->

+ +
## Error in cbind(as.data.frame(eigenvalues), c(1:length(eigenvalues)), rep(1, : object 'eigenvalues1' not found
+
+ +
## Error in loadNamespace(name): there is no package called 'webshot'
+
+ +

*

+ +
    +
  • Bull period
  • +
+ +

<!--html_preserve-->

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Corn Wheat Soybeans Soybean Oil Soybean Meal Lean Hoggs Sugar Coffee Cocoa Cotton Canola Orange Juice Lumber Natural Gas Crude Oil Brent Crude Heating Oil Kerosene Gas Oil Gasoline Copper NY Copper LDN Silver Gold Platinum Palladium Aluminium Zinc Nickel Treasury Bonds 5 yr T-Notes US 2 yr T-Note US 10yr T-Notes Euro-Bund Euro-Bobl Euro-Schatz Canadian Bond JGB Japan Gilts UK Euroyen Eurodollar Euroswiss Euribor SP500 E-Mini DAX 30 Eurostoxx Hang Seng FTSE 100 UK Nasdaq 100 Mini Russel 2000 E-Mini Dow Jones TSE Toronto CAC 40 France OMX 30 Stockholm NIKKEI 225 Euro Norwegian Krone New Zealand Dollar Australian Dollar British Pound Canadian Dollar Swiss Franc Japanese Yen Singapore Dollar
Corn 1.00 0.57 0.54 0.47 0.48 -0.01 0.10 0.10 0.03 0.17 0.44 0.04 0.05 0.07 0.12 0.14 0.12 -0.05 0.07 0.12 0.09 0.09 0.17 0.16 0.01 0.09 0.11 0.10 0.03 -0.03 -0.01 -0.01 -0.02 -0.02 0.00 0.00 -0.01 -0.03 -0.02 -0.03 0.01 0.01 0.00 0.07 0.03 0.04 0.03 0.05 0.03 0.02 0.05 0.11 0.03 0.05 0.03 0.09 0.10 0.08 0.10 0.09 -0.05 0.08 0.03 0.07
Wheat 0.57 1.00 0.36 0.35 0.32 0.00 0.11 0.09 0.02 0.12 0.34 -0.02 0.03 0.01 0.11 0.11 0.10 -0.03 0.07 0.08 0.08 0.08 0.12 0.11 -0.02 0.08 0.09 0.07 0.02 -0.01 -0.01 -0.02 -0.01 -0.01 0.00 -0.01 0.01 0.02 -0.01 -0.04 -0.03 -0.04 -0.03 0.02 0.01 0.02 0.01 0.03 0.03 0.01 0.03 0.05 0.01 -0.01 0.03 0.09 0.10 0.06 0.08 0.07 -0.07 0.09 0.04 0.07
Soybeans 0.54 0.36 1.00 0.75 0.85 0.01 0.08 0.07 0.02 0.19 0.65 0.03 0.03 0.11 0.15 0.15 0.14 -0.04 0.10 0.14 0.10 0.08 0.15 0.12 0.05 0.10 0.09 0.05 0.03 -0.02 -0.03 -0.04 -0.02 -0.03 -0.03 -0.03 -0.02 0.00 -0.04 -0.03 -0.03 -0.04 -0.06 0.04 0.05 0.07 0.08 0.10 0.05 0.00 0.04 0.09 0.08 0.08 0.04 0.10 0.13 0.10 0.13 0.09 -0.08 0.09 0.02 0.09
Soybean Oil 0.47 0.35 0.75 1.00 0.51 0.01 0.10 0.09 0.02 0.23 0.65 0.04 0.04 0.10 0.16 0.16 0.15 0.00 0.11 0.20 0.13 0.12 0.18 0.17 0.06 0.10 0.13 0.08 0.03 -0.01 -0.02 -0.03 -0.01 -0.02 -0.01 -0.02 -0.01 0.02 -0.01 0.02 -0.01 -0.01 -0.01 0.02 0.01 0.04 0.09 0.10 0.01 0.00 0.02 0.08 0.06 0.08 0.03 0.13 0.18 0.10 0.13 0.11 -0.11 0.12 0.04 0.12
Soybean Meal 0.48 0.32 0.85 0.51 1.00 -0.01 0.06 0.06 0.02 0.18 0.52 0.05 0.03 0.10 0.11 0.11 0.10 -0.02 0.07 0.08 0.08 0.04 0.09 0.08 0.06 0.08 0.05 0.02 0.03 -0.02 -0.02 -0.03 -0.02 -0.03 -0.02 -0.03 -0.02 0.00 -0.05 -0.01 -0.01 -0.02 -0.06 0.05 0.07 0.08 0.07 0.08 0.07 0.01 0.04 0.10 0.07 0.08 0.03 0.08 0.09 0.07 0.11 0.07 -0.06 0.07 0.02 0.07
Lean Hoggs -0.01 0.00 0.01 0.01 -0.01 1.00 -0.04 0.03 -0.01 0.02 -0.03 -0.02 0.03 -0.01 0.02 0.02 0.00 -0.03 -0.02 0.00 0.05 0.04 0.00 0.00 -0.02 -0.01 0.04 0.04 0.06 -0.01 -0.03 -0.04 -0.02 -0.02 -0.01 0.00 0.01 -0.02 -0.02 0.02 -0.03 -0.05 -0.02 0.01 0.03 0.04 0.00 0.06 0.00 -0.01 0.02 0.04 0.04 0.04 0.02 0.00 0.02 0.00 0.02 -0.01 0.00 -0.02 -0.03 -0.01
Sugar 0.10 0.11 0.08 0.10 0.06 -0.04 1.00 0.13 0.12 0.12 0.07 0.06 0.01 0.04 0.10 0.10 0.11 0.05 0.12 0.14 0.15 0.14 0.13 0.10 0.04 0.10 0.13 0.12 0.06 0.00 0.01 0.02 0.01 -0.02 -0.02 -0.01 -0.01 0.01 0.00 -0.04 0.02 0.00 -0.01 -0.01 0.00 0.00 0.08 0.02 -0.02 0.01 -0.02 0.07 0.01 0.04 0.07 0.07 0.10 0.07 0.08 0.06 -0.02 0.07 -0.02 0.07
Coffee 0.10 0.09 0.07 0.09 0.06 0.03 0.13 1.00 0.14 0.13 0.05 0.09 0.08 0.03 0.09 0.09 0.10 0.03 0.08 0.08 0.12 0.12 0.14 0.12 0.07 0.12 0.12 0.12 0.11 0.02 -0.01 0.01 0.00 0.02 0.01 0.02 0.00 0.01 0.02 -0.02 0.00 0.00 0.00 0.09 0.08 0.07 0.12 0.06 0.10 -0.02 0.08 0.10 0.06 0.04 0.06 0.09 0.13 0.14 0.14 0.11 -0.08 0.07 0.01 0.08
Cocoa 0.03 0.02 0.02 0.02 0.02 -0.01 0.12 0.14 1.00 0.03 0.01 0.04 0.10 0.04 0.04 0.05 0.03 0.04 0.08 0.05 0.08 0.08 0.14 0.12 0.06 0.08 0.07 0.10 0.02 -0.04 -0.05 -0.04 -0.05 -0.01 -0.01 0.01 -0.04 -0.03 0.01 -0.07 -0.05 -0.01 0.00 0.04 0.02 0.02 0.10 0.00 0.01 -0.01 0.03 0.05 0.02 0.04 0.04 0.10 0.09 0.15 0.15 0.16 -0.08 0.08 0.04 0.09
Cotton 0.17 0.12 0.19 0.23 0.18 0.02 0.12 0.13 0.03 1.00 0.20 0.04 0.04 0.01 0.12 0.11 0.11 -0.02 0.10 0.09 0.13 0.10 0.14 0.14 -0.01 0.08 0.08 0.08 0.05 -0.04 -0.06 -0.06 -0.05 -0.02 -0.02 -0.02 -0.03 -0.01 0.00 0.03 -0.05 0.00 0.01 0.05 0.03 0.04 0.06 0.04 0.04 0.01 0.05 0.12 0.03 0.04 0.00 0.09 0.10 0.04 0.06 0.04 -0.08 0.07 0.00 0.01
Canola 0.44 0.34 0.65 0.65 0.52 -0.03 0.07 0.05 0.01 0.20 1.00 -0.02 0.03 0.02 0.07 0.08 0.07 -0.03 0.03 0.12 0.05 0.04 0.12 0.08 0.05 0.05 0.04 0.02 0.01 -0.06 -0.06 -0.05 -0.06 -0.05 -0.05 -0.06 -0.02 0.01 -0.04 -0.01 -0.04 -0.05 -0.07 0.02 0.03 0.06 0.06 0.10 0.02 -0.01 0.02 0.06 0.06 0.05 0.00 0.05 0.09 0.03 0.03 0.05 0.04 0.05 0.02 0.07
Orange Juice 0.04 -0.02 0.03 0.04 0.05 -0.02 0.06 0.09 0.04 0.04 -0.02 1.00 0.05 0.01 0.04 0.03 0.04 0.01 0.06 0.05 0.05 0.05 0.11 0.10 0.05 0.05 0.05 0.02 0.04 0.05 0.03 0.05 0.04 0.03 0.02 0.02 0.03 0.04 0.03 0.00 0.05 0.02 0.03 0.05 0.02 0.03 0.01 0.04 0.05 -0.01 0.05 0.10 0.01 0.03 -0.02 0.01 0.02 0.02 0.04 0.00 -0.04 0.01 0.03 0.06
Lumber 0.05 0.03 0.03 0.04 0.03 0.03 0.01 0.08 0.10 0.04 0.03 0.05 1.00 -0.07 -0.02 -0.01 0.00 0.00 0.00 0.03 0.05 0.04 0.04 0.01 0.04 0.05 0.06 0.03 0.03 -0.03 -0.06 -0.05 -0.05 -0.01 -0.01 -0.01 -0.04 0.06 0.00 0.05 -0.04 -0.03 0.01 0.06 0.06 0.08 0.05 0.06 0.06 0.00 0.06 0.05 0.07 0.06 0.01 -0.01 0.00 0.03 0.06 0.02 -0.04 -0.02 -0.06 -0.03
Natural Gas 0.07 0.01 0.11 0.10 0.10 -0.01 0.04 0.03 0.04 0.01 0.02 0.01 -0.07 1.00 0.41 0.37 0.46 0.01 0.27 0.21 0.09 0.09 0.10 0.12 0.02 0.04 0.08 0.07 0.04 0.04 0.04 0.03 0.04 0.08 0.08 0.09 0.05 -0.01 0.06 0.02 0.06 0.06 0.08 -0.01 -0.03 -0.04 -0.02 -0.01 -0.01 -0.06 -0.04 0.11 -0.02 0.00 0.04 0.06 0.04 0.02 0.08 0.04 -0.10 0.07 0.05 0.05
Crude Oil 0.12 0.11 0.15 0.16 0.11 0.02 0.10 0.09 0.04 0.12 0.07 0.04 -0.02 0.41 1.00 0.91 0.87 0.07 0.53 0.42 0.18 0.16 0.21 0.24 0.06 0.13 0.15 0.12 0.07 0.05 0.05 0.04 0.05 0.07 0.07 0.07 0.04 0.00 0.09 0.02 0.07 0.05 0.08 -0.09 -0.09 -0.06 0.01 -0.01 -0.11 0.02 -0.14 0.17 -0.01 0.05 0.05 0.12 0.14 0.10 0.15 0.09 -0.19 0.13 0.04 0.09
Brent Crude 0.14 0.11 0.15 0.16 0.11 0.02 0.10 0.09 0.05 0.11 0.08 0.03 -0.01 0.37 0.91 1.00 0.82 0.09 0.60 0.41 0.19 0.17 0.20 0.24 0.06 0.12 0.14 0.12 0.08 0.05 0.05 0.04 0.05 0.07 0.08 0.08 0.05 0.00 0.09 0.02 0.07 0.06 0.09 -0.09 -0.10 -0.08 0.02 -0.02 -0.11 0.02 -0.14 0.16 -0.03 0.05 0.03 0.14 0.16 0.11 0.16 0.12 -0.19 0.15 0.05 0.10
Heating Oil 0.12 0.10 0.14 0.15 0.10 0.00 0.11 0.10 0.03 0.11 0.07 0.04 0.00 0.46 0.87 0.82 1.00 0.05 0.61 0.41 0.15 0.15 0.19 0.23 0.04 0.11 0.12 0.11 0.06 0.06 0.07 0.07 0.07 0.07 0.08 0.08 0.05 0.00 0.09 -0.01 0.09 0.04 0.08 -0.08 -0.09 -0.07 0.02 -0.01 -0.10 0.02 -0.13 0.15 -0.02 0.03 0.06 0.11 0.12 0.09 0.14 0.08 -0.17 0.13 0.04 0.08
Kerosene -0.05 -0.03 -0.04 0.00 -0.02 -0.03 0.05 0.03 0.04 -0.02 -0.03 0.01 0.00 0.01 0.07 0.09 0.05 1.00 0.23 0.09 0.06 0.05 0.04 0.08 0.07 0.09 0.07 0.08 0.06 0.01 0.02 0.02 0.02 0.00 0.00 0.02 0.02 0.00 0.00 -0.04 0.02 0.02 0.02 -0.05 -0.07 -0.05 -0.02 -0.04 -0.07 -0.02 -0.07 -0.01 -0.07 0.02 0.02 0.01 0.06 0.02 -0.01 0.03 -0.07 0.02 -0.08 -0.05
Gas Oil 0.07 0.07 0.10 0.11 0.07 -0.02 0.12 0.08 0.08 0.10 0.03 0.06 0.00 0.27 0.53 0.60 0.61 0.23 1.00 0.20 0.13 0.13 0.17 0.19 0.08 0.11 0.10 0.11 0.06 0.02 0.07 0.07 0.05 0.11 0.12 0.12 0.04 0.01 0.11 -0.01 0.08 0.08 0.13 -0.09 -0.10 -0.09 -0.01 -0.05 -0.09 0.00 -0.13 0.08 -0.07 0.03 -0.01 0.11 0.16 0.14 0.14 0.09 -0.19 0.13 0.06 0.09
Gasoline 0.12 0.08 0.14 0.20 0.08 0.00 0.14 0.08 0.05 0.09 0.12 0.05 0.03 0.21 0.42 0.41 0.41 0.09 0.20 1.00 0.15 0.13 0.18 0.21 0.07 0.14 0.15 0.10 0.06 0.01 0.01 0.01 0.01 0.00 0.00 -0.01 0.00 0.03 0.01 0.00 0.01 -0.01 -0.01 0.03 0.03 0.04 0.03 0.09 -0.01 0.05 0.00 0.20 0.07 0.09 0.02 0.07 0.10 0.03 0.10 0.06 -0.11 0.05 0.00 0.05
Copper NY 0.09 0.08 0.10 0.13 0.08 0.05 0.15 0.12 0.08 0.13 0.05 0.05 0.05 0.09 0.18 0.19 0.15 0.06 0.13 0.15 1.00 0.88 0.44 0.43 0.17 0.33 0.68 0.68 0.51 -0.02 -0.04 -0.04 -0.04 -0.04 -0.03 -0.02 -0.03 -0.04 -0.04 -0.04 -0.04 -0.04 -0.06 0.15 0.19 0.21 0.18 0.25 0.09 0.05 0.14 0.25 0.23 0.23 0.15 0.18 0.17 0.20 0.26 0.17 -0.18 0.15 0.08 0.18
Copper LDN 0.09 0.08 0.08 0.12 0.04 0.04 0.14 0.12 0.08 0.10 0.04 0.05 0.04 0.09 0.16 0.17 0.15 0.05 0.13 0.13 0.88 1.00 0.41 0.41 0.18 0.32 0.74 0.75 0.54 -0.02 -0.05 -0.03 -0.04 -0.04 -0.03 -0.02 -0.03 -0.04 -0.04 -0.03 -0.04 -0.03 -0.05 0.13 0.18 0.19 0.18 0.26 0.09 0.06 0.13 0.24 0.23 0.24 0.13 0.17 0.16 0.22 0.26 0.17 -0.19 0.15 0.07 0.20
Silver 0.17 0.12 0.15 0.18 0.09 0.00 0.13 0.14 0.14 0.14 0.12 0.11 0.04 0.10 0.21 0.20 0.19 0.04 0.17 0.18 0.44 0.41 1.00 0.76 0.27 0.50 0.39 0.40 0.26 0.06 0.07 0.09 0.07 0.09 0.11 0.12 0.07 -0.02 0.07 -0.04 0.09 0.06 0.09 0.03 0.05 0.05 0.14 0.14 -0.01 0.02 0.02 0.21 0.09 0.19 0.15 0.40 0.36 0.37 0.45 0.39 -0.36 0.37 0.19 0.31
Gold 0.16 0.11 0.12 0.17 0.08 0.00 0.10 0.12 0.12 0.14 0.08 0.10 0.01 0.12 0.24 0.24 0.23 0.08 0.19 0.21 0.43 0.41 0.76 1.00 0.27 0.49 0.38 0.39 0.26 0.11 0.12 0.13 0.12 0.19 0.21 0.22 0.11 0.00 0.17 -0.04 0.12 0.12 0.17 -0.03 -0.06 -0.06 0.13 0.07 -0.08 0.02 -0.06 0.20 -0.01 0.15 0.14 0.53 0.47 0.40 0.51 0.45 -0.41 0.49 0.27 0.39
Platinum 0.01 -0.02 0.05 0.06 0.06 -0.02 0.04 0.07 0.06 -0.01 0.05 0.05 0.04 0.02 0.06 0.06 0.04 0.07 0.08 0.07 0.17 0.18 0.27 0.27 1.00 0.27 0.18 0.12 0.11 0.01 0.01 0.00 0.01 0.05 0.04 0.03 0.00 0.03 0.04 0.01 -0.01 0.02 0.04 0.00 -0.02 -0.01 0.01 0.01 -0.01 -0.01 -0.01 0.07 0.01 0.05 0.00 0.15 0.13 0.17 0.21 0.16 -0.12 0.14 0.05 0.12
Palladium 0.09 0.08 0.10 0.10 0.08 -0.01 0.10 0.12 0.08 0.08 0.05 0.05 0.05 0.04 0.13 0.12 0.11 0.09 0.11 0.14 0.33 0.32 0.50 0.49 0.27 1.00 0.33 0.31 0.22 0.01 0.01 0.03 0.01 0.08 0.10 0.11 0.03 0.01 0.07 -0.03 0.01 0.06 0.07 0.07 0.05 0.05 0.12 0.09 0.03 0.01 0.05 0.19 0.06 0.15 0.08 0.28 0.25 0.27 0.32 0.26 -0.27 0.26 0.16 0.27
Aluminium 0.11 0.09 0.09 0.13 0.05 0.04 0.13 0.12 0.07 0.08 0.04 0.05 0.06 0.08 0.15 0.14 0.12 0.07 0.10 0.15 0.68 0.74 0.39 0.38 0.18 0.33 1.00 0.69 0.48 -0.02 -0.04 -0.03 -0.03 -0.02 -0.02 -0.02 -0.02 -0.02 -0.03 -0.03 -0.02 -0.01 -0.03 0.11 0.13 0.15 0.15 0.21 0.07 0.06 0.11 0.23 0.18 0.20 0.15 0.20 0.17 0.20 0.24 0.19 -0.19 0.18 0.10 0.22
Zinc 0.10 0.07 0.05 0.08 0.02 0.04 0.12 0.12 0.10 0.08 0.02 0.02 0.03 0.07 0.12 0.12 0.11 0.08 0.11 0.10 0.68 0.75 0.40 0.39 0.12 0.31 0.69 1.00 0.53 -0.01 -0.05 -0.04 -0.03 -0.04 -0.04 -0.03 -0.02 -0.05 -0.03 -0.06 -0.04 -0.05 -0.05 0.12 0.15 0.16 0.18 0.24 0.08 0.09 0.11 0.21 0.20 0.24 0.17 0.17 0.15 0.20 0.24 0.17 -0.19 0.13 0.06 0.21
Nickel 0.03 0.02 0.03 0.03 0.03 0.06 0.06 0.11 0.02 0.05 0.01 0.04 0.03 0.04 0.07 0.08 0.06 0.06 0.06 0.06 0.51 0.54 0.26 0.26 0.11 0.22 0.48 0.53 1.00 -0.02 -0.04 -0.03 -0.04 -0.02 -0.01 0.00 -0.03 -0.02 -0.01 -0.03 -0.03 0.00 -0.01 0.13 0.12 0.13 0.13 0.18 0.09 0.10 0.11 0.20 0.15 0.15 0.11 0.13 0.10 0.15 0.19 0.11 -0.11 0.12 0.03 0.14
Treasury Bonds -0.03 -0.01 -0.02 -0.01 -0.02 -0.01 0.00 0.02 -0.04 -0.04 -0.06 0.05 -0.03 0.04 0.05 0.05 0.06 0.01 0.02 0.01 -0.02 -0.02 0.06 0.11 0.01 0.01 -0.02 -0.01 -0.02 1.00 0.92 0.80 0.96 0.65 0.63 0.57 0.82 0.09 0.55 0.02 0.74 0.36 0.43 -0.17 -0.28 -0.28 -0.05 -0.23 -0.20 -0.04 -0.19 -0.11 -0.24 -0.07 -0.06 0.29 0.23 0.10 0.15 0.24 -0.09 0.30 0.24 0.11
5 yr T-Notes US -0.01 -0.01 -0.03 -0.02 -0.02 -0.03 0.01 -0.01 -0.05 -0.06 -0.06 0.03 -0.06 0.04 0.05 0.05 0.07 0.02 0.07 0.01 -0.04 -0.05 0.07 0.12 0.01 0.01 -0.04 -0.05 -0.04 0.92 1.00 0.94 0.98 0.64 0.64 0.61 0.81 0.10 0.55 0.02 0.88 0.40 0.48 -0.21 -0.31 -0.32 -0.06 -0.25 -0.22 -0.06 -0.23 -0.13 -0.27 -0.11 -0.07 0.31 0.24 0.10 0.16 0.24 -0.09 0.34 0.28 0.11
2 yr T-Note US -0.01 -0.02 -0.04 -0.03 -0.03 -0.04 0.02 0.01 -0.04 -0.06 -0.05 0.05 -0.05 0.03 0.04 0.04 0.07 0.02 0.07 0.01 -0.04 -0.03 0.09 0.13 0.00 0.03 -0.03 -0.04 -0.03 0.80 0.94 1.00 0.89 0.58 0.60 0.59 0.75 0.10 0.51 0.01 0.92 0.39 0.46 -0.20 -0.29 -0.30 -0.06 -0.25 -0.21 -0.07 -0.22 -0.12 -0.26 -0.15 -0.06 0.30 0.24 0.10 0.15 0.24 -0.09 0.34 0.29 0.10
10yr T-Notes -0.02 -0.01 -0.02 -0.01 -0.02 -0.02 0.01 0.00 -0.05 -0.05 -0.06 0.04 -0.05 0.04 0.05 0.05 0.07 0.02 0.05 0.01 -0.04 -0.04 0.07 0.12 0.01 0.01 -0.03 -0.03 -0.04 0.96 0.98 0.89 1.00 0.67 0.65 0.61 0.83 0.11 0.57 0.02 0.83 0.40 0.47 -0.19 -0.30 -0.31 -0.07 -0.24 -0.21 -0.05 -0.21 -0.12 -0.26 -0.09 -0.07 0.31 0.24 0.11 0.16 0.24 -0.08 0.33 0.26 0.11
Euro-Bund -0.02 -0.01 -0.03 -0.02 -0.03 -0.02 -0.02 0.02 -0.01 -0.02 -0.05 0.03 -0.01 0.08 0.07 0.07 0.07 0.00 0.11 0.00 -0.04 -0.04 0.09 0.19 0.05 0.08 -0.02 -0.04 -0.02 0.65 0.64 0.58 0.67 1.00 0.96 0.88 0.65 0.16 0.82 0.06 0.55 0.55 0.72 -0.21 -0.36 -0.37 -0.13 -0.30 -0.21 -0.08 -0.22 -0.13 -0.35 -0.14 -0.12 0.37 0.27 0.15 0.22 0.27 -0.14 0.39 0.31 0.18
Euro-Bobl 0.00 0.00 -0.03 -0.01 -0.02 -0.01 -0.02 0.01 -0.01 -0.02 -0.05 0.02 -0.01 0.08 0.07 0.08 0.08 0.00 0.12 0.00 -0.03 -0.03 0.11 0.21 0.04 0.10 -0.02 -0.04 -0.01 0.63 0.64 0.60 0.65 0.96 1.00 0.95 0.63 0.15 0.78 0.06 0.58 0.59 0.79 -0.20 -0.37 -0.38 -0.13 -0.31 -0.22 -0.08 -0.22 -0.13 -0.35 -0.14 -0.11 0.40 0.30 0.17 0.24 0.28 -0.17 0.42 0.32 0.18
Euro-Schatz 0.00 -0.01 -0.03 -0.02 -0.03 0.00 -0.01 0.02 0.01 -0.02 -0.06 0.02 -0.01 0.09 0.07 0.08 0.08 0.02 0.12 -0.01 -0.02 -0.02 0.12 0.22 0.03 0.11 -0.02 -0.03 0.00 0.57 0.61 0.59 0.61 0.88 0.95 1.00 0.59 0.13 0.70 0.06 0.57 0.60 0.82 -0.20 -0.34 -0.36 -0.12 -0.30 -0.21 -0.07 -0.22 -0.12 -0.34 -0.15 -0.10 0.39 0.30 0.18 0.24 0.29 -0.17 0.41 0.30 0.17
Canadian Bond -0.01 0.01 -0.02 -0.01 -0.02 0.01 -0.01 0.00 -0.04 -0.03 -0.02 0.03 -0.04 0.05 0.04 0.05 0.05 0.02 0.04 0.00 -0.03 -0.03 0.07 0.11 0.00 0.03 -0.02 -0.02 -0.03 0.82 0.81 0.75 0.83 0.65 0.63 0.59 1.00 0.09 0.55 0.04 0.72 0.39 0.47 -0.18 -0.28 -0.29 -0.07 -0.24 -0.20 -0.07 -0.20 -0.11 -0.25 -0.10 -0.08 0.31 0.24 0.12 0.18 0.25 -0.08 0.33 0.25 0.14
JGB Japan -0.03 0.02 0.00 0.02 0.00 -0.02 0.01 0.01 -0.03 -0.01 0.01 0.04 0.06 -0.01 0.00 0.00 0.00 0.00 0.01 0.03 -0.04 -0.04 -0.02 0.00 0.03 0.01 -0.02 -0.05 -0.02 0.09 0.10 0.10 0.11 0.16 0.15 0.13 0.09 1.00 0.17 0.43 0.08 0.19 0.15 -0.09 -0.11 -0.10 -0.20 -0.11 -0.08 -0.02 -0.09 -0.12 -0.13 -0.12 -0.41 0.07 0.05 0.02 -0.04 0.05 0.01 0.09 -0.02 0.02
Gilts UK -0.02 -0.01 -0.04 -0.01 -0.05 -0.02 0.00 0.02 0.01 0.00 -0.04 0.03 0.00 0.06 0.09 0.09 0.09 0.00 0.11 0.01 -0.04 -0.04 0.07 0.17 0.04 0.07 -0.03 -0.03 -0.01 0.55 0.55 0.51 0.57 0.82 0.78 0.70 0.55 0.17 1.00 0.08 0.48 0.54 0.68 -0.19 -0.32 -0.33 -0.15 -0.30 -0.19 -0.09 -0.21 -0.14 -0.35 -0.16 -0.13 0.32 0.23 0.12 0.18 0.17 -0.12 0.33 0.27 0.16
Euroyen -0.03 -0.04 -0.03 0.02 -0.01 0.02 -0.04 -0.02 -0.07 0.03 -0.01 0.00 0.05 0.02 0.02 0.02 -0.01 -0.04 -0.01 0.00 -0.04 -0.03 -0.04 -0.04 0.01 -0.03 -0.03 -0.06 -0.03 0.02 0.02 0.01 0.02 0.06 0.06 0.06 0.04 0.43 0.08 1.00 0.16 0.34 0.30 -0.08 -0.08 -0.08 -0.13 -0.09 -0.07 -0.09 -0.09 -0.07 -0.10 -0.12 -0.22 0.01 0.02 -0.05 -0.08 -0.02 0.03 0.03 -0.05 -0.05
Eurodollar 0.01 -0.03 -0.03 -0.01 -0.01 -0.03 0.02 0.00 -0.05 -0.05 -0.04 0.05 -0.04 0.06 0.07 0.07 0.09 0.02 0.08 0.01 -0.04 -0.04 0.09 0.12 -0.01 0.01 -0.02 -0.04 -0.03 0.74 0.88 0.92 0.83 0.55 0.58 0.57 0.72 0.08 0.48 0.16 1.00 0.46 0.55 -0.19 -0.28 -0.29 -0.06 -0.23 -0.19 -0.07 -0.22 -0.11 -0.24 -0.15 -0.07 0.30 0.23 0.08 0.14 0.23 -0.07 0.34 0.30 0.11
Euroswiss 0.01 -0.04 -0.04 -0.01 -0.02 -0.05 0.00 0.00 -0.01 0.00 -0.05 0.02 -0.03 0.06 0.05 0.06 0.04 0.02 0.08 -0.01 -0.04 -0.03 0.06 0.12 0.02 0.06 -0.01 -0.05 0.00 0.36 0.40 0.39 0.40 0.55 0.59 0.60 0.39 0.19 0.54 0.34 0.46 1.00 0.74 -0.16 -0.26 -0.26 -0.16 -0.24 -0.17 -0.10 -0.18 -0.13 -0.27 -0.16 -0.18 0.23 0.16 0.09 0.12 0.13 -0.07 0.23 0.19 0.11
Euribor 0.00 -0.03 -0.06 -0.01 -0.06 -0.02 -0.01 0.00 0.00 0.01 -0.07 0.03 0.01 0.08 0.08 0.09 0.08 0.02 0.13 -0.01 -0.06 -0.05 0.09 0.17 0.04 0.07 -0.03 -0.05 -0.01 0.43 0.48 0.46 0.47 0.72 0.79 0.82 0.47 0.15 0.68 0.30 0.55 0.74 1.00 -0.16 -0.29 -0.30 -0.14 -0.27 -0.18 -0.13 -0.19 -0.11 -0.32 -0.16 -0.15 0.31 0.24 0.14 0.19 0.21 -0.12 0.34 0.25 0.14
SP500 E-Mini 0.07 0.02 0.04 0.02 0.05 0.01 -0.01 0.09 0.04 0.05 0.02 0.05 0.06 -0.01 -0.09 -0.09 -0.08 -0.05 -0.09 0.03 0.15 0.13 0.03 -0.03 0.00 0.07 0.11 0.12 0.13 -0.17 -0.21 -0.20 -0.19 -0.21 -0.20 -0.20 -0.18 -0.09 -0.19 -0.08 -0.19 -0.16 -0.16 1.00 0.62 0.63 0.13 0.46 0.87 0.18 0.96 0.64 0.52 0.28 0.09 -0.09 -0.04 0.07 0.05 -0.07 -0.04 -0.15 -0.07 0.05
DAX 30 0.03 0.01 0.05 0.01 0.07 0.03 0.00 0.08 0.02 0.03 0.03 0.02 0.06 -0.03 -0.09 -0.10 -0.09 -0.07 -0.10 0.03 0.19 0.18 0.05 -0.06 -0.02 0.05 0.13 0.15 0.12 -0.28 -0.31 -0.29 -0.30 -0.36 -0.37 -0.34 -0.28 -0.11 -0.32 -0.08 -0.28 -0.26 -0.29 0.62 1.00 0.96 0.29 0.74 0.56 0.06 0.62 0.43 0.84 0.40 0.24 -0.25 -0.17 0.01 0.01 -0.16 0.03 -0.31 -0.16 0.01
Eurostoxx 0.04 0.02 0.07 0.04 0.08 0.04 0.00 0.07 0.02 0.04 0.06 0.03 0.08 -0.04 -0.06 -0.08 -0.07 -0.05 -0.09 0.04 0.21 0.19 0.05 -0.06 -0.01 0.05 0.15 0.16 0.13 -0.28 -0.32 -0.30 -0.31 -0.37 -0.38 -0.36 -0.29 -0.10 -0.33 -0.08 -0.29 -0.26 -0.30 0.63 0.96 1.00 0.27 0.79 0.57 0.09 0.63 0.45 0.88 0.42 0.20 -0.25 -0.16 0.02 0.02 -0.17 0.03 -0.31 -0.17 0.01
Hang Seng 0.03 0.01 0.08 0.09 0.07 0.00 0.08 0.12 0.10 0.06 0.06 0.01 0.05 -0.02 0.01 0.02 0.02 -0.02 -0.01 0.03 0.18 0.18 0.14 0.13 0.01 0.12 0.15 0.18 0.13 -0.05 -0.06 -0.06 -0.07 -0.13 -0.13 -0.12 -0.07 -0.20 -0.15 -0.13 -0.06 -0.16 -0.14 0.13 0.29 0.27 1.00 0.34 0.16 0.02 0.12 0.20 0.35 0.28 0.54 0.03 0.09 0.17 0.22 0.09 -0.10 -0.01 -0.01 0.17
FTSE 100 UK 0.05 0.03 0.10 0.10 0.08 0.06 0.02 0.06 0.00 0.04 0.10 0.04 0.06 -0.01 -0.01 -0.02 -0.01 -0.04 -0.05 0.09 0.25 0.26 0.14 0.07 0.01 0.09 0.21 0.24 0.18 -0.23 -0.25 -0.25 -0.24 -0.30 -0.31 -0.30 -0.24 -0.11 -0.30 -0.09 -0.23 -0.24 -0.27 0.46 0.74 0.79 0.34 1.00 0.40 0.14 0.47 0.41 0.86 0.52 0.27 -0.17 -0.06 0.08 0.10 -0.14 -0.04 -0.24 -0.18 0.04
Nasdaq 100 Mini 0.03 0.03 0.05 0.01 0.07 0.00 -0.02 0.10 0.01 0.04 0.02 0.05 0.06 -0.01 -0.11 -0.11 -0.10 -0.07 -0.09 -0.01 0.09 0.09 -0.01 -0.08 -0.01 0.03 0.07 0.08 0.09 -0.20 -0.22 -0.21 -0.21 -0.21 -0.22 -0.21 -0.20 -0.08 -0.19 -0.07 -0.19 -0.17 -0.18 0.87 0.56 0.57 0.16 0.40 1.00 0.13 0.83 0.55 0.48 0.22 0.13 -0.13 -0.08 0.03 0.02 -0.11 -0.02 -0.17 -0.09 0.01
Russel 2000 E-Mini 0.02 0.01 0.00 0.00 0.01 -0.01 0.01 -0.02 -0.01 0.01 -0.01 -0.01 0.00 -0.06 0.02 0.02 0.02 -0.02 0.00 0.05 0.05 0.06 0.02 0.02 -0.01 0.01 0.06 0.09 0.10 -0.04 -0.06 -0.07 -0.05 -0.08 -0.08 -0.07 -0.07 -0.02 -0.09 -0.09 -0.07 -0.10 -0.13 0.18 0.06 0.09 0.02 0.14 0.13 1.00 0.16 0.13 0.13 0.21 0.00 0.00 -0.01 0.05 0.03 0.01 -0.03 -0.04 -0.10 0.04
Dow Jones 0.05 0.03 0.04 0.02 0.04 0.02 -0.02 0.08 0.03 0.05 0.02 0.05 0.06 -0.04 -0.14 -0.14 -0.13 -0.07 -0.13 0.00 0.14 0.13 0.02 -0.06 -0.01 0.05 0.11 0.11 0.11 -0.19 -0.23 -0.22 -0.21 -0.22 -0.22 -0.22 -0.20 -0.09 -0.21 -0.09 -0.22 -0.18 -0.19 0.96 0.62 0.63 0.12 0.47 0.83 0.16 1.00 0.60 0.53 0.28 0.10 -0.11 -0.06 0.05 0.04 -0.08 -0.03 -0.17 -0.09 0.03
TSE Toronto 0.11 0.05 0.09 0.08 0.10 0.04 0.07 0.10 0.05 0.12 0.06 0.10 0.05 0.11 0.17 0.16 0.15 -0.01 0.08 0.20 0.25 0.24 0.21 0.20 0.07 0.19 0.23 0.21 0.20 -0.11 -0.13 -0.12 -0.12 -0.13 -0.13 -0.12 -0.11 -0.12 -0.14 -0.07 -0.11 -0.13 -0.11 0.64 0.43 0.45 0.20 0.41 0.55 0.13 0.60 1.00 0.42 0.28 0.15 0.02 0.04 0.13 0.15 0.05 -0.02 -0.04 -0.03 0.11
CAC 40 France 0.03 0.01 0.08 0.06 0.07 0.04 0.01 0.06 0.02 0.03 0.06 0.01 0.07 -0.02 -0.01 -0.03 -0.02 -0.07 -0.07 0.07 0.23 0.23 0.09 -0.01 0.01 0.06 0.18 0.20 0.15 -0.24 -0.27 -0.26 -0.26 -0.35 -0.35 -0.34 -0.25 -0.13 -0.35 -0.10 -0.24 -0.27 -0.32 0.52 0.84 0.88 0.35 0.86 0.48 0.13 0.53 0.42 1.00 0.49 0.29 -0.23 -0.13 0.05 0.07 -0.14 -0.01 -0.30 -0.16 0.02
OMX 30 Stockholm 0.05 -0.01 0.08 0.08 0.08 0.04 0.04 0.04 0.04 0.04 0.05 0.03 0.06 0.00 0.05 0.05 0.03 0.02 0.03 0.09 0.23 0.24 0.19 0.15 0.05 0.15 0.20 0.24 0.15 -0.07 -0.11 -0.15 -0.09 -0.14 -0.14 -0.15 -0.10 -0.12 -0.16 -0.12 -0.15 -0.16 -0.16 0.28 0.40 0.42 0.28 0.52 0.22 0.21 0.28 0.28 0.49 1.00 0.22 0.01 0.04 0.14 0.14 0.02 -0.13 -0.07 -0.13 0.14
NIKKEI 225 0.03 0.03 0.04 0.03 0.03 0.02 0.07 0.06 0.04 0.00 0.00 -0.02 0.01 0.04 0.05 0.03 0.06 0.02 -0.01 0.02 0.15 0.13 0.15 0.14 0.00 0.08 0.15 0.17 0.11 -0.06 -0.07 -0.06 -0.07 -0.12 -0.11 -0.10 -0.08 -0.41 -0.13 -0.22 -0.07 -0.18 -0.15 0.09 0.24 0.20 0.54 0.27 0.13 0.00 0.10 0.15 0.29 0.22 1.00 -0.01 0.03 0.08 0.14 0.00 -0.09 -0.06 0.00 0.07
Euro 0.09 0.09 0.10 0.13 0.08 0.00 0.07 0.09 0.10 0.09 0.05 0.01 -0.01 0.06 0.12 0.14 0.11 0.01 0.11 0.07 0.18 0.17 0.40 0.53 0.15 0.28 0.20 0.17 0.13 0.29 0.31 0.30 0.31 0.37 0.40 0.39 0.31 0.07 0.32 0.01 0.30 0.23 0.31 -0.09 -0.25 -0.25 0.03 -0.17 -0.13 0.00 -0.11 0.02 -0.23 0.01 -0.01 1.00 0.81 0.55 0.64 0.76 -0.49 0.94 0.48 0.54
Norwegian Krone 0.10 0.10 0.13 0.18 0.09 0.02 0.10 0.13 0.09 0.10 0.09 0.02 0.00 0.04 0.14 0.16 0.12 0.06 0.16 0.10 0.17 0.16 0.36 0.47 0.13 0.25 0.17 0.15 0.10 0.23 0.24 0.24 0.24 0.27 0.30 0.30 0.24 0.05 0.23 0.02 0.23 0.16 0.24 -0.04 -0.17 -0.16 0.09 -0.06 -0.08 -0.01 -0.06 0.04 -0.13 0.04 0.03 0.81 1.00 0.49 0.55 0.65 -0.41 0.78 0.37 0.47
New Zealand Dollar 0.08 0.06 0.10 0.10 0.07 0.00 0.07 0.14 0.15 0.04 0.03 0.02 0.03 0.02 0.10 0.11 0.09 0.02 0.14 0.03 0.20 0.22 0.37 0.40 0.17 0.27 0.20 0.20 0.15 0.10 0.10 0.10 0.11 0.15 0.17 0.18 0.12 0.02 0.12 -0.05 0.08 0.09 0.14 0.07 0.01 0.02 0.17 0.08 0.03 0.05 0.05 0.13 0.05 0.14 0.08 0.55 0.49 1.00 0.81 0.57 -0.42 0.48 0.27 0.49
Australian Dollar 0.10 0.08 0.13 0.13 0.11 0.02 0.08 0.14 0.15 0.06 0.03 0.04 0.06 0.08 0.15 0.16 0.14 -0.01 0.14 0.10 0.26 0.26 0.45 0.51 0.21 0.32 0.24 0.24 0.19 0.15 0.16 0.15 0.16 0.22 0.24 0.24 0.18 -0.04 0.18 -0.08 0.14 0.12 0.19 0.05 0.01 0.02 0.22 0.10 0.02 0.03 0.04 0.15 0.07 0.14 0.14 0.64 0.55 0.81 1.00 0.60 -0.52 0.57 0.38 0.54
British Pound 0.09 0.07 0.09 0.11 0.07 -0.01 0.06 0.11 0.16 0.04 0.05 0.00 0.02 0.04 0.09 0.12 0.08 0.03 0.09 0.06 0.17 0.17 0.39 0.45 0.16 0.26 0.19 0.17 0.11 0.24 0.24 0.24 0.24 0.27 0.28 0.29 0.25 0.05 0.17 -0.02 0.23 0.13 0.21 -0.07 -0.16 -0.17 0.09 -0.14 -0.11 0.01 -0.08 0.05 -0.14 0.02 0.00 0.76 0.65 0.57 0.60 1.00 -0.40 0.74 0.44 0.50
Canadian Dollar -0.05 -0.07 -0.08 -0.11 -0.06 0.00 -0.02 -0.08 -0.08 -0.08 0.04 -0.04 -0.04 -0.10 -0.19 -0.19 -0.17 -0.07 -0.19 -0.11 -0.18 -0.19 -0.36 -0.41 -0.12 -0.27 -0.19 -0.19 -0.11 -0.09 -0.09 -0.09 -0.08 -0.14 -0.17 -0.17 -0.08 0.01 -0.12 0.03 -0.07 -0.07 -0.12 -0.04 0.03 0.03 -0.10 -0.04 -0.02 -0.03 -0.03 -0.02 -0.01 -0.13 -0.09 -0.49 -0.41 -0.42 -0.52 -0.40 1.00 -0.44 -0.26 -0.35
Swiss Franc 0.08 0.09 0.09 0.12 0.07 -0.02 0.07 0.07 0.08 0.07 0.05 0.01 -0.02 0.07 0.13 0.15 0.13 0.02 0.13 0.05 0.15 0.15 0.37 0.49 0.14 0.26 0.18 0.13 0.12 0.30 0.34 0.34 0.33 0.39 0.42 0.41 0.33 0.09 0.33 0.03 0.34 0.23 0.34 -0.15 -0.31 -0.31 -0.01 -0.24 -0.17 -0.04 -0.17 -0.04 -0.30 -0.07 -0.06 0.94 0.78 0.48 0.57 0.74 -0.44 1.00 0.53 0.51
Japanese Yen 0.03 0.04 0.02 0.04 0.02 -0.03 -0.02 0.01 0.04 0.00 0.02 0.03 -0.06 0.05 0.04 0.05 0.04 -0.08 0.06 0.00 0.08 0.07 0.19 0.27 0.05 0.16 0.10 0.06 0.03 0.24 0.28 0.29 0.26 0.31 0.32 0.30 0.25 -0.02 0.27 -0.05 0.30 0.19 0.25 -0.07 -0.16 -0.17 -0.01 -0.18 -0.09 -0.10 -0.09 -0.03 -0.16 -0.13 0.00 0.48 0.37 0.27 0.38 0.44 -0.26 0.53 1.00 0.58
Singapore Dollar 0.07 0.07 0.09 0.12 0.07 -0.01 0.07 0.08 0.09 0.01 0.07 0.06 -0.03 0.05 0.09 0.10 0.08 -0.05 0.09 0.05 0.18 0.20 0.31 0.39 0.12 0.27 0.22 0.21 0.14 0.11 0.11 0.10 0.11 0.18 0.18 0.17 0.14 0.02 0.16 -0.05 0.11 0.11 0.14 0.05 0.01 0.01 0.17 0.04 0.01 0.04 0.03 0.11 0.02 0.14 0.07 0.54 0.47 0.49 0.54 0.50 -0.35 0.51 0.58 1.00
<!--/html_preserve-->

+ +

<!--html_preserve-->

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Eigenvalue Pct of explained variance Cumulative pct of explained variance
comp 1 11.19 17.49 17.49
comp 2 8.02 12.53 30.02
comp 3 4.26 6.65 36.67
comp 4 3.55 5.54 42.21
comp 5 3.22 5.02 47.23
comp 6 2.51 3.92 51.16
comp 7 2.16 3.38 54.54
comp 8 1.55 2.41 56.95
comp 9 1.45 2.27 59.22
comp 10 1.37 2.14 61.36
comp 11 1.22 1.90 63.26
comp 12 1.16 1.81 65.06
comp 13 1.06 1.65 66.72
comp 14 1.04 1.63 68.34
comp 15 1.03 1.60 69.95
comp 16 0.99 1.54 71.49
comp 17 0.95 1.48 72.97
comp 18 0.94 1.47 74.45
comp 19 0.90 1.40 75.85
comp 20 0.88 1.37 77.22
comp 21 0.84 1.32 78.54
comp 22 0.81 1.26 79.80
comp 23 0.78 1.22 81.03
comp 24 0.73 1.13 82.16
comp 25 0.71 1.10 83.26
comp 26 0.70 1.10 84.36
comp 27 0.67 1.05 85.41
comp 28 0.65 1.02 86.43
comp 29 0.62 0.96 87.40
comp 30 0.58 0.91 88.31
comp 31 0.55 0.86 89.16
comp 32 0.51 0.79 89.96
comp 33 0.47 0.74 90.69
comp 34 0.43 0.67 91.36
comp 35 0.41 0.64 92.00
comp 36 0.39 0.61 92.61
comp 37 0.38 0.60 93.21
comp 38 0.37 0.58 93.79
comp 39 0.35 0.54 94.33
comp 40 0.34 0.53 94.87
comp 41 0.31 0.48 95.35
comp 42 0.30 0.47 95.82
comp 43 0.28 0.44 96.26
comp 44 0.27 0.43 96.69
comp 45 0.23 0.35 97.04
comp 46 0.22 0.34 97.38
comp 47 0.21 0.32 97.70
comp 48 0.19 0.29 98.00
comp 49 0.17 0.27 98.27
comp 50 0.16 0.26 98.52
comp 51 0.16 0.24 98.77
comp 52 0.15 0.24 99.01
comp 53 0.11 0.17 99.17
comp 54 0.10 0.16 99.33
comp 55 0.08 0.13 99.46
comp 56 0.07 0.11 99.57
comp 57 0.07 0.11 99.68
comp 58 0.05 0.08 99.76
comp 59 0.04 0.07 99.83
comp 60 0.03 0.05 99.88
comp 61 0.03 0.04 99.92
comp 62 0.03 0.04 99.97
comp 63 0.01 0.02 99.99
comp 64 0.01 0.01 100.00
<!--/html_preserve-->

+ +
## Error in cbind(as.data.frame(eigenvalues), c(1:length(eigenvalues)), rep(1, : object 'eigenvalues2' not found
+
+ +
## Error in loadNamespace(name): there is no package called 'webshot'
+
+ +

A Simple Futures Trend Following Strategy

+ +

We can now develop a simple futures trend following trading strategy, as outlined in the papers in the Exercise Introduction above. There are about $300 billion invested in such strategies! Of course we cannot develop here a sophisticated product, but with some more work...

+ +

We will do the following:

+ +
    +
  1. Calculate a number of moving averages of different "window lengths" for each of the 64 futures - there are many so called technical indicators one can use. We will use the "moving average" function ma for this (try for example to see what this returns ma(1:10,2) ).
  2. +
  3. Add the signs (can also use the actual moving average values of course - try it!) of these moving averages (as if they "vote"), and then scale this sum across all futures so that the sum of their (of the sum across all futures!) absolute value across all futures is 1 (hence we invest $1 every day - you see why?).
  4. +
  5. Then invest every day in each of the 64 an amount that is defined by the weights calculated in step 2, using however the weights calculated using data until 2 days ago (why 2 days and not 1 day?) - see the use of the helper function shift for this.
  6. +
  7. Finally see the performance of this strategy.
  8. +
+ +

Here is the code:

+ +
signal_used = 0 * futures_data  # just initialize the trading signal to be 0
+# Take many moving Average (MA) Signals and let them 'vote' with their sign
+# (+-1, e.g. long or short vote, for each signal)
+MAfreq <- seq(10, 250, by = 20)
+for (iter in 1:length(MAfreq)) signal_used = signal_used + sign(apply(futures_data, 
+    2, function(r) ma(r, MAfreq[iter])))
+# Now make sure we invest $1 every day (so the sum of the absolute values of
+# the weights is 1 every day)
+signal_used = t(apply(signal_used, 1, function(r) {
+    res = r
+    if (sum(abs(r)) != 0) 
+        res = r/sum(abs(r))
+    res
+}))
+colnames(signal_used) <- colnames(futures_data)
+# Now create the returns of the strategy for each futures time series
+strategy_by_future <- scrub(shift(signal_used, 2) * futures_data)  # signal 2 days ago
+# finally, this is our futures trend following strategy
+trading_strategy = apply(strategy_by_future, 1, sum)
+names(trading_strategy) <- rownames(futures_data)
+
+ +

Reporting the performance results

+ +

Let's see how this strategy does:

+ +
## Error in loadNamespace(name): there is no package called 'webshot'
+
+ +

Here is how this strategy has performed during this period:

+ +

<!--html_preserve-->

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Year
2001 0.61 1.55 1.81 -2.00 0.54 0.69 0.75 1.35 4.30 0.33 -2.26 -2.45 5.13
2002 0.20 -0.44 -2.61 1.01 0.39 1.72 2.06 1.65 3.38 -2.50 -1.27 3.07 6.64
2003 2.39 3.37 -2.85 -0.92 1.25 -1.25 0.73 -0.13 -0.33 4.23 0.10 3.10 9.86
2004 1.22 3.16 0.06 -1.66 -0.13 -1.40 3.00 -2.75 4.36 -0.77 0.98 -0.07 5.91
2005 -0.55 1.03 0.27 -2.03 -0.27 0.84 0.42 1.51 0.25 -1.05 2.17 0.30 2.86
2006 2.00 -0.87 2.05 3.85 -0.30 -1.63 -0.76 0.00 0.60 2.23 0.50 1.17 9.05
2007 0.13 -0.52 -0.96 1.69 0.01 0.77 -0.90 -1.28 3.15 1.81 -0.05 1.98 5.88
2008 2.52 5.71 -3.06 0.36 2.38 4.06 -4.41 -1.66 5.35 14.30 3.88 1.61 34.20
2009 1.23 2.07 -5.43 -2.20 -0.82 -0.93 1.92 3.00 0.12 0.39 2.02 0.91 2.01
2010 -3.39 0.19 3.88 1.10 -5.04 -2.45 -1.27 0.01 2.31 3.59 -1.06 6.41 3.75
2011 1.27 2.48 -1.58 2.63 -4.07 -2.15 0.58 -0.77 1.23 -4.67 0.63 -0.38 -5.01
2012 -0.94 0.20 0.34 -0.12 1.57 -1.80 1.35 -0.33 -0.74 -0.92 -0.36 0.13 -1.65
2013 1.29 -0.58 1.07 0.15 1.29 0.52 0.51 -0.72 0.14 0.42 1.29 0.44 5.96
2014 -1.12 0.80 -0.11 0.54 -0.41 -0.16 0.69 0.96 0.89 0.52 2.53 2.64 7.98
2015 1.77 -0.73 1.63 -2.32 0.39 -0.43 1.50 -1.70 1.17 1.18
<!--/html_preserve-->

+ +

How does this compare with existing CTA products such as this one from Societe Generale? (Note: one can easily achieve a correlation of more than 0.8 with this specific product - as well as with many other ones)

+ +

Compare our strategy with this product

+ +

Questions

+ +
    +
  1. Can you describe in more detail what the code above does?
  2. +
  3. What happens if you use different moving average technical indicators in the code above? Please explore and report below the returns of a trading strategy you build. (Hint: check that the command line MAfreq<-seq(10,250,by=20) above does for example - but not only of course, the possibilities are endless)
  4. +
+ +

Answers

+ +

* +* +* +* +* +* +* +* +* +*

+ +

A class competition

+ +

Now you have seen how to develop some trading strategies that hedge funds have been using for centuries. Clearly this is only the very first step - as many of the online resources on technical indicators also suggest. Can you now explore more such strategies? How good a futures trend following hedge fund strategy can you develop? Let's call this.... a class competition! Explore as much as you can and report your best strategy as we move along the course...

+ +

Here is for example something that can be achieved relatively easily...

+ +
## Error in loadNamespace(name): there is no package called 'webshot'
+
+ +

Here is how this strategy has performed during this period:

+ +

<!--html_preserve-->

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Year
2001 0.00 0.00 0.68 -1.00 0.02 -0.05 0.60 0.95 2.41 1.25 -2.21 -0.98 1.59
2002 -0.56 -0.18 -0.81 0.21 1.09 1.92 1.85 1.25 1.75 -0.93 -0.68 2.76 7.85
2003 1.33 1.53 -0.83 0.12 1.86 -0.90 -0.31 -0.20 -0.03 1.98 0.09 1.82 6.58
2004 0.76 1.90 -0.07 -1.83 -0.19 -0.32 0.33 -1.02 1.32 0.19 1.33 0.26 2.62
2005 -0.36 0.37 0.02 -0.70 0.51 0.93 0.13 0.17 0.69 -0.04 1.55 0.41 3.72
2006 1.21 -0.04 2.10 2.03 -0.42 -0.17 -0.89 -0.54 -0.15 0.95 0.71 0.73 5.61
2007 0.39 -0.98 -0.08 1.70 1.18 1.33 -1.27 -2.41 2.01 1.11 0.29 0.67 3.92
2008 2.60 2.96 -0.98 -0.37 0.69 1.68 -1.97 -0.14 1.78 4.35 1.62 0.73 13.57
2009 0.05 0.72 -1.36 -1.15 0.41 -0.73 0.88 0.83 0.71 -0.14 1.64 -0.63 1.19
2010 -1.26 0.47 1.34 0.77 -1.30 -0.49 -0.45 1.10 1.04 1.67 -0.89 2.38 4.38
2011 0.58 1.16 -0.69 1.74 -1.71 -1.50 0.98 0.64 0.81 -1.86 0.46 0.39 0.93
2012 -0.29 -0.15 -0.05 -0.10 1.27 -1.08 0.66 -0.25 -0.22 -0.77 -0.18 -0.13 -1.31
2013 1.09 -0.98 0.82 -0.03 0.72 0.85 0.20 -0.26 0.12 0.23 0.90 1.01 4.73
2014 -1.33 0.46 -0.12 0.06 0.32 0.42 0.01 1.15 1.85 0.68 2.07 1.49 7.24
2015 2.17 -0.30 1.10 -1.49 0.27 0.04 0.40 -0.77 0.73 2.11
<!--/html_preserve-->

+ +

As always, have fun

+ +
+ +
+ + +
+ + + + + + + + + + \ No newline at end of file From 28f1e938120bf9893a113d4c8ec901156965e662 Mon Sep 17 00:00:00 2001 From: "config(repo, user.email=readline(\"Github email: \"))" Date: Mon, 23 Jan 2017 00:26:32 +0100 Subject: [PATCH 4/6] html exercise 1 solutions --- .../Exerciseset1/CopyOfExerciseSet1.html | 440 ++++++++++++++++++ 1 file changed, 440 insertions(+) create mode 100644 Exercises/Exerciseset1/CopyOfExerciseSet1.html diff --git a/Exercises/Exerciseset1/CopyOfExerciseSet1.html b/Exercises/Exerciseset1/CopyOfExerciseSet1.html new file mode 100644 index 00000000..851e3448 --- /dev/null +++ b/Exercises/Exerciseset1/CopyOfExerciseSet1.html @@ -0,0 +1,440 @@ + + + + + + pdf_document: default + + + + + + + + + + + + + + + + + + +
+ +

title: “Exercise Set 1” +author: “Jaime Andaluz” +output: + html_document: default

+ +

pdf_document: default

+ +

library(git2r) +repo <- repository(“.”) +config(repo, user.name=readline(“Github username: ”)) +config(repo, user.email=readline(“Github email: ”))

+ +

git clone git@github.com:https://github.com/jaimeandaluz/INSEADAnalytics.git

+ +


+ +

The purpose of this exercise is to become familiar with:

+ +
    +
  1. Basic statistics functions in R;
  2. +
  3. Simple matrix operations;
  4. +
  5. Simple data manipulations;
  6. +
  7. The idea of functions as well as some useful customized functions provided.
  8. +
+ +

While doing this exercise we will also see how to generate replicable and customizable reports. For this purpose the exercise uses the R Markdown capabilities (see Markdown Cheat Sheet or a basic introduction to R Markdown). These capabilities allow us to create dynamic reports. For example today's date is 2017-01-22 (you need to see the .Rmd to understand that this is not a static typed-in date but it changes every time you compile the .Rmd - if the date changed of course).

+ +

Before starting, make sure you have pulled the exercise files on your github repository (if you pull the course github repository you also get the exercise set files automatically). Moreover, make sure you are in the directory of this exercise. Directory paths may be complicated, and sometimes a frustrating source of problems, so it is recommended that you use these R commands to find out your current working directory and, if needed, set it where you have the main files for the specific exercise/project (there are other ways, but for now just be aware of this path issue). For example, assuming we are now in the “MYDIRECTORY/INSEADAnalytics” directory, we can do these:

+ +
# getwd()
+
+# setwd('Exercises/Exerciseset1/')
+
+# list.files()
+
+ +

Note: you can always use the help command in Rstudio to find out about any R function (e.g. type help(list.files) to learn what the R function list.files does).

+ +

Let's now see the exercise.

+ +

IMPORTANT: You should answer all questions by simply adding your code/answers in this document through editing the file ExerciseSet1.Rmd and then clicking on the “Knit HTML” button in RStudio. Once done, please post your .Rmd and html files in your github repository.

+ +
+ +
+ +

Exercise Data

+ +

We download daily prices (open, high, low, close, and adjusted close) and volume data of publicly traded companies and markets from the web (e.g. Yahoo! or Google, etc). This is done by sourcing the file data.R as well as some helper functions in herpersSet1.R which also installs a number of R libraries (hence the first time you run this code you will see a lot of red color text indicating the download and installation process):

+ +
source("helpersSet1.R")
+source("dataSet1.R")
+
+ +

[1] “\nDownloading ticker SPY …” +[1] “\nDownloading ticker AAPL …” +[1] “\nDownloading ticker YHOO …”

+ +

For more information on downloading finance data from the internet as well as on finance related R tools see these starting points (there is a lot more of course available):

+ + + +

Optional Question

+ +
    +
  1. Can you find some interesting finance related R package or github repository? +Your Answers here: +
    +
  2. +
+ +
+ +
+ +

Part I: Statistics of S&P Daily Returns

+ +

We have 4037 days of data, starting from 2001-01-03 until 2017-01-20. Here are some basic statistics about Apple and Yahoo returns:

+ +

Here are returns of YHOO and APPL in this period:

+ +

plot of chunk unnamed-chunk-3plot of chunk unnamed-chunk-3

+ +

Questions

+ +
    +
  1. Notice that the code also downloads the returns of Apple during the same period. Can you explain where this is done in the code (including the .R files used)?
  2. +
  3. What are the cumulative, average daily returns, and the standard deviation of the daily returns of Apple in the same period?
  4. +
  5. (Extra points) What if we want to also see the returns of another company, say Yahoo!, in the same period? Can you get that data and report the statistics for Yahoo!'s stock, too?
  6. +
+ +

Your Answers here: +
1. Going to DataSet1.R you need to update mytickers and within vector c include AAPL symbol. It can be seen on Exercise1 script that the data source is dataSet1. Then going to line 81 you replace SPY for AAPL and re-run the script +
2. The cumulave daily returns APPL is 5.973 the average returns are 0.001479. The standard deviation of daily returns is 0.024 +
3.The cumulave daily returns Yahoo is 2.907 the average returns are 7.2 × 10-4. The standard deviation of daily returns is 0.03

+ +

Part II: Simple Matrix Manipulations

+ +

For this part of the exercise we will do some basic manipulations of the data. First note that the data are in a so-called matrix format. If you run these commands in RStudio (use help to find out what they do) you will see how matrices work:

+ +
class(StockReturns)
+dim(StockReturns)
+nrow(StockReturns)
+ncol(StockReturns)
+StockReturns[1:6]
+head(StockReturns,1)
+tail(StockReturns,1) 
+
+ +

We will now use an R function for matrices that is extremely useful for analyzing data. It is called apply. Check it out using help in R.

+ +

For example, we can now quickly estimate the average returns of S&P and Apple (of course this can be done manually, too, but what if we had 500 stocks - e.g. a matrix with 500 columns?) and plot the returns of that 50-50 on S&P and Apple portfolio:

+ +

plot of chunk unnamed-chunk-5

+ +

We can also transpose the matrix of returns to create a new “horizontal” matrix. Let's call this matrix (variable name) transposedData. We can do so using this command: .

+ +

Questions

+ +
    +
  1. What R commands can you use to get the number of rows and number of columns of the new matrix called transposedData?
  2. +
  3. Based on the help for the R function apply (help(apply)), can you create again the portfolio of S&P and Apple and plot the returns in a new figure below?
  4. +
+ +

Your Answers here: +
1. Number of rows in transposed matrix: 3, and number of columns is 4037 +
2. Ths is the plot for the portfolio transposed data

+ +

plot of chunk unnamed-chunk-6

+ +
+ +
+ +

Part III: Reproducibility and Customization

+ +

This is an important step and will get you to think about the overall process once again.

+ +

Questions

+ +
    +
  1. We want to re-do all this analysis with data since 2001-01-01: what change do we need to make in the code (hint: all you need to change is one line - exactly 1 number! - in data.R file), and how can you get the new exercise set with the data since 2001-01-01?
  2. +
  3. (Extra Exercise) Can you get the returns of a few companies and plot the returns of an equal weighted portfolio with those companies during some period you select?
  4. +
+ +

Your Answers here: +
+
+
+

+ +
+ +
+ +

Part IV: Read/Write .CSV files

+ +

Finally, one can read and write data in .CSV files. For example, we can save the first 20 days of data for S&P and Apple in a file using the command:

+ +
write.csv(StockReturns[1:20,c("SPY","AAPL")], file = "twentydays.csv", row.names = TRUE, col.names = TRUE) 
+
+ +

Do not get surpsised if you see the csv file in your directories suddenly! You can then read the data from the csv file using the read.csv command. For example, this will load the data from the csv file and save it in a new variable that now is called “myData”:

+ +
myData <- read.csv(file = "twentydays.csv", header = TRUE, sep=";")
+
+ +

Try it!

+ +

Questions

+ +
    +
  1. Once you write and read the data as described above, what happens when you run this command in the console of the RStudio: sum(myData != StockReturns[1:20,])
  2. +
  3. (Extra exercise) What do you think will happen if you now run this command, and why:
  4. +
+ +
myData + StockReturns[1:40,]
+
+ +

Your Answers here: +
+
+
+

+ +
+ +
+ +

Extra Question

+ +

Can you now load another dataset from some CSV file and report some basic statistics about that data?

+ +


+ +

Creating Interactive Documents

+ +

Finally, just for fun, one can add some interactivity in the report using Shiny.All one needs to do is set the eval flag of the code chunk below (see the .Rmd file) to “TRUE”, add the line “runtime: shiny” at the very begining of the .Rmd file, make the markdown output to be “html_document”, and then press “Run Document”.

+ +
sliderInput("startdate", "Starting Date:", min = 1, max = length(portfolio), 
+            value = 1)
+sliderInput("enddate", "End Date:", min = 1, max = length(portfolio), 
+            value = length(portfolio))
+
+renderPlot({
+  pnl_plot(portfolio[input$startdate:input$enddate])
+})
+
+ +


+ +
+ +
+ +

Endless explorations (optional homework)

+ +

This is a recent research article that won an award in 2016. Can you implement a simple strategy as in Figure 1 of this paper? You may find these R commands useful: names, which, str_sub,diff,as.vector, length, pmin, pmax, sapply, lapply,Reduce,unique, as.numeric, %in% +A Simple Trading Startegy

+ +

What if you also include information about bonds? (e.g. download the returns of the the ETF with ticker “TLT”) Is there any relation between stocks and bonds?

+ +

Have fun

+ + + + From a6e35470c06559ffa7e51b026df9ecb25ebc00d4 Mon Sep 17 00:00:00 2001 From: "config(repo, user.email=readline(\"Github email: \"))" Date: Tue, 24 Jan 2017 22:37:21 +0100 Subject: [PATCH 5/6] SOlutions by Jaime Andaluz --- .../Exercise1 solutions Jaime Andaluz.Rmd | 250 ++++++++++ .../Exercise1 solutions Jaime Andaluz.html | 450 ++++++++++++++++++ 2 files changed, 700 insertions(+) create mode 100644 Exercises/Exerciseset1/Exercise1 solutions Jaime Andaluz.Rmd create mode 100644 Exercises/Exerciseset1/Exercise1 solutions Jaime Andaluz.html diff --git a/Exercises/Exerciseset1/Exercise1 solutions Jaime Andaluz.Rmd b/Exercises/Exerciseset1/Exercise1 solutions Jaime Andaluz.Rmd new file mode 100644 index 00000000..dbc85657 --- /dev/null +++ b/Exercises/Exerciseset1/Exercise1 solutions Jaime Andaluz.Rmd @@ -0,0 +1,250 @@ + +--- +title: "Exercise Set 1" +author: "Jaime Andaluz" +output: + html_document: default + pdf_document: default +--- + +library(git2r) +repo <- repository(".") +config(repo, user.name=readline("Github username: ")) +config(repo, user.email=readline("Github email: ")) + +git clone git@github.com:https://github.com/jaimeandaluz/INSEADAnalytics.git + + +
+ +The purpose of this exercise is to become familiar with: + +1. Basic statistics functions in R; +2. Simple matrix operations; +3. Simple data manipulations; +4. The idea of functions as well as some useful customized functions provided. + +While doing this exercise we will also see how to generate replicable and customizable reports. For this purpose the exercise uses the R Markdown capabilities (see [Markdown Cheat Sheet](https://www.rstudio.com/wp-content/uploads/2015/02/rmarkdown-cheatsheet.pdf) or a [basic introduction to R Markdown](http://rmarkdown.rstudio.com/authoring_basics.html)). These capabilities allow us to create dynamic reports. For example today's date is `r Sys.Date()` (you need to see the .Rmd to understand that this is *not* a static typed-in date but it changes every time you compile the .Rmd - if the date changed of course). + +Before starting, make sure you have pulled the [exercise files](https://github.com/InseadDataAnalytics/INSEADAnalytics/tree/master/Exercises/Exerciseset1) on your github repository (if you pull the course github repository you also get the exercise set files automatically). Moreover, make sure you are in the directory of this exercise. Directory paths may be complicated, and sometimes a frustrating source of problems, so it is recommended that you use these R commands to find out your current working directory and, if needed, set it where you have the main files for the specific exercise/project (there are other ways, but for now just be aware of this path issue). For example, assuming we are now in the "MYDIRECTORY/INSEADAnalytics" directory, we can do these: + +```{r echo=TRUE, eval=FALSE, tidy=TRUE} +#getwd() + +#setwd("Exercises/Exerciseset1/") + +#list.files() +``` + +**Note:** you can always use the `help` command in Rstudio to find out about any R function (e.g. type `help(list.files)` to learn what the R function `list.files` does). + +Let's now see the exercise. + +**IMPORTANT:** You should answer all questions by simply adding your code/answers in this document through editing the file ExerciseSet1.Rmd and then clicking on the "Knit HTML" button in RStudio. Once done, please post your .Rmd and html files in your github repository. + +
+
+ +### Exercise Data + +We download daily prices (open, high, low, close, and adjusted close) and volume data of publicly traded companies and markets from the web (e.g. Yahoo! or Google, etc). This is done by sourcing the file data.R as well as some helper functions in herpersSet1.R which also installs a number of R libraries (hence the first time you run this code you will see a lot of red color text indicating the *download* and *installation* process): + +```{r eval = TRUE, echo=TRUE, error = FALSE, warning=FALSE,message=FALSE,results='asis'} +source("helpersSet1.R") +source("dataSet1.R") +``` + +For more information on downloading finance data from the internet as well as on finance related R tools see these starting points (there is a lot more of course available): + +* [Some finance data loading tools](http://www.r-bloggers.com/r-code-yahoo-finance-data-loading/) +* [Connecting directly to Bloomberg](http://www.r-bloggers.com/rblpapi-connecting-r-to-bloomberg/) +* [Some time series plot tools](http://www.r-bloggers.com/plotting-time-series-in-r-using-yahoo-finance-data/) +* [Various finance code links](https://cran.r-project.org/web/views/Finance.html) +* [More links](http://blog.revolutionanalytics.com/2013/12/quantitative-finance-applications-in-r.html) +* [Even more links](http://www.r-bloggers.com/financial-data-accessible-from-r-part-iv/) +* Of course endless available code (e.g. like this one that seems to [get companies' earnings calendars](https://github.com/gsee/qmao/blob/master/R/getCalendar.R)) + +#### Optional Question + +1. Can you find some interesting finance related R package or github repository? +**Your Answers here:** +
+
+ +
+
+ +### Part I: Statistics of S&P Daily Returns + +We have `r nrow(StockReturns)` days of data, starting from `r rownames(StockReturns)[1]` until `r tail(rownames(StockReturns),1)`. Here are some basic statistics about Apple and Yahoo returns: + +Here are returns of YHOO and APPL in this period: + +```{r echo=FALSE, comment=NA, warning=FALSE, message=FALSE,results='asis',fig.align='center', fig.height=4,fig.width= 6, fig=TRUE} +AAPL = StockReturns[,"AAPL"] +YHOO = StockReturns[,"YHOO"] +pnl_plot(AAPL) +pnl_plot(YHOO) + +``` + +#### Questions + +1. Notice that the code also downloads the returns of Apple during the same period. Can you explain where this is done in the code (including the .R files used)? +2. What are the cumulative, average daily returns, and the standard deviation of the daily returns of Apple in the same period? +3. *(Extra points)* What if we want to also see the returns of another company, say Yahoo!, in the same period? Can you get that data and report the statistics for Yahoo!'s stock, too? + +**Your Answers here:** +
1. Going to DataSet1.R you need to update mytickers and within vector c include AAPL symbol. It can be seen on Exercise1 script that the data source is dataSet1. Then going to line 81 you replace SPY for AAPL and re-run the script +
2. The cumulave daily returns APPL is `r round(sum(AAPL),3)` the average returns are `r round(ifelse(sum(!is.na(AAPL)) > 0, mean(AAPL[!is.na(AAPL)]), 0),4)`. The standard deviation of daily returns is `r round(ifelse(sum(!is.na(AAPL)) > 2, sd(AAPL[!is.na(AAPL)]), 0),4)` +
3.The cumulave daily returns Yahoo is `r round(sum(YHOO),3)` the average returns are `r round(ifelse(sum(!is.na(YHOO)) > 0,mean(YHOO[!is.na(YHOO)]), 0),6)`. The standard deviation of daily returns is `r round(ifelse(sum(!is.na(YHOO)) > 2, sd(YHOO[!is.na(YHOO)]), 0),4)` + +### Part II: Simple Matrix Manipulations + +For this part of the exercise we will do some basic manipulations of the data. First note that the data are in a so-called matrix format. If you run these commands in RStudio (use help to find out what they do) you will see how matrices work: + +```{r eval = FALSE, echo=TRUE} +class(StockReturns) +dim(StockReturns) +nrow(StockReturns) +ncol(StockReturns) +StockReturns[1:6] +head(StockReturns,1) +tail(StockReturns,1) +``` + +We will now use an R function for matrices that is extremely useful for analyzing data. It is called *apply*. Check it out using help in R. + +For example, we can now quickly estimate the average returns of S&P and Apple (of course this can be done manually, too, but what if we had 500 stocks - e.g. a matrix with 500 columns?) and plot the returns of that 50-50 on S&P and Apple portfolio: + +```{r echo=FALSE, comment=NA, warning=FALSE, message=FALSE,results='asis',fig.align='center', fig=TRUE} +portfolio = apply(StockReturns,1,mean) +names(portfolio) <- rownames(StockReturns) +pnl_plot(portfolio) +``` + + +We can also transpose the matrix of returns to create a new "horizontal" matrix. Let's call this matrix (variable name) transposedData. We can do so using this command: `r transposedData = t(StockReturns)`. + +#### Questions + +1. What R commands can you use to get the number of rows and number of columns of the new matrix called transposedData? +2. Based on the help for the R function *apply* (`help(apply)`), can you create again the portfolio of S&P and Apple and plot the returns in a new figure below? + +**Your Answers here:** +
1. Number of rows in transposed matrix: `r nrow(transposedData)`, and number of columns is `r ncol(transposedData)` +
2. Ths is the plot for the portfolio transposed data + +```{r echo=FALSE, comment=NA, warning=FALSE, message=FALSE,results='asis',fig.align='center', fig=TRUE} +transposedData = t(StockReturns) +portfolio_transpose = apply(transposedData,2,mean) +names(portfolio_transpose) <- rownames(StockReturns) +pnl_plot(portfolio_transpose) +``` + +
+
+ +### Part III: Reproducibility and Customization + +This is an important step and will get you to think about the overall process once again. + +#### Questions + +1. We want to re-do all this analysis with data since 2001-01-01: what change do we need to make in the code (hint: all you need to change is one line - exactly 1 number! - in data.R file), and how can you get the new exercise set with the data since 2001-01-01? +```{r echo=FALSE, comment=NA, warning=FALSE, message=FALSE,results='asis',fig.align='center', fig.height=4,fig.width= 6, fig=TRUE} +AAPL = StockReturns[,"AAPL"] +YHOO = StockReturns[,"YHOO"] +pnl_plot(YHOO) +pnl_plot("AAPL") +``` + + +2. *(Extra Exercise)* Can you get the returns of a few companies and plot the returns of an equal weighted portfolio with those companies during some period you select? + +```{r echo=FALSE, comment=NA, warning=FALSE, message=FALSE,results='asis',fig.align='center', fig.height=4,fig.width= 6, fig=TRUE} +AAPL = StockReturns[,"AAPL"] +YHOO = StockReturns[,"YHOO"] +TSLA = StockReturns[,"TSLA"] +BHP = StockReturns[,"BHP"] +pnl_plot(AAPL+YHOO+TSLA+BHP) +``` +**Your Answers here:** +
+
+
+
+ +
+
+ +### Part IV: Read/Write .CSV files + +Finally, one can read and write data in .CSV files. For example, we can save the first 20 days of data for S&P and Apple in a file using the command: + +```{r eval = TRUE, echo=TRUE, comment=NA, warning=FALSE, message=FALSE,results='asis'} +write.csv(StockReturns[1:20,c("SPY","AAPL")], file = "twentydays.csv", row.names = TRUE, col.names = TRUE) +``` + +Do not get surpsised if you see the csv file in your directories suddenly! You can then read the data from the csv file using the read.csv command. For example, this will load the data from the csv file and save it in a new variable that now is called "myData": + +```{r eval = TRUE, echo=TRUE, comment=NA, warning=FALSE, message=FALSE,results='asis'} +myData <- read.csv(file = "twentydays.csv", header = TRUE, sep=";") +``` + +Try it! + +#### Questions + +1. Once you write and read the data as described above, what happens when you run this command in the console of the RStudio: `r sum(myData != StockReturns[1:1,])` +2. *(Extra exercise)* What do you think will happen if you now run this command, and why: + +```{r eval = FALSE, echo=TRUE} +myData + StockReturns[1:40,] +``` + +**Your Answers here:** +
+
+
+
2. My data has two columns whereas this chunk of code adding a matrix with 40 rows + +
+
+ +### Extra Question + +Can you now load another dataset from some CSV file and report some basic statistics about that data? + +
+ +### Creating Interactive Documents + +Finally, just for fun, one can add some interactivity in the report using [Shiny](http://rmarkdown.rstudio.com/authoring_shiny.html).All one needs to do is set the eval flag of the code chunk below (see the .Rmd file) to "TRUE", add the line "runtime: shiny" at the very begining of the .Rmd file, make the markdown output to be "html_document", and then press "Run Document". + +```{r, eval=FALSE, echo = TRUE} +sliderInput("startdate", "Starting Date:", min = 1, max = length(portfolio), + value = 1) +sliderInput("enddate", "End Date:", min = 1, max = length(portfolio), + value = length(portfolio)) + +renderPlot({ + pnl_plot(portfolio[input$startdate:input$enddate]) +}) +``` + +
+ +
+
+ +### Endless explorations (optional homework) + +This is a [recent research article](http://poseidon01.ssrn.com/delivery.php?ID=851091091009083082092113118102076099034023058067019062072066007100008111081022102123034016097101060099003106125099002090116089026058012038004030005113111105079028059062024121067073126072090091089069014121102110107075029090001011087028011082124103085&EXT=pdf) that won an award in 2016. Can you implement a simple strategy as in Figure 1 of this paper? You may find these R commands useful: `names`, `which`, `str_sub`,`diff`,`as.vector`, `length`, `pmin`, `pmax`, `sapply`, `lapply`,`Reduce`,`unique`, `as.numeric`, `%in%` +![A Simple Trading Startegy](simpletrade.png) + +What if you also include information about bonds? (e.g. download the returns of the the ETF with ticker "TLT") Is there any relation between stocks and bonds? + + +**Have fun** + diff --git a/Exercises/Exerciseset1/Exercise1 solutions Jaime Andaluz.html b/Exercises/Exerciseset1/Exercise1 solutions Jaime Andaluz.html new file mode 100644 index 00000000..f6798e3a --- /dev/null +++ b/Exercises/Exerciseset1/Exercise1 solutions Jaime Andaluz.html @@ -0,0 +1,450 @@ + + + + + + pdf_document: default + + + + + + + + + + + + + + + + + + +
+ +

title: “Exercise Set 1” +author: “Jaime Andaluz” +output: + html_document: default

+ +

pdf_document: default

+ +

library(git2r) +repo <- repository(“.”) +config(repo, user.name=readline(“Github username: ”)) +config(repo, user.email=readline(“Github email: ”))

+ +

git clone git@github.com:https://github.com/jaimeandaluz/INSEADAnalytics.git

+ +


+ +

The purpose of this exercise is to become familiar with:

+ +
    +
  1. Basic statistics functions in R;
  2. +
  3. Simple matrix operations;
  4. +
  5. Simple data manipulations;
  6. +
  7. The idea of functions as well as some useful customized functions provided.
  8. +
+ +

While doing this exercise we will also see how to generate replicable and customizable reports. For this purpose the exercise uses the R Markdown capabilities (see Markdown Cheat Sheet or a basic introduction to R Markdown). These capabilities allow us to create dynamic reports. For example today's date is 2017-01-24 (you need to see the .Rmd to understand that this is not a static typed-in date but it changes every time you compile the .Rmd - if the date changed of course).

+ +

Before starting, make sure you have pulled the exercise files on your github repository (if you pull the course github repository you also get the exercise set files automatically). Moreover, make sure you are in the directory of this exercise. Directory paths may be complicated, and sometimes a frustrating source of problems, so it is recommended that you use these R commands to find out your current working directory and, if needed, set it where you have the main files for the specific exercise/project (there are other ways, but for now just be aware of this path issue). For example, assuming we are now in the “MYDIRECTORY/INSEADAnalytics” directory, we can do these:

+ +
# getwd()
+
+# setwd('Exercises/Exerciseset1/')
+
+# list.files()
+
+ +

Note: you can always use the help command in Rstudio to find out about any R function (e.g. type help(list.files) to learn what the R function list.files does).

+ +

Let's now see the exercise.

+ +

IMPORTANT: You should answer all questions by simply adding your code/answers in this document through editing the file ExerciseSet1.Rmd and then clicking on the “Knit HTML” button in RStudio. Once done, please post your .Rmd and html files in your github repository.

+ +
+ +
+ +

Exercise Data

+ +

We download daily prices (open, high, low, close, and adjusted close) and volume data of publicly traded companies and markets from the web (e.g. Yahoo! or Google, etc). This is done by sourcing the file data.R as well as some helper functions in herpersSet1.R which also installs a number of R libraries (hence the first time you run this code you will see a lot of red color text indicating the download and installation process):

+ +
source("helpersSet1.R")
+source("dataSet1.R")
+
+ +

[1] “\nDownloading ticker SPY …” +[1] “\nDownloading ticker AAPL …” +[1] “\nDownloading ticker YHOO …” +[1] “\nDownloading ticker TSLA …” +[1] “\nDownloading ticker BHP …”

+ +

For more information on downloading finance data from the internet as well as on finance related R tools see these starting points (there is a lot more of course available):

+ + + +

Optional Question

+ +
    +
  1. Can you find some interesting finance related R package or github repository? +Your Answers here: +
    +
  2. +
+ +
+ +
+ +

Part I: Statistics of S&P Daily Returns

+ +

We have 4038 days of data, starting from 2001-01-03 until 2017-01-23. Here are some basic statistics about Apple and Yahoo returns:

+ +

Here are returns of YHOO and APPL in this period:

+ +

plot of chunk unnamed-chunk-3plot of chunk unnamed-chunk-3

+ +

Questions

+ +
    +
  1. Notice that the code also downloads the returns of Apple during the same period. Can you explain where this is done in the code (including the .R files used)?
  2. +
  3. What are the cumulative, average daily returns, and the standard deviation of the daily returns of Apple in the same period?
  4. +
  5. (Extra points) What if we want to also see the returns of another company, say Yahoo!, in the same period? Can you get that data and report the statistics for Yahoo!'s stock, too?
  6. +
+ +

Your Answers here: +
1. Going to DataSet1.R you need to update mytickers and within vector c include AAPL symbol. It can be seen on Exercise1 script that the data source is dataSet1. Then going to line 81 you replace SPY for AAPL and re-run the script +
2. The cumulave daily returns APPL is 5.973 the average returns are 0.0015. The standard deviation of daily returns is 0.0239 +
3.The cumulave daily returns Yahoo is 2.915 the average returns are 7.22 × 10-4. The standard deviation of daily returns is 0.0302

+ +

Part II: Simple Matrix Manipulations

+ +

For this part of the exercise we will do some basic manipulations of the data. First note that the data are in a so-called matrix format. If you run these commands in RStudio (use help to find out what they do) you will see how matrices work:

+ +
class(StockReturns)
+dim(StockReturns)
+nrow(StockReturns)
+ncol(StockReturns)
+StockReturns[1:6]
+head(StockReturns,1)
+tail(StockReturns,1) 
+
+ +

We will now use an R function for matrices that is extremely useful for analyzing data. It is called apply. Check it out using help in R.

+ +

For example, we can now quickly estimate the average returns of S&P and Apple (of course this can be done manually, too, but what if we had 500 stocks - e.g. a matrix with 500 columns?) and plot the returns of that 50-50 on S&P and Apple portfolio:

+ +

plot of chunk unnamed-chunk-5

+ +

We can also transpose the matrix of returns to create a new “horizontal” matrix. Let's call this matrix (variable name) transposedData. We can do so using this command: .

+ +

Questions

+ +
    +
  1. What R commands can you use to get the number of rows and number of columns of the new matrix called transposedData?
  2. +
  3. Based on the help for the R function apply (help(apply)), can you create again the portfolio of S&P and Apple and plot the returns in a new figure below?
  4. +
+ +

Your Answers here: +
1. Number of rows in transposed matrix: 5, and number of columns is 4038 +
2. Ths is the plot for the portfolio transposed data

+ +

plot of chunk unnamed-chunk-6

+ +
+ +
+ +

Part III: Reproducibility and Customization

+ +

This is an important step and will get you to think about the overall process once again.

+ +

Questions

+ +
    +
  1. We want to re-do all this analysis with data since 2001-01-01: what change do we need to make in the code (hint: all you need to change is one line - exactly 1 number! - in data.R file), and how can you get the new exercise set with the data since 2001-01-01? +plot of chunk unnamed-chunk-7
  2. +
+ +
Error in as.Date.default(head(names(x), 1), format = "%Y-%m-%d"): do not know how to convert 'head(names(x), 1)' to class "Date"
+
+ +
    +
  1. (Extra Exercise) Can you get the returns of a few companies and plot the returns of an equal weighted portfolio with those companies during some period you select?
  2. +
+ +

plot of chunk unnamed-chunk-8 +Your Answers here: +
+
+
+

+ +
+ +
+ +

Part IV: Read/Write .CSV files

+ +

Finally, one can read and write data in .CSV files. For example, we can save the first 20 days of data for S&P and Apple in a file using the command:

+ +
write.csv(StockReturns[1:20,c("SPY","AAPL")], file = "twentydays.csv", row.names = TRUE, col.names = TRUE) 
+
+ +

Do not get surpsised if you see the csv file in your directories suddenly! You can then read the data from the csv file using the read.csv command. For example, this will load the data from the csv file and save it in a new variable that now is called “myData”:

+ +
myData <- read.csv(file = "twentydays.csv", header = TRUE, sep=";")
+
+ +

Try it!

+ +

Questions

+ +
    +
  1. Once you write and read the data as described above, what happens when you run this command in the console of the RStudio: 20
  2. +
  3. (Extra exercise) What do you think will happen if you now run this command, and why:
  4. +
+ +
myData + StockReturns[1:40,]
+
+ +

Your Answers here: +
+
+
+
2. My data has two columns whereas this chunk of code adding a matrix with 40 rows

+ +
+ +
+ +

Extra Question

+ +

Can you now load another dataset from some CSV file and report some basic statistics about that data?

+ +


+ +

Creating Interactive Documents

+ +

Finally, just for fun, one can add some interactivity in the report using Shiny.All one needs to do is set the eval flag of the code chunk below (see the .Rmd file) to “TRUE”, add the line “runtime: shiny” at the very begining of the .Rmd file, make the markdown output to be “html_document”, and then press “Run Document”.

+ +
sliderInput("startdate", "Starting Date:", min = 1, max = length(portfolio), 
+            value = 1)
+sliderInput("enddate", "End Date:", min = 1, max = length(portfolio), 
+            value = length(portfolio))
+
+renderPlot({
+  pnl_plot(portfolio[input$startdate:input$enddate])
+})
+
+ +


+ +
+ +
+ +

Endless explorations (optional homework)

+ +

This is a recent research article that won an award in 2016. Can you implement a simple strategy as in Figure 1 of this paper? You may find these R commands useful: names, which, str_sub,diff,as.vector, length, pmin, pmax, sapply, lapply,Reduce,unique, as.numeric, %in% +A Simple Trading Startegy

+ +

What if you also include information about bonds? (e.g. download the returns of the the ETF with ticker “TLT”) Is there any relation between stocks and bonds?

+ +

Have fun

+ + + + From ed418ae7f6447999556c14c576cde4dc0d2874b4 Mon Sep 17 00:00:00 2001 From: "config(repo, user.email=readline(\"Github email: \"))" Date: Tue, 24 Jan 2017 22:57:11 +0100 Subject: [PATCH 6/6] solutions exercise 2 by Jaime --- .../Solutios Jaime Andaluz Ex2.Rmd | 326 + .../Solutios Jaime Andaluz Ex2.html | 16633 ++++++++++++++++ 2 files changed, 16959 insertions(+) create mode 100644 Exercises/Exerciseset2/Solutios Jaime Andaluz Ex2.Rmd create mode 100644 Exercises/Exerciseset2/Solutios Jaime Andaluz Ex2.html diff --git a/Exercises/Exerciseset2/Solutios Jaime Andaluz Ex2.Rmd b/Exercises/Exerciseset2/Solutios Jaime Andaluz Ex2.Rmd new file mode 100644 index 00000000..bbc85e7f --- /dev/null +++ b/Exercises/Exerciseset2/Solutios Jaime Andaluz Ex2.Rmd @@ -0,0 +1,326 @@ +--- +title: 'Exercise Set 2: A $300 Billion Strategy' +author: "Jaime Andaluz" +output: + html_document: + css: ../../AnalyticsStyles/default.css + theme: paper + toc: yes + toc_float: + collapsed: no + smooth_scroll: yes + pdf_document: + includes: + in_header: ../../AnalyticsStyles/default.sty +always_allow_html: yes +--- + +> **IMPORTANT**: Please make sure you create a copy of this file with a customized name, so that your work (e.g. answers to the questions) is not over-written when you pull the latest content from the course github. + +```{r setuplibraries, echo=FALSE, message=FALSE} +suppressWarnings(source("../../AnalyticsLibraries/library.R")) +# Package options +suppressWarnings(ggthemr('fresh')) # ggplot theme +opts_knit$set(progress=FALSE, verbose=FALSE) +opts_chunk$set(echo=FALSE, fig.align="center", fig.width=10, fig.height=6.35, results="asis") +options(knitr.kable.NA = '') + +iplot.pnl <- function(x) { + df <- data.frame(Date=as.Date(names(x)), value=cumsum(x)*100) + p <- iplot.df(df, x="Date", y="value", v=NULL, ylab="Cumulative Return") + if (getDocumentOutputFormat() == "html") + p <- p %>% xAxis(type="timeseries", tick=list(format="%d/%m/%Y", count=10), label="Date") %>% legend() + p +} +``` + +The purpose of this exercise is to become familiar with: + +1. Some time series analysis tools; +2. Correlation matrices and principal component analysis (PCA) (see [readings of sessions 3-4](http://inseaddataanalytics.github.io/INSEADAnalytics/CourseSessions/Sessions23/FactorAnalysisReading.html)); +3. More data manipulation and reporting tools (including Google Charts). + +As always, while doing this exercise we will also see how to generate replicable and customizable reports. For this purpose the exercise uses the R Markdown capabilities (see [Markdown Cheat Sheet](https://www.rstudio.com/wp-content/uploads/2015/02/rmarkdown-cheatsheet.pdf) or a [basic introduction to R Markdown](http://rmarkdown.rstudio.com/authoring_basics.html)). These capabilities allow us to create dynamic reports. For example today's date is `r Sys.Date()` (you need to see the .Rmd to understand that this is *not* a static typed-in date but it changes every time you compile the .Rmd - if the date changed of course). + +Before starting, make sure you have pulled the [exercise set 2 souce code files](https://github.com/InseadDataAnalytics/INSEADAnalytics/tree/master/Exercises/Exerciseset2) on your github repository (if you pull the course github repository you also get the exercise set files automatically). Moreover, make sure you are in the directory of this exercise. Directory paths may be complicated, and sometimes a frustrating source of problems, so it is recommended that you use these R commands to find out your current working directory and, if needed, set it where you have the main files for the specific exercise/project (there are other ways, but for now just be aware of this path issue). For example, assuming we are now in the "Data Analytics R version/INSEADAnalytics" directory, we can do these: + +```{r echo=TRUE, eval=FALSE, tidy=TRUE} +getwd() +setwd("Exercises/Exerciseset2/") +list.files() +``` + +**Note:** as always, you can use the `help` command in Rstudio to find out about any R function (e.g. type `help(list.files)` to learn what the R function `list.files` does). + +Let's now see the exercise. + +**IMPORTANT:** You should answer all questions by simply adding your code/answers in this document through editing the file ExerciseSet2.Rmd and then clicking on the "Knit HTML" button in RStudio. Once done, please post your .Rmd and html files in your github repository. + +# The Exercise: Introduction + +For this exercise we will use the Futures' daily returns to develop what is considered to be a *"classic" hedge fund trading strategy*, a **futures trend following strategy**. There is a lot written about this, so it is worth doing some online search about "futures trend following", or "Managed Futures", or "Commodity Trading Advisors (CTA)". There is about **[$300 billion](http://www.barclayhedge.com/research/indices/cta/Money_Under_Management.html)** invested on this strategy today, and is considered to be one of the **oldest hedge fund strategies**. Some example links are: + +* [A fascinating report on 2 centuries of trend following from the CFM hedge - a $6 billion fund](https://www.trendfollowing.com/whitepaper/Two_Centuries_Trend_Following.pdf) +* [Another fascinating report on 1 century of trend following investing from AQR - a $130 billion fund](https://www.aqr.com/library/aqr-publications/a-century-of-evidence-on-trend-following-investing) +* [Wikipedia on CTAs](https://en.wikipedia.org/wiki/Commodity_trading_advisor) +* [Morningstar on CTAs](http://www.morningstar.co.uk/uk/news/69379/commodity-trading-advisors-(cta)-explained.aspx) +* [A report](http://perspectives.pictet.com/wp-content/uploads/2011/01/Trading-Strategies-Final.pdf) +* [Man AHL (a leading hedge fund on CTAs - among others) - an $80 billion fund](https://www.ahl.com) + +Of course there are also many starting points for developing such a strategy (for example [this R bloggers one](http://www.r-bloggers.com/system-from-trend-following-factors/) (also on [github](https://gist.github.com/timelyportfolio/2855303)), or the [turtle traders website](http://turtletrader.com) which has many resources. + +In this exercise we will develop our own strategy from scratch. + +*Note (given today's market conditions):* **Prices of commodities, like oil or gold, can be excellent indicators of the health of the economy and of various industries, as we will also see below**. + +# Getting the Futures Data + +There are many ways to get futures data. For example, one can use the [Quandl package,](https://www.quandl.com/browse) or the [turtle traders resources,](http://turtletrader.com/hpd/) or (for INSEAD only) get data from the [INSEAD library finance data resources](http://sites.insead.edu/library/E_resources/ER_subject.cfm#Stockmarket) website. One has to pay attention on how to create continuous time series from underlying contracts with varying deliveries (e.g. see [here](https://www.quantstart.com/articles/Continuous-Futures-Contracts-for-Backtesting-Purposes) ). Using a combination of the resources above, we will use data for a number of commodities. + + +# Data description + +Let's load the data and see what we have. + +```{r echo=TRUE} +suppressPackageStartupMessages(source("helpersSet2.R")) +load("data/FuturesTrendFollowingData.Rdata") +``` + +We have data from `r head(rownames(futures_data),1)` to `r tail(rownames(futures_data),1)` of daily returns for the following `r ncol(futures_data)` futures: + +```{r echo=TRUE, results='markup'} +print(colnames(futures_data)) +``` + +# Basic data analysis + +Let's see how these are correlated. The correlation matrix is as follows: + +```{r} +show_data = round(cor(futures_data),2) +iprint.df(show_data, scale=TRUE) +``` + +We see quite high correlations among some of the futures. Does it make sense? Why? Do you see some negative correlations? Do those make sense? + +Given such high correlations, we can try to see whether there are some "principal components" (see [reading on dimensionality reduction](http://inseaddataanalytics.github.io/INSEADAnalytics/CourseSessions/Sessions23/FactorAnalysisReading.html)). This analysis can also indicate whether all futures (the global economy!) are driven by some common "factors" (let's call them **"risk factors"**). + +```{r echo=TRUE} +Variance_Explained_Table_results<-PCA(futures_data, graph=FALSE) +Variance_Explained_Table<-Variance_Explained_Table_results$eig +colnames(Variance_Explained_Table)<-c("Eigenvalue", + "Pct of explained variance", "Cumulative pct of explained variance") +``` + +```{r} +show_data = round(Variance_Explained_Table, 2) +iprint.df(show_data) +``` + +Here is the scree plot (see Sessions 3-4 readings): + +```{r echo=TRUE} +eigenvalues <- Variance_Explained_Table[, "Eigenvalue"] +``` + +```{r} +df <- cbind(as.data.frame(eigenvalues), c(1:length(eigenvalues)), rep(1, length(eigenvalues))) +colnames(df) <- c("eigenvalues", "components", "abline") +iplot.df(melt(df, id="components")) +``` + +Let's now see how the 20 first (**rotated**) principal components look like. Let's also use the *rotated* factors (note that these are not really the "principal component", as explained in the [reading on dimensionality reduction](http://inseaddataanalytics.github.io/INSEADAnalytics/CourseSessions/Sessions23/FactorAnalysisReading.html)) and not show any numbers less than 0.3 in absolute value, to avoid cluttering. + +```{r echo=TRUE, tidy=TRUE} +corused = cor(futures_data[,apply(futures_data!=0,2,sum) > 10, drop=F]) +Rotated_Results<-principal(corused, nfactors=20, rotate="varimax",score=TRUE) +Rotated_Factors<-round(Rotated_Results$loadings,2) +Rotated_Factors<-as.data.frame(unclass(Rotated_Factors)) +colnames(Rotated_Factors)<-paste("comp",1:ncol(Rotated_Factors),sep=" ") + +sorted_rows <- sort(Rotated_Factors[,1], decreasing = TRUE, index.return = TRUE)$ix +Rotated_Factors <- Rotated_Factors[sorted_rows,] +Rotated_Factors[abs(Rotated_Factors) < 0.3]<-NA +``` + +```{r} +show_data <- Rotated_Factors +iprint.df(show_data, scale=TRUE) +``` + +**Questions** + +1. How many principal components ("factors") do we need to explain at least 50% of the variance in this data? +2. What are the highest weights (in absolute value) of the first principal component portfolio above on the `r ncol(futures_data)` futures? +3. Can we interpret the first 10 components? How would you call these factors? +4. Can you now generate the principal components and scree plot using only: a) the pre-crisis bull market years (e.g. only using the data between November 1, 2002, and October 1, 2007)? b) the financial crisis years (e.g. only using the data between October 1, 2007 and March 1, 2009), (Hint: you can select subsets of the data using for example the command `crisis_data` `=` `futures_data[` `as.Date(rownames(futures_data))` `>` `"2007-10-01"` `&` `as.Date(rownames(futures_data))` `<` `"2009-03-01"` `,` `]`) +5. Based on your analysis in question 3, please discuss any differences you observe about the futures returns during bull and bear markets. What implications may these results have? What do the results imply about how assets are correlated during bear years compared to bull years? + + +**Answers** + +*1. We need to select 6 components to explain more than 50 percent of the data +
+*2. 5 and 10 years T-notes in US. both with 0.93 in rotated factors in component 1 +* +*3. First ten components explain 62.61 percent of the data. I would call these factors +comp 1: Low risk long term or risk free investments +comp 2: develop nations currencies and gold +comp3 : Stock price market index +comp4: Stock price market index 2 +comp5: European futures +comp6: oil +comp7: metals +comp8: agrilcultural commodities +comp9: precious metals +comp10:asian stock index + +*4.Correlations between these two periods change as well as number of factors that explain more than 50% of the data. During Financial Crisis there was a negative correlation between food commodities and financial securities. Whereas bull market there was a very minimal correlation between commodities and stock market + +*Financial Crisis + +```{r} +crisis_data = futures_data[as.Date(rownames(futures_data)) > "2007-10-01" & as.Date(rownames(futures_data))< "2009-03-01",] +``` + +```{r} +show_data = round(cor(crisis_data),2) +iprint.df(show_data, scale=TRUE) +``` +```{r} +Variance_Explained_Table_results1<-PCA(crisis_data, graph=FALSE) +Variance_Explained_Table1<-Variance_Explained_Table_results1$eig +colnames(Variance_Explained_Table1)<-c("Eigenvalue", + "Pct of explained variance", "Cumulative pct of explained variance") +``` + +```{r} +show_data = round(Variance_Explained_Table1, 2) +iprint.df(show_data) +eigenvalues <- Variance_Explained_Table1[, "Eigenvalue"] +df <- cbind(as.data.frame(eigenvalues), c(1:length(eigenvalues)), rep(1, length(eigenvalues1))) +colnames(df) <- c("eigenvalues", "components", "abline") +iplot.df(melt(df, id="components")) +``` +* + +* Bull period + +```{r} +crisis_data2 = futures_data[as.Date(rownames(futures_data)) > "2002-11-01" & as.Date(rownames(futures_data))< "2007-10-01",] +``` + +```{r} +show_data = round(cor(crisis_data2),2) +iprint.df(show_data, scale=TRUE) +``` +```{r} +Variance_Explained_Table_results2<-PCA(crisis_data2, graph=FALSE) +Variance_Explained_Table2<-Variance_Explained_Table_results2$eig +colnames(Variance_Explained_Table2)<-c("Eigenvalue", + "Pct of explained variance", "Cumulative pct of explained variance") +``` + + +```{r} +show_data = round(Variance_Explained_Table2, 2) +iprint.df(show_data) +eigenvalues <- Variance_Explained_Table2[, "Eigenvalue"] +df <- cbind(as.data.frame(eigenvalues), c(1:length(eigenvalues)), rep(1, length(eigenvalues2))) +colnames(df) <- c("eigenvalues", "components", "abline") +iplot.df(melt(df, id="components")) +``` + +### A Simple Futures Trend Following Strategy + +We can now develop a simple futures trend following trading strategy, as outlined in the papers in the Exercise Introduction above. There are about $300 billion invested in such strategies! Of course we cannot develop here a sophisticated product, but with some more work... + +We will do the following: + +1. Calculate a number of moving averages of different "window lengths" for each of the `r ncol(futures_data)` futures - there are [many](http://www.r-bloggers.com/stock-analysis-using-r/) so called [technical indicators](http://www.investopedia.com/active-trading/technical-indicators/) one can use. We will use the "moving average" function `ma` for this (try for example to see what this returns `ma(1:10,2)` ). +2. Add the signs (can also use the actual moving average values of course - try it!) of these moving averages (as if they "vote"), and then scale this sum across all futures so that the sum of their (of the sum across all futures!) absolute value across all futures is 1 (hence we invest $1 every day - you see why?). +3. Then invest every day in each of the `r ncol(futures_data)` an amount that is defined by the weights calculated in step 2, using however the weights calculated using data until 2 days ago (why 2 days and not 1 day?) - see the use of the helper function `shift` for this. +4. Finally see the performance of this strategy. + +Here is the code: + +```{r echo=TRUE, tidy=TRUE} +signal_used = 0*futures_data # just initialize the trading signal to be 0 +# Take many moving Average (MA) Signals and let them "vote" with their sign (+-1, e.g. long or short vote, for each signal) +MAfreq<-seq(10,250,by=20) +for (iter in 1:length(MAfreq)) + signal_used = signal_used + sign(apply(futures_data,2, function(r) ma(r,MAfreq[iter]))) +# Now make sure we invest $1 every day (so the sum of the absolute values of the weights is 1 every day) +signal_used = t(apply(signal_used,1,function(r) { + res = r + if ( sum(abs(r)) !=0 ) + res = r/sum(abs(r)) + res +})) +colnames(signal_used) <- colnames(futures_data) +# Now create the returns of the strategy for each futures time series +strategy_by_future <- scrub(shift(signal_used,2)*futures_data) # signal 2 days ago +# finally, this is our futures trend following strategy +trading_strategy = apply(strategy_by_future,1,sum) +names(trading_strategy) <- rownames(futures_data) +``` + +# Reporting the performance results + +Let's see how this strategy does: + +```{r} +iplot.pnl(trading_strategy) +``` + +Here is how this strategy has performed during this period: + +```{r} +show_data = round(pnl_matrix(trading_strategy),2) +iprint.df(show_data) +``` + +How does this compare with **existing CTA products** such as [this one from Societe Generale?](https://cib.societegenerale.com/fileadmin/indices_feeds/SG_CTA_Monthly_Report.pdf) (Note: one can easily achieve a correlation of more than 0.8 with this specific product - as well as with many other ones) + +![Compare our strategy with this product](societegenerale.png) + +**Questions** + +1. Can you describe in more detail what the code above does? +2. What happens if you use different moving average technical indicators in the code above? Please explore and report below the returns of a trading strategy you build. (Hint: check that the command line `MAfreq<-seq(10,250,by=20)` above does for example - but not only of course, the possibilities are endless) + +**Answers** + +1. The code is varied by "MAfreq" which creates intervals from 10 to 250 and then the solution is iterated in order to define the investment strategy +2. The command MAfreq<-seq(10,250,by=20), affects how often the trading strategy is implemented depending on a moving average. +* +* +* +* +* + +# A class competition + +Now you have seen how to develop some trading strategies that hedge funds have been using for centuries. Clearly this is only the very first step - as many of the online resources on technical indicators also suggest. Can you now explore more such strategies? How good a **futures trend following hedge fund strategy** can you develop? Let's call this.... a **class competition**! Explore as much as you can and report your best strategy as we move along the course... + +Here is for example something that can be achieved relatively easily... + +```{r} +load("data/sample_strategy.Rdata") +iplot.pnl(sample_strategy) +``` + +Here is how this strategy has performed during this period: + +```{r} +show_data = round(pnl_matrix(sample_strategy),2) +iprint.df(show_data) +``` + +As always, **have fun** + + + + + diff --git a/Exercises/Exerciseset2/Solutios Jaime Andaluz Ex2.html b/Exercises/Exerciseset2/Solutios Jaime Andaluz Ex2.html new file mode 100644 index 00000000..b0eb892d --- /dev/null +++ b/Exercises/Exerciseset2/Solutios Jaime Andaluz Ex2.html @@ -0,0 +1,16633 @@ + + + + Exercise Set 2: A $300 Billion Strategy + + + + + + + + + + + + + + + + + + + + + + + + + +
+

Exercise Set 2: A $300 Billion Strategy

+

+

Jaime Andaluz

+
+
+
+ + + + +
+
+

IMPORTANT: Please make sure you create a copy of this file with a customized name, so that your work (e.g. answers to the questions) is not over-written when you pull the latest content from the course github.

+
+ +

The purpose of this exercise is to become familiar with:

+ +
    +
  1. Some time series analysis tools;
  2. +
  3. Correlation matrices and principal component analysis (PCA) (see readings of sessions 3-4);
  4. +
  5. More data manipulation and reporting tools (including Google Charts).
  6. +
+ +

As always, while doing this exercise we will also see how to generate replicable and customizable reports. For this purpose the exercise uses the R Markdown capabilities (see Markdown Cheat Sheet or a basic introduction to R Markdown). These capabilities allow us to create dynamic reports. For example today's date is 2017-01-24 (you need to see the .Rmd to understand that this is not a static typed-in date but it changes every time you compile the .Rmd - if the date changed of course).

+ +

Before starting, make sure you have pulled the exercise set 2 souce code files on your github repository (if you pull the course github repository you also get the exercise set files automatically). Moreover, make sure you are in the directory of this exercise. Directory paths may be complicated, and sometimes a frustrating source of problems, so it is recommended that you use these R commands to find out your current working directory and, if needed, set it where you have the main files for the specific exercise/project (there are other ways, but for now just be aware of this path issue). For example, assuming we are now in the "Data Analytics R version/INSEADAnalytics" directory, we can do these:

+ +
getwd()
+setwd("Exercises/Exerciseset2/")
+list.files()
+
+ +

Note: as always, you can use the help command in Rstudio to find out about any R function (e.g. type help(list.files) to learn what the R function list.files does).

+ +

Let's now see the exercise.

+ +

IMPORTANT: You should answer all questions by simply adding your code/answers in this document through editing the file ExerciseSet2.Rmd and then clicking on the "Knit HTML" button in RStudio. Once done, please post your .Rmd and html files in your github repository.

+ +

The Exercise: Introduction

+ +

For this exercise we will use the Futures' daily returns to develop what is considered to be a "classic" hedge fund trading strategy, a futures trend following strategy. There is a lot written about this, so it is worth doing some online search about "futures trend following", or "Managed Futures", or "Commodity Trading Advisors (CTA)". There is about $300 billion invested on this strategy today, and is considered to be one of the oldest hedge fund strategies. Some example links are:

+ + + +

Of course there are also many starting points for developing such a strategy (for example this R bloggers one (also on github), or the turtle traders website which has many resources.

+ +

In this exercise we will develop our own strategy from scratch.

+ +

Note (given today's market conditions): Prices of commodities, like oil or gold, can be excellent indicators of the health of the economy and of various industries, as we will also see below.

+ +

Getting the Futures Data

+ +

There are many ways to get futures data. For example, one can use the Quandl package, or the turtle traders resources, or (for INSEAD only) get data from the INSEAD library finance data resources website. One has to pay attention on how to create continuous time series from underlying contracts with varying deliveries (e.g. see here ). Using a combination of the resources above, we will use data for a number of commodities.

+ +

Data description

+ +

Let's load the data and see what we have.

+ +
suppressPackageStartupMessages(source("helpersSet2.R"))
+load("data/FuturesTrendFollowingData.Rdata")
+
+ +

We have data from 2001-01-02 to 2015-09-24 of daily returns for the following 64 futures:

+ +
print(colnames(futures_data))
+
+ +
##  [1] "Corn"               "Wheat"              "Soybeans"          
+##  [4] "Soybean Oil"        "Soybean Meal"       "Lean Hoggs"        
+##  [7] "Sugar"              "Coffee"             "Cocoa"             
+## [10] "Cotton"             "Canola"             "Orange Juice"      
+## [13] "Lumber"             "Natural Gas"        "Crude Oil"         
+## [16] "Brent Crude"        "Heating Oil"        "Kerosene"          
+## [19] "Gas Oil"            "Gasoline"           "Copper NY"         
+## [22] "Copper LDN"         "Silver"             "Gold"              
+## [25] "Platinum"           "Palladium"          "Aluminium"         
+## [28] "Zinc"               "Nickel"             "Treasury Bonds"    
+## [31] "5 yr T-Notes US"    "2 yr T-Note US"     "10yr T-Notes"      
+## [34] "Euro-Bund"          "Euro-Bobl"          "Euro-Schatz"       
+## [37] "Canadian Bond"      "JGB Japan"          "Gilts UK"          
+## [40] "Euroyen"            "Eurodollar"         "Euroswiss"         
+## [43] "Euribor"            "SP500 E-Mini"       "DAX 30"            
+## [46] "Eurostoxx"          "Hang Seng"          "FTSE 100 UK"       
+## [49] "Nasdaq 100 Mini"    "Russel 2000 E-Mini" "Dow Jones"         
+## [52] "TSE Toronto"        "CAC 40 France"      "OMX 30 Stockholm"  
+## [55] "NIKKEI 225"         "Euro"               "Norwegian Krone"   
+## [58] "New Zealand Dollar" "Australian Dollar"  "British Pound"     
+## [61] "Canadian Dollar"    "Swiss Franc"        "Japanese Yen"      
+## [64] "Singapore Dollar"
+
+ +

Basic data analysis

+ +

Let's see how these are correlated. The correlation matrix is as follows:

+ +

<!--html_preserve-->

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Corn Wheat Soybeans Soybean Oil Soybean Meal Lean Hoggs Sugar Coffee Cocoa Cotton Canola Orange Juice Lumber Natural Gas Crude Oil Brent Crude Heating Oil Kerosene Gas Oil Gasoline Copper NY Copper LDN Silver Gold Platinum Palladium Aluminium Zinc Nickel Treasury Bonds 5 yr T-Notes US 2 yr T-Note US 10yr T-Notes Euro-Bund Euro-Bobl Euro-Schatz Canadian Bond JGB Japan Gilts UK Euroyen Eurodollar Euroswiss Euribor SP500 E-Mini DAX 30 Eurostoxx Hang Seng FTSE 100 UK Nasdaq 100 Mini Russel 2000 E-Mini Dow Jones TSE Toronto CAC 40 France OMX 30 Stockholm NIKKEI 225 Euro Norwegian Krone New Zealand Dollar Australian Dollar British Pound Canadian Dollar Swiss Franc Japanese Yen Singapore Dollar
Corn 1.00 0.63 0.60 0.51 0.52 0.02 0.21 0.17 0.10 0.23 0.45 0.06 0.08 0.12 0.24 0.25 0.22 0.02 0.15 0.25 0.23 0.22 0.23 0.18 0.13 0.17 0.20 0.18 0.16 -0.08 -0.07 -0.05 -0.07 -0.08 -0.06 -0.08 -0.07 -0.03 -0.06 -0.01 -0.01 -0.05 -0.07 0.14 0.13 0.13 0.08 0.16 0.10 0.12 0.11 0.18 0.13 0.15 0.05 0.17 0.20 0.18 0.21 0.16 -0.20 0.11 -0.02 0.17
Wheat 0.63 1.00 0.45 0.42 0.39 0.03 0.20 0.18 0.09 0.22 0.38 0.03 0.07 0.09 0.21 0.21 0.18 0.00 0.12 0.21 0.21 0.21 0.20 0.16 0.12 0.15 0.17 0.17 0.14 -0.10 -0.09 -0.07 -0.09 -0.07 -0.06 -0.06 -0.07 -0.02 -0.06 -0.01 -0.04 -0.06 -0.06 0.13 0.13 0.13 0.06 0.15 0.10 0.13 0.11 0.17 0.13 0.13 0.05 0.16 0.20 0.18 0.20 0.15 -0.20 0.12 0.00 0.16
Soybeans 0.60 0.45 1.00 0.74 0.84 0.04 0.20 0.16 0.12 0.26 0.64 0.08 0.08 0.11 0.27 0.27 0.25 0.04 0.18 0.28 0.28 0.26 0.24 0.17 0.17 0.21 0.23 0.21 0.18 -0.12 -0.11 -0.09 -0.11 -0.11 -0.10 -0.10 -0.09 -0.02 -0.12 -0.02 -0.05 -0.09 -0.09 0.15 0.17 0.17 0.13 0.20 0.11 0.14 0.13 0.20 0.18 0.20 0.08 0.17 0.22 0.19 0.25 0.17 -0.22 0.11 -0.01 0.21
Soybean Oil 0.51 0.42 0.74 1.00 0.47 0.04 0.20 0.18 0.13 0.28 0.64 0.10 0.09 0.13 0.34 0.34 0.31 0.09 0.25 0.37 0.32 0.30 0.29 0.23 0.20 0.24 0.27 0.25 0.22 -0.14 -0.12 -0.09 -0.12 -0.11 -0.10 -0.11 -0.10 -0.02 -0.13 0.00 -0.04 -0.08 -0.08 0.20 0.20 0.20 0.19 0.25 0.14 0.19 0.18 0.24 0.22 0.24 0.12 0.20 0.26 0.24 0.30 0.21 -0.28 0.13 -0.05 0.23
Soybean Meal 0.52 0.39 0.84 0.47 1.00 0.02 0.16 0.13 0.09 0.20 0.51 0.08 0.07 0.09 0.17 0.17 0.16 0.02 0.11 0.17 0.20 0.18 0.17 0.12 0.12 0.15 0.16 0.15 0.13 -0.08 -0.08 -0.07 -0.08 -0.07 -0.07 -0.07 -0.06 -0.02 -0.08 -0.01 -0.04 -0.07 -0.07 0.10 0.13 0.13 0.09 0.15 0.08 0.09 0.09 0.15 0.13 0.15 0.07 0.13 0.16 0.15 0.19 0.12 -0.17 0.08 0.01 0.16
Lean Hoggs 0.02 0.03 0.04 0.04 0.02 1.00 0.03 0.02 0.03 0.02 0.01 0.01 0.03 0.04 0.07 0.06 0.05 -0.02 0.02 0.05 0.06 0.06 0.02 0.01 0.05 0.04 0.05 0.07 0.06 -0.04 -0.05 -0.04 -0.04 -0.04 -0.03 -0.02 -0.04 0.01 -0.05 0.00 -0.05 -0.05 -0.04 0.04 0.04 0.06 0.01 0.06 0.01 0.02 0.03 0.05 0.06 0.04 0.02 0.00 0.01 0.01 0.02 0.02 -0.03 -0.02 -0.03 0.01
Sugar 0.21 0.20 0.20 0.20 0.16 0.03 1.00 0.22 0.15 0.19 0.17 0.06 0.04 0.07 0.20 0.19 0.17 0.02 0.14 0.19 0.23 0.21 0.18 0.13 0.12 0.16 0.19 0.18 0.16 -0.07 -0.06 -0.04 -0.06 -0.09 -0.10 -0.09 -0.05 0.00 -0.08 0.00 -0.01 -0.04 -0.06 0.11 0.12 0.13 0.08 0.15 0.08 0.11 0.08 0.13 0.13 0.14 0.08 0.13 0.15 0.17 0.20 0.13 -0.15 0.09 -0.04 0.16
Coffee 0.17 0.18 0.16 0.18 0.13 0.02 0.22 1.00 0.18 0.16 0.12 0.06 0.07 0.05 0.15 0.14 0.13 0.04 0.12 0.15 0.19 0.18 0.20 0.15 0.13 0.17 0.17 0.17 0.15 -0.06 -0.05 -0.03 -0.05 -0.06 -0.06 -0.06 -0.05 0.00 -0.05 -0.01 -0.01 -0.05 -0.04 0.12 0.13 0.13 0.11 0.13 0.07 0.12 0.11 0.14 0.13 0.14 0.07 0.15 0.17 0.19 0.20 0.15 -0.17 0.08 0.00 0.16
Cocoa 0.10 0.09 0.12 0.13 0.09 0.03 0.15 0.18 1.00 0.12 0.08 0.05 0.06 0.04 0.16 0.15 0.13 0.06 0.15 0.14 0.17 0.17 0.21 0.18 0.13 0.14 0.16 0.16 0.12 -0.08 -0.06 -0.02 -0.07 -0.10 -0.09 -0.06 -0.07 -0.01 -0.09 -0.03 -0.01 -0.05 -0.05 0.10 0.11 0.12 0.12 0.11 0.06 0.11 0.09 0.13 0.13 0.14 0.07 0.21 0.22 0.22 0.23 0.24 -0.20 0.14 0.01 0.19
Cotton 0.23 0.22 0.26 0.28 0.20 0.02 0.19 0.16 0.12 1.00 0.22 0.08 0.07 0.04 0.20 0.20 0.18 0.03 0.16 0.19 0.23 0.22 0.17 0.13 0.10 0.15 0.19 0.18 0.18 -0.10 -0.10 -0.08 -0.10 -0.09 -0.09 -0.10 -0.08 -0.02 -0.08 0.01 -0.06 -0.07 -0.07 0.17 0.16 0.17 0.09 0.18 0.13 0.16 0.15 0.18 0.17 0.17 0.05 0.17 0.20 0.17 0.21 0.15 -0.20 0.11 -0.01 0.17
Canola 0.45 0.38 0.64 0.64 0.51 0.01 0.17 0.12 0.08 0.22 1.00 0.06 0.06 0.06 0.17 0.19 0.16 0.03 0.11 0.21 0.18 0.16 0.18 0.13 0.12 0.15 0.15 0.14 0.12 -0.09 -0.09 -0.07 -0.08 -0.06 -0.07 -0.09 -0.05 -0.02 -0.07 -0.01 -0.05 -0.06 -0.09 0.09 0.10 0.10 0.11 0.13 0.07 0.07 0.07 0.16 0.11 0.13 0.06 0.09 0.13 0.11 0.15 0.10 -0.06 0.05 -0.02 0.12
Orange Juice 0.06 0.03 0.08 0.10 0.08 0.01 0.06 0.06 0.05 0.08 0.06 1.00 0.04 0.05 0.10 0.08 0.08 0.04 0.08 0.09 0.09 0.08 0.10 0.06 0.06 0.07 0.10 0.07 0.08 -0.05 -0.03 -0.02 -0.04 -0.06 -0.06 -0.06 -0.07 -0.03 -0.06 -0.02 -0.01 -0.02 -0.04 0.08 0.08 0.09 0.07 0.10 0.06 0.06 0.08 0.10 0.08 0.11 0.07 0.06 0.05 0.07 0.09 0.03 -0.09 0.03 -0.03 0.07
Lumber 0.08 0.07 0.08 0.09 0.07 0.03 0.04 0.07 0.06 0.07 0.06 0.04 1.00 0.00 0.07 0.07 0.07 0.04 0.05 0.09 0.12 0.11 0.07 0.02 0.03 0.06 0.10 0.08 0.09 -0.10 -0.11 -0.09 -0.11 -0.08 -0.08 -0.07 -0.09 0.01 -0.10 -0.01 -0.07 -0.08 -0.06 0.12 0.14 0.14 0.08 0.14 0.12 0.10 0.11 0.10 0.14 0.12 0.04 0.05 0.08 0.09 0.11 0.08 -0.09 0.01 -0.07 0.09
Natural Gas 0.12 0.09 0.11 0.13 0.09 0.04 0.07 0.05 0.04 0.04 0.06 0.05 0.00 1.00 0.29 0.27 0.34 0.00 0.20 0.16 0.10 0.09 0.08 0.07 0.04 0.06 0.09 0.06 0.05 -0.02 -0.02 -0.02 -0.02 0.00 0.00 0.01 -0.02 -0.01 -0.01 0.00 -0.01 -0.01 0.00 0.04 0.04 0.03 0.03 0.04 0.02 0.03 0.03 0.10 0.04 0.04 0.03 0.07 0.07 0.07 0.09 0.06 -0.10 0.06 0.01 0.05
Crude Oil 0.24 0.21 0.27 0.34 0.17 0.07 0.20 0.15 0.16 0.20 0.17 0.10 0.07 0.29 1.00 0.89 0.84 0.10 0.56 0.66 0.37 0.35 0.29 0.26 0.20 0.24 0.30 0.27 0.25 -0.20 -0.14 -0.10 -0.17 -0.15 -0.14 -0.12 -0.15 -0.02 -0.14 -0.03 -0.05 -0.08 -0.08 0.23 0.19 0.20 0.15 0.25 0.13 0.23 0.19 0.33 0.22 0.25 0.10 0.23 0.32 0.25 0.32 0.22 -0.34 0.13 -0.06 0.25
Brent Crude 0.25 0.21 0.27 0.34 0.17 0.06 0.19 0.14 0.15 0.20 0.19 0.08 0.07 0.27 0.89 1.00 0.85 0.11 0.62 0.69 0.36 0.34 0.29 0.25 0.20 0.24 0.29 0.27 0.25 -0.17 -0.13 -0.09 -0.14 -0.13 -0.12 -0.10 -0.13 -0.02 -0.12 -0.01 -0.03 -0.08 -0.07 0.23 0.18 0.19 0.16 0.25 0.13 0.24 0.19 0.33 0.22 0.25 0.12 0.23 0.31 0.26 0.32 0.24 -0.34 0.14 -0.05 0.24
Heating Oil 0.22 0.18 0.25 0.31 0.16 0.05 0.17 0.13 0.13 0.18 0.16 0.08 0.07 0.34 0.84 0.85 1.00 0.10 0.64 0.63 0.31 0.30 0.26 0.23 0.18 0.21 0.25 0.24 0.21 -0.14 -0.10 -0.08 -0.11 -0.10 -0.09 -0.08 -0.11 -0.01 -0.09 -0.02 -0.03 -0.06 -0.05 0.19 0.15 0.15 0.13 0.20 0.11 0.21 0.16 0.28 0.18 0.21 0.10 0.20 0.26 0.22 0.28 0.20 -0.30 0.13 -0.03 0.21
Kerosene 0.02 0.00 0.04 0.09 0.02 -0.02 0.02 0.04 0.06 0.03 0.03 0.04 0.04 0.00 0.10 0.11 0.10 1.00 0.28 0.10 0.09 0.10 0.08 0.05 0.14 0.15 0.10 0.08 0.07 -0.03 -0.01 0.00 -0.02 -0.08 -0.06 -0.05 -0.02 -0.14 -0.11 -0.05 0.02 -0.04 -0.02 0.04 0.07 0.09 0.23 0.11 0.01 0.04 0.03 0.08 0.08 0.11 0.33 0.05 0.12 0.11 0.12 0.10 -0.11 0.04 -0.13 0.05
Gas Oil 0.15 0.12 0.18 0.25 0.11 0.02 0.14 0.12 0.15 0.16 0.11 0.08 0.05 0.20 0.56 0.62 0.64 0.28 1.00 0.40 0.29 0.30 0.24 0.19 0.18 0.21 0.25 0.25 0.21 -0.11 -0.07 -0.04 -0.09 -0.10 -0.09 -0.07 -0.09 -0.03 -0.11 -0.01 -0.01 -0.06 -0.04 0.13 0.15 0.16 0.14 0.21 0.08 0.15 0.11 0.19 0.17 0.21 0.09 0.20 0.29 0.23 0.27 0.20 -0.31 0.16 -0.03 0.21
Gasoline 0.25 0.21 0.28 0.37 0.17 0.05 0.19 0.15 0.14 0.19 0.21 0.09 0.09 0.16 0.66 0.69 0.63 0.10 0.40 1.00 0.36 0.34 0.28 0.23 0.21 0.25 0.30 0.27 0.26 -0.18 -0.15 -0.10 -0.16 -0.15 -0.15 -0.15 -0.15 -0.02 -0.14 -0.05 -0.06 -0.11 -0.12 0.26 0.22 0.23 0.18 0.28 0.16 0.26 0.23 0.35 0.25 0.28 0.13 0.19 0.28 0.23 0.31 0.21 -0.31 0.10 -0.08 0.22
Copper NY 0.23 0.21 0.28 0.32 0.20 0.06 0.23 0.19 0.17 0.23 0.18 0.09 0.12 0.10 0.37 0.36 0.31 0.09 0.29 0.36 1.00 0.91 0.45 0.36 0.31 0.39 0.67 0.68 0.57 -0.20 -0.17 -0.13 -0.18 -0.20 -0.19 -0.17 -0.17 -0.06 -0.19 -0.03 -0.06 -0.14 -0.14 0.28 0.36 0.37 0.25 0.40 0.21 0.23 0.26 0.33 0.38 0.38 0.18 0.29 0.35 0.38 0.45 0.29 -0.38 0.20 -0.08 0.32
Copper LDN 0.22 0.21 0.26 0.30 0.18 0.06 0.21 0.18 0.17 0.22 0.16 0.08 0.11 0.09 0.35 0.34 0.30 0.10 0.30 0.34 0.91 1.00 0.42 0.33 0.31 0.39 0.72 0.75 0.60 -0.19 -0.17 -0.12 -0.17 -0.22 -0.20 -0.19 -0.17 -0.06 -0.21 -0.02 -0.06 -0.15 -0.15 0.28 0.38 0.39 0.26 0.43 0.20 0.24 0.26 0.33 0.41 0.41 0.18 0.28 0.35 0.38 0.45 0.28 -0.39 0.18 -0.07 0.33
Silver 0.23 0.20 0.24 0.29 0.17 0.02 0.18 0.20 0.21 0.17 0.18 0.10 0.07 0.08 0.29 0.29 0.26 0.08 0.24 0.28 0.45 0.42 1.00 0.78 0.44 0.51 0.37 0.37 0.29 -0.01 0.02 0.04 0.01 -0.01 0.01 0.01 0.00 0.00 0.00 -0.01 0.06 -0.01 0.00 0.09 0.13 0.13 0.17 0.18 0.04 0.11 0.08 0.23 0.15 0.19 0.12 0.40 0.43 0.40 0.43 0.37 -0.39 0.35 0.14 0.37
Gold 0.18 0.16 0.17 0.23 0.12 0.01 0.13 0.15 0.18 0.13 0.13 0.06 0.02 0.07 0.26 0.25 0.23 0.05 0.19 0.23 0.36 0.33 0.78 1.00 0.43 0.44 0.29 0.30 0.23 0.10 0.12 0.12 0.12 0.11 0.12 0.12 0.10 0.03 0.12 -0.01 0.10 0.07 0.08 -0.02 -0.02 -0.02 0.06 0.04 -0.04 0.01 -0.03 0.14 0.00 0.07 0.05 0.42 0.41 0.35 0.37 0.36 -0.34 0.41 0.23 0.36
Platinum 0.13 0.12 0.17 0.20 0.12 0.05 0.12 0.13 0.13 0.10 0.12 0.06 0.03 0.04 0.20 0.20 0.18 0.14 0.18 0.21 0.31 0.31 0.44 0.43 1.00 0.46 0.30 0.27 0.23 -0.08 -0.06 -0.05 -0.06 -0.09 -0.09 -0.08 -0.06 -0.02 -0.07 0.00 -0.01 -0.07 -0.06 0.12 0.14 0.14 0.15 0.16 0.08 0.13 0.11 0.20 0.16 0.18 0.13 0.24 0.28 0.29 0.33 0.23 -0.27 0.20 0.03 0.27
Palladium 0.17 0.15 0.21 0.24 0.15 0.04 0.16 0.17 0.14 0.15 0.15 0.07 0.06 0.06 0.24 0.24 0.21 0.15 0.21 0.25 0.39 0.39 0.51 0.44 0.46 1.00 0.36 0.36 0.29 -0.11 -0.08 -0.05 -0.09 -0.10 -0.08 -0.06 -0.08 -0.04 -0.09 -0.02 0.00 -0.06 -0.04 0.19 0.21 0.22 0.18 0.26 0.13 0.20 0.17 0.27 0.23 0.27 0.15 0.28 0.32 0.32 0.36 0.25 -0.33 0.22 0.03 0.31
Aluminium 0.20 0.17 0.23 0.27 0.16 0.05 0.19 0.17 0.16 0.19 0.15 0.10 0.10 0.09 0.30 0.29 0.25 0.10 0.25 0.30 0.67 0.72 0.37 0.29 0.30 0.36 1.00 0.68 0.53 -0.16 -0.13 -0.10 -0.14 -0.17 -0.16 -0.15 -0.15 -0.05 -0.16 -0.04 -0.04 -0.13 -0.12 0.23 0.30 0.31 0.18 0.33 0.17 0.20 0.22 0.28 0.32 0.32 0.15 0.27 0.32 0.31 0.36 0.26 -0.34 0.20 -0.04 0.31
Zinc 0.18 0.17 0.21 0.25 0.15 0.07 0.18 0.17 0.16 0.18 0.14 0.07 0.08 0.06 0.27 0.27 0.24 0.08 0.25 0.27 0.68 0.75 0.37 0.30 0.27 0.36 0.68 1.00 0.57 -0.14 -0.14 -0.11 -0.13 -0.16 -0.16 -0.16 -0.14 -0.05 -0.16 -0.03 -0.06 -0.13 -0.12 0.21 0.29 0.30 0.22 0.35 0.15 0.19 0.20 0.26 0.33 0.33 0.16 0.24 0.30 0.31 0.37 0.23 -0.33 0.15 -0.06 0.27
Nickel 0.16 0.14 0.18 0.22 0.13 0.06 0.16 0.15 0.12 0.18 0.12 0.08 0.09 0.05 0.25 0.25 0.21 0.07 0.21 0.26 0.57 0.60 0.29 0.23 0.23 0.29 0.53 0.57 1.00 -0.13 -0.12 -0.09 -0.12 -0.16 -0.13 -0.12 -0.12 -0.04 -0.15 -0.03 -0.05 -0.10 -0.09 0.20 0.26 0.27 0.18 0.30 0.14 0.17 0.19 0.23 0.29 0.27 0.13 0.19 0.24 0.26 0.31 0.18 -0.28 0.13 -0.06 0.23
Treasury Bonds -0.08 -0.10 -0.12 -0.14 -0.08 -0.04 -0.07 -0.06 -0.08 -0.10 -0.09 -0.05 -0.10 -0.02 -0.20 -0.17 -0.14 -0.03 -0.11 -0.18 -0.20 -0.19 -0.01 0.10 -0.08 -0.11 -0.16 -0.14 -0.13 1.00 0.85 0.66 0.93 0.61 0.56 0.46 0.81 0.09 0.54 0.04 0.54 0.33 0.33 -0.35 -0.35 -0.35 -0.12 -0.31 -0.29 -0.31 -0.33 -0.28 -0.34 -0.28 -0.09 0.04 -0.05 -0.09 -0.13 -0.01 0.17 0.15 0.31 -0.09
5 yr T-Notes US -0.07 -0.09 -0.11 -0.12 -0.08 -0.05 -0.06 -0.05 -0.06 -0.10 -0.09 -0.03 -0.11 -0.02 -0.14 -0.13 -0.10 -0.01 -0.07 -0.15 -0.17 -0.17 0.02 0.12 -0.06 -0.08 -0.13 -0.14 -0.12 0.85 1.00 0.90 0.96 0.55 0.57 0.52 0.77 0.09 0.49 0.04 0.76 0.37 0.40 -0.35 -0.35 -0.34 -0.13 -0.30 -0.31 -0.27 -0.33 -0.26 -0.32 -0.25 -0.08 0.11 0.00 -0.05 -0.09 0.04 0.11 0.21 0.34 -0.03
2 yr T-Note US -0.05 -0.07 -0.09 -0.09 -0.07 -0.04 -0.04 -0.03 -0.02 -0.08 -0.07 -0.02 -0.09 -0.02 -0.10 -0.09 -0.08 0.00 -0.04 -0.10 -0.13 -0.12 0.04 0.12 -0.05 -0.05 -0.10 -0.11 -0.09 0.66 0.90 1.00 0.81 0.45 0.50 0.51 0.64 0.07 0.39 0.04 0.85 0.38 0.42 -0.33 -0.31 -0.30 -0.12 -0.27 -0.30 -0.22 -0.30 -0.23 -0.28 -0.21 -0.07 0.15 0.05 -0.02 -0.06 0.08 0.06 0.22 0.31 0.02
10yr T-Notes -0.07 -0.09 -0.11 -0.12 -0.08 -0.04 -0.06 -0.05 -0.07 -0.10 -0.08 -0.04 -0.11 -0.02 -0.17 -0.14 -0.11 -0.02 -0.09 -0.16 -0.18 -0.17 0.01 0.12 -0.06 -0.09 -0.14 -0.13 -0.12 0.93 0.96 0.81 1.00 0.59 0.59 0.51 0.82 0.10 0.53 0.04 0.68 0.36 0.38 -0.35 -0.35 -0.35 -0.12 -0.30 -0.30 -0.28 -0.32 -0.27 -0.33 -0.26 -0.08 0.09 -0.02 -0.06 -0.10 0.02 0.13 0.20 0.34 -0.06
Euro-Bund -0.08 -0.07 -0.11 -0.11 -0.07 -0.04 -0.09 -0.06 -0.10 -0.09 -0.06 -0.06 -0.08 0.00 -0.15 -0.13 -0.10 -0.08 -0.10 -0.15 -0.20 -0.22 -0.01 0.11 -0.09 -0.10 -0.17 -0.16 -0.16 0.61 0.55 0.45 0.59 1.00 0.93 0.76 0.62 0.14 0.81 0.08 0.34 0.49 0.59 -0.30 -0.43 -0.46 -0.16 -0.40 -0.23 -0.27 -0.29 -0.25 -0.45 -0.36 -0.12 -0.02 -0.08 -0.09 -0.13 -0.04 0.17 0.11 0.33 -0.11
Euro-Bobl -0.06 -0.06 -0.10 -0.10 -0.07 -0.03 -0.10 -0.06 -0.09 -0.09 -0.07 -0.06 -0.08 0.00 -0.14 -0.12 -0.09 -0.06 -0.09 -0.15 -0.19 -0.20 0.01 0.12 -0.09 -0.08 -0.16 -0.16 -0.13 0.56 0.57 0.50 0.59 0.93 1.00 0.91 0.59 0.14 0.74 0.08 0.41 0.56 0.73 -0.31 -0.43 -0.46 -0.16 -0.41 -0.25 -0.26 -0.29 -0.25 -0.45 -0.35 -0.12 0.00 -0.05 -0.07 -0.11 -0.02 0.14 0.15 0.33 -0.09
Euro-Schatz -0.08 -0.06 -0.10 -0.11 -0.07 -0.02 -0.09 -0.06 -0.06 -0.10 -0.09 -0.06 -0.07 0.01 -0.12 -0.10 -0.08 -0.05 -0.07 -0.15 -0.17 -0.19 0.01 0.12 -0.08 -0.06 -0.15 -0.16 -0.12 0.46 0.52 0.51 0.51 0.76 0.91 1.00 0.51 0.12 0.59 0.07 0.45 0.59 0.81 -0.29 -0.41 -0.43 -0.16 -0.39 -0.24 -0.22 -0.26 -0.24 -0.42 -0.32 -0.13 0.02 -0.02 -0.06 -0.11 0.00 0.11 0.17 0.30 -0.06
Canadian Bond -0.07 -0.07 -0.09 -0.10 -0.06 -0.04 -0.05 -0.05 -0.07 -0.08 -0.05 -0.07 -0.09 -0.02 -0.15 -0.13 -0.11 -0.02 -0.09 -0.15 -0.17 -0.17 0.00 0.10 -0.06 -0.08 -0.15 -0.14 -0.12 0.81 0.77 0.64 0.82 0.62 0.59 0.51 1.00 0.10 0.55 0.05 0.54 0.34 0.38 -0.34 -0.35 -0.35 -0.11 -0.30 -0.29 -0.29 -0.32 -0.27 -0.34 -0.27 -0.09 0.06 -0.02 -0.07 -0.09 0.00 0.17 0.17 0.30 -0.06
JGB Japan -0.03 -0.02 -0.02 -0.02 -0.02 0.01 0.00 0.00 -0.01 -0.02 -0.02 -0.03 0.01 -0.01 -0.02 -0.02 -0.01 -0.14 -0.03 -0.02 -0.06 -0.06 0.00 0.03 -0.02 -0.04 -0.05 -0.05 -0.04 0.09 0.09 0.07 0.10 0.14 0.14 0.12 0.10 1.00 0.14 0.38 0.06 0.15 0.12 -0.06 -0.09 -0.09 -0.19 -0.10 -0.05 -0.04 -0.06 -0.06 -0.10 -0.11 -0.35 0.03 0.01 -0.06 -0.08 0.00 0.03 0.06 0.08 0.00
Gilts UK -0.06 -0.06 -0.12 -0.13 -0.08 -0.05 -0.08 -0.05 -0.09 -0.08 -0.07 -0.06 -0.10 -0.01 -0.14 -0.12 -0.09 -0.11 -0.11 -0.14 -0.19 -0.21 0.00 0.12 -0.07 -0.09 -0.16 -0.16 -0.15 0.54 0.49 0.39 0.53 0.81 0.74 0.59 0.55 0.14 1.00 0.07 0.28 0.44 0.49 -0.27 -0.38 -0.40 -0.18 -0.37 -0.20 -0.24 -0.26 -0.24 -0.41 -0.33 -0.16 0.02 -0.05 -0.08 -0.12 -0.10 0.16 0.12 0.33 -0.08
Euroyen -0.01 -0.01 -0.02 0.00 -0.01 0.00 0.00 -0.01 -0.03 0.01 -0.01 -0.02 -0.01 0.00 -0.03 -0.01 -0.02 -0.05 -0.01 -0.05 -0.03 -0.02 -0.01 -0.01 0.00 -0.02 -0.04 -0.03 -0.03 0.04 0.04 0.04 0.04 0.08 0.08 0.07 0.05 0.38 0.07 1.00 0.17 0.30 0.25 -0.06 -0.06 -0.06 -0.09 -0.07 -0.05 -0.04 -0.06 -0.07 -0.06 -0.08 -0.17 0.00 0.00 -0.04 -0.06 -0.02 0.03 0.01 0.00 -0.03
Eurodollar -0.01 -0.04 -0.05 -0.04 -0.04 -0.05 -0.01 -0.01 -0.01 -0.06 -0.05 -0.01 -0.07 -0.01 -0.05 -0.03 -0.03 0.02 -0.01 -0.06 -0.06 -0.06 0.06 0.10 -0.01 0.00 -0.04 -0.06 -0.05 0.54 0.76 0.85 0.68 0.34 0.41 0.45 0.54 0.06 0.28 0.17 1.00 0.41 0.48 -0.23 -0.23 -0.21 -0.06 -0.18 -0.23 -0.12 -0.21 -0.17 -0.19 -0.10 -0.03 0.20 0.11 0.03 0.02 0.13 -0.01 0.24 0.26 0.07
Euroswiss -0.05 -0.06 -0.09 -0.08 -0.07 -0.05 -0.04 -0.05 -0.05 -0.07 -0.06 -0.02 -0.08 -0.01 -0.08 -0.08 -0.06 -0.04 -0.06 -0.11 -0.14 -0.15 -0.01 0.07 -0.07 -0.06 -0.13 -0.13 -0.10 0.33 0.37 0.38 0.36 0.49 0.56 0.59 0.34 0.15 0.44 0.30 0.41 1.00 0.69 -0.24 -0.33 -0.33 -0.16 -0.32 -0.20 -0.18 -0.22 -0.20 -0.35 -0.24 -0.17 0.00 -0.05 -0.08 -0.11 -0.03 0.12 0.13 0.21 -0.06
Euribor -0.07 -0.06 -0.09 -0.08 -0.07 -0.04 -0.06 -0.04 -0.05 -0.07 -0.09 -0.04 -0.06 0.00 -0.08 -0.07 -0.05 -0.02 -0.04 -0.12 -0.14 -0.15 0.00 0.08 -0.06 -0.04 -0.12 -0.12 -0.09 0.33 0.40 0.42 0.38 0.59 0.73 0.81 0.38 0.12 0.49 0.25 0.48 0.69 1.00 -0.20 -0.31 -0.32 -0.14 -0.31 -0.18 -0.14 -0.18 -0.19 -0.33 -0.21 -0.15 0.02 -0.01 -0.03 -0.06 0.01 0.06 0.14 0.22 -0.03
SP500 E-Mini 0.14 0.13 0.15 0.20 0.10 0.04 0.11 0.12 0.10 0.17 0.09 0.08 0.12 0.04 0.23 0.23 0.19 0.04 0.13 0.26 0.28 0.28 0.09 -0.02 0.12 0.19 0.23 0.21 0.20 -0.35 -0.35 -0.33 -0.35 -0.30 -0.31 -0.29 -0.34 -0.06 -0.27 -0.06 -0.23 -0.24 -0.20 1.00 0.63 0.61 0.25 0.56 0.84 0.76 0.93 0.73 0.58 0.49 0.16 0.09 0.17 0.26 0.31 0.12 -0.28 -0.06 -0.22 0.22
DAX 30 0.13 0.13 0.17 0.20 0.13 0.04 0.12 0.13 0.11 0.16 0.10 0.08 0.14 0.04 0.19 0.18 0.15 0.07 0.15 0.22 0.36 0.38 0.13 -0.02 0.14 0.21 0.30 0.29 0.26 -0.35 -0.35 -0.31 -0.35 -0.43 -0.43 -0.41 -0.35 -0.09 -0.38 -0.06 -0.23 -0.33 -0.31 0.63 1.00 0.94 0.35 0.81 0.52 0.42 0.59 0.51 0.88 0.64 0.26 0.04 0.16 0.26 0.32 0.10 -0.29 -0.09 -0.26 0.23
Eurostoxx 0.13 0.13 0.17 0.20 0.13 0.06 0.13 0.13 0.12 0.17 0.10 0.09 0.14 0.03 0.20 0.19 0.15 0.09 0.16 0.23 0.37 0.39 0.13 -0.02 0.14 0.22 0.31 0.30 0.27 -0.35 -0.34 -0.30 -0.35 -0.46 -0.46 -0.43 -0.35 -0.09 -0.40 -0.06 -0.21 -0.33 -0.32 0.61 0.94 1.00 0.35 0.86 0.48 0.41 0.57 0.51 0.94 0.65 0.26 0.05 0.19 0.27 0.33 0.11 -0.31 -0.09 -0.28 0.23
Hang Seng 0.08 0.06 0.13 0.19 0.09 0.01 0.08 0.11 0.12 0.09 0.11 0.07 0.08 0.03 0.15 0.16 0.13 0.23 0.14 0.18 0.25 0.26 0.17 0.06 0.15 0.18 0.18 0.22 0.18 -0.12 -0.13 -0.12 -0.12 -0.16 -0.16 -0.16 -0.11 -0.19 -0.18 -0.09 -0.06 -0.16 -0.14 0.25 0.35 0.35 1.00 0.40 0.19 0.19 0.23 0.27 0.38 0.34 0.56 0.10 0.19 0.27 0.34 0.15 -0.21 0.00 -0.15 0.23
FTSE 100 UK 0.16 0.15 0.20 0.25 0.15 0.06 0.15 0.13 0.11 0.18 0.13 0.10 0.14 0.04 0.25 0.25 0.20 0.11 0.21 0.28 0.40 0.43 0.18 0.04 0.16 0.26 0.33 0.35 0.30 -0.31 -0.30 -0.27 -0.30 -0.40 -0.41 -0.39 -0.30 -0.10 -0.37 -0.07 -0.18 -0.32 -0.31 0.56 0.81 0.86 0.40 1.00 0.41 0.42 0.52 0.51 0.89 0.68 0.31 0.10 0.24 0.33 0.40 0.10 -0.34 -0.06 -0.28 0.26
Nasdaq 100 Mini 0.10 0.10 0.11 0.14 0.08 0.01 0.08 0.07 0.06 0.13 0.07 0.06 0.12 0.02 0.13 0.13 0.11 0.01 0.08 0.16 0.21 0.20 0.04 -0.04 0.08 0.13 0.17 0.15 0.14 -0.29 -0.31 -0.30 -0.30 -0.23 -0.25 -0.24 -0.29 -0.05 -0.20 -0.05 -0.23 -0.20 -0.18 0.84 0.52 0.48 0.19 0.41 1.00 0.55 0.71 0.60 0.44 0.34 0.12 0.03 0.09 0.19 0.21 0.06 -0.19 -0.08 -0.15 0.15
Russel 2000 E-Mini 0.12 0.13 0.14 0.19 0.09 0.02 0.11 0.12 0.11 0.16 0.07 0.06 0.10 0.03 0.23 0.24 0.21 0.04 0.15 0.26 0.23 0.24 0.11 0.01 0.13 0.20 0.20 0.19 0.17 -0.31 -0.27 -0.22 -0.28 -0.27 -0.26 -0.22 -0.29 -0.04 -0.24 -0.04 -0.12 -0.18 -0.14 0.76 0.42 0.41 0.19 0.42 0.55 1.00 0.75 0.60 0.43 0.50 0.09 0.15 0.20 0.27 0.29 0.16 -0.28 0.00 -0.21 0.26
Dow Jones 0.11 0.11 0.13 0.18 0.09 0.03 0.08 0.11 0.09 0.15 0.07 0.08 0.11 0.03 0.19 0.19 0.16 0.03 0.11 0.23 0.26 0.26 0.08 -0.03 0.11 0.17 0.22 0.20 0.19 -0.33 -0.33 -0.30 -0.32 -0.29 -0.29 -0.26 -0.32 -0.06 -0.26 -0.06 -0.21 -0.22 -0.18 0.93 0.59 0.57 0.23 0.52 0.71 0.75 1.00 0.66 0.54 0.49 0.14 0.08 0.16 0.24 0.28 0.11 -0.26 -0.06 -0.22 0.20
TSE Toronto 0.18 0.17 0.20 0.24 0.15 0.05 0.13 0.14 0.13 0.18 0.16 0.10 0.10 0.10 0.33 0.33 0.28 0.08 0.19 0.35 0.33 0.33 0.23 0.14 0.20 0.27 0.28 0.26 0.23 -0.28 -0.26 -0.23 -0.27 -0.25 -0.25 -0.24 -0.27 -0.06 -0.24 -0.07 -0.17 -0.20 -0.19 0.73 0.51 0.51 0.27 0.51 0.60 0.60 0.66 1.00 0.51 0.44 0.22 0.13 0.22 0.27 0.32 0.18 -0.24 0.01 -0.16 0.24
CAC 40 France 0.13 0.13 0.18 0.22 0.13 0.06 0.13 0.13 0.13 0.17 0.11 0.08 0.14 0.04 0.22 0.22 0.18 0.08 0.17 0.25 0.38 0.41 0.15 0.00 0.16 0.23 0.32 0.33 0.29 -0.34 -0.32 -0.28 -0.33 -0.45 -0.45 -0.42 -0.34 -0.10 -0.41 -0.06 -0.19 -0.35 -0.33 0.58 0.88 0.94 0.38 0.89 0.44 0.43 0.54 0.51 1.00 0.69 0.30 0.07 0.21 0.30 0.36 0.13 -0.33 -0.08 -0.28 0.25
OMX 30 Stockholm 0.15 0.13 0.20 0.24 0.15 0.04 0.14 0.14 0.14 0.17 0.13 0.11 0.12 0.04 0.25 0.25 0.21 0.11 0.21 0.28 0.38 0.41 0.19 0.07 0.18 0.27 0.32 0.33 0.27 -0.28 -0.25 -0.21 -0.26 -0.36 -0.35 -0.32 -0.27 -0.11 -0.33 -0.08 -0.10 -0.24 -0.21 0.49 0.64 0.65 0.34 0.68 0.34 0.50 0.49 0.44 0.69 1.00 0.26 0.21 0.32 0.36 0.42 0.22 -0.38 0.04 -0.25 0.34
NIKKEI 225 0.05 0.05 0.08 0.12 0.07 0.02 0.08 0.07 0.07 0.05 0.06 0.07 0.04 0.03 0.10 0.12 0.10 0.33 0.09 0.13 0.18 0.18 0.12 0.05 0.13 0.15 0.15 0.16 0.13 -0.09 -0.08 -0.07 -0.08 -0.12 -0.12 -0.13 -0.09 -0.35 -0.16 -0.17 -0.03 -0.17 -0.15 0.16 0.26 0.26 0.56 0.31 0.12 0.09 0.14 0.22 0.30 0.26 1.00 0.06 0.12 0.20 0.26 0.11 -0.15 -0.01 -0.18 0.11
Euro 0.17 0.16 0.17 0.20 0.13 0.00 0.13 0.15 0.21 0.17 0.09 0.06 0.05 0.07 0.23 0.23 0.20 0.05 0.20 0.19 0.29 0.28 0.40 0.42 0.24 0.28 0.27 0.24 0.19 0.04 0.11 0.15 0.09 -0.02 0.00 0.02 0.06 0.03 0.02 0.00 0.20 0.00 0.02 0.09 0.04 0.05 0.10 0.10 0.03 0.15 0.08 0.13 0.07 0.21 0.06 1.00 0.78 0.56 0.58 0.66 -0.48 0.76 0.29 0.57
Norwegian Krone 0.20 0.20 0.22 0.26 0.16 0.01 0.15 0.17 0.22 0.20 0.13 0.05 0.08 0.07 0.32 0.31 0.26 0.12 0.29 0.28 0.35 0.35 0.43 0.41 0.28 0.32 0.32 0.30 0.24 -0.05 0.00 0.05 -0.02 -0.08 -0.05 -0.02 -0.02 0.01 -0.05 0.00 0.11 -0.05 -0.01 0.17 0.16 0.19 0.19 0.24 0.09 0.20 0.16 0.22 0.21 0.32 0.12 0.78 1.00 0.57 0.60 0.61 -0.52 0.60 0.17 0.56
New Zealand Dollar 0.18 0.18 0.19 0.24 0.15 0.01 0.17 0.19 0.22 0.17 0.11 0.07 0.09 0.07 0.25 0.26 0.22 0.11 0.23 0.23 0.38 0.38 0.40 0.35 0.29 0.32 0.31 0.31 0.26 -0.09 -0.05 -0.02 -0.06 -0.09 -0.07 -0.06 -0.07 -0.06 -0.08 -0.04 0.03 -0.08 -0.03 0.26 0.26 0.27 0.27 0.33 0.19 0.27 0.24 0.27 0.30 0.36 0.20 0.56 0.57 1.00 0.82 0.54 -0.56 0.40 0.07 0.56
Australian Dollar 0.21 0.20 0.25 0.30 0.19 0.02 0.20 0.20 0.23 0.21 0.15 0.09 0.11 0.09 0.32 0.32 0.28 0.12 0.27 0.31 0.45 0.45 0.43 0.37 0.33 0.36 0.36 0.37 0.31 -0.13 -0.09 -0.06 -0.10 -0.13 -0.11 -0.11 -0.09 -0.08 -0.12 -0.06 0.02 -0.11 -0.06 0.31 0.32 0.33 0.34 0.40 0.21 0.29 0.28 0.32 0.36 0.42 0.26 0.58 0.60 0.82 1.00 0.54 -0.62 0.40 0.06 0.59
British Pound 0.16 0.15 0.17 0.21 0.12 0.02 0.13 0.15 0.24 0.15 0.10 0.03 0.08 0.06 0.22 0.24 0.20 0.10 0.20 0.21 0.29 0.28 0.37 0.36 0.23 0.25 0.26 0.23 0.18 -0.01 0.04 0.08 0.02 -0.04 -0.02 0.00 0.00 0.00 -0.10 -0.02 0.13 -0.03 0.01 0.12 0.10 0.11 0.15 0.10 0.06 0.16 0.11 0.18 0.13 0.22 0.11 0.66 0.61 0.54 0.54 1.00 -0.46 0.51 0.18 0.48
Canadian Dollar -0.20 -0.20 -0.22 -0.28 -0.17 -0.03 -0.15 -0.17 -0.20 -0.20 -0.06 -0.09 -0.09 -0.10 -0.34 -0.34 -0.30 -0.11 -0.31 -0.31 -0.38 -0.39 -0.39 -0.34 -0.27 -0.33 -0.34 -0.33 -0.28 0.17 0.11 0.06 0.13 0.17 0.14 0.11 0.17 0.03 0.16 0.03 -0.01 0.12 0.06 -0.28 -0.29 -0.31 -0.21 -0.34 -0.19 -0.28 -0.26 -0.24 -0.33 -0.38 -0.15 -0.48 -0.52 -0.56 -0.62 -0.46 1.00 -0.33 -0.03 -0.48
Swiss Franc 0.11 0.12 0.11 0.13 0.08 -0.02 0.09 0.08 0.14 0.11 0.05 0.03 0.01 0.06 0.13 0.14 0.13 0.04 0.16 0.10 0.20 0.18 0.35 0.41 0.20 0.22 0.20 0.15 0.13 0.15 0.21 0.22 0.20 0.11 0.15 0.17 0.17 0.06 0.12 0.01 0.24 0.13 0.14 -0.06 -0.09 -0.09 0.00 -0.06 -0.08 0.00 -0.06 0.01 -0.08 0.04 -0.01 0.76 0.60 0.40 0.40 0.51 -0.33 1.00 0.39 0.45
Japanese Yen -0.02 0.00 -0.01 -0.05 0.01 -0.03 -0.04 0.00 0.01 -0.01 -0.02 -0.03 -0.07 0.01 -0.06 -0.05 -0.03 -0.13 -0.03 -0.08 -0.08 -0.07 0.14 0.23 0.03 0.03 -0.04 -0.06 -0.06 0.31 0.34 0.31 0.34 0.33 0.33 0.30 0.30 0.08 0.33 0.00 0.26 0.21 0.22 -0.22 -0.26 -0.28 -0.15 -0.28 -0.15 -0.21 -0.22 -0.16 -0.28 -0.25 -0.18 0.29 0.17 0.07 0.06 0.18 -0.03 0.39 1.00 0.27
Singapore Dollar 0.17 0.16 0.21 0.23 0.16 0.01 0.16 0.16 0.19 0.17 0.12 0.07 0.09 0.05 0.25 0.24 0.21 0.05 0.21 0.22 0.32 0.33 0.37 0.36 0.27 0.31 0.31 0.27 0.23 -0.09 -0.03 0.02 -0.06 -0.11 -0.09 -0.06 -0.06 0.00 -0.08 -0.03 0.07 -0.06 -0.03 0.22 0.23 0.23 0.23 0.26 0.15 0.26 0.20 0.24 0.25 0.34 0.11 0.57 0.56 0.56 0.59 0.48 -0.48 0.45 0.27 1.00
<!--/html_preserve-->

+ +

We see quite high correlations among some of the futures. Does it make sense? Why? Do you see some negative correlations? Do those make sense?

+ +

Given such high correlations, we can try to see whether there are some "principal components" (see reading on dimensionality reduction). This analysis can also indicate whether all futures (the global economy!) are driven by some common "factors" (let's call them "risk factors").

+ +
Variance_Explained_Table_results<-PCA(futures_data, graph=FALSE)
+Variance_Explained_Table<-Variance_Explained_Table_results$eig
+colnames(Variance_Explained_Table)<-c("Eigenvalue", 
+  "Pct of explained variance", "Cumulative pct of explained variance")
+
+ +

<!--html_preserve-->

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Eigenvalue Pct of explained variance Cumulative pct of explained variance
comp 1 14.04 21.94 21.94
comp 2 7.84 12.25 34.19
comp 3 3.52 5.50 39.69
comp 4 3.05 4.77 44.46
comp 5 2.63 4.11 48.57
comp 6 2.38 3.72 52.29
comp 7 2.14 3.34 55.64
comp 8 1.70 2.65 58.29
comp 9 1.46 2.28 60.57
comp 10 1.31 2.04 62.61
comp 11 1.18 1.84 64.45
comp 12 1.14 1.79 66.24
comp 13 1.00 1.56 67.80
comp 14 1.00 1.56 69.36
comp 15 0.98 1.53 70.89
comp 16 0.94 1.47 72.37
comp 17 0.90 1.41 73.78
comp 18 0.87 1.36 75.14
comp 19 0.84 1.32 76.46
comp 20 0.82 1.29 77.75
comp 21 0.79 1.23 78.98
comp 22 0.78 1.22 80.20
comp 23 0.76 1.19 81.39
comp 24 0.70 1.09 82.48
comp 25 0.63 0.98 83.46
comp 26 0.60 0.93 84.40
comp 27 0.59 0.92 85.32
comp 28 0.55 0.86 86.18
comp 29 0.53 0.83 87.01
comp 30 0.51 0.80 87.81
comp 31 0.50 0.78 88.59
comp 32 0.49 0.76 89.35
comp 33 0.45 0.70 90.06
comp 34 0.43 0.67 90.73
comp 35 0.39 0.62 91.34
comp 36 0.38 0.60 91.94
comp 37 0.37 0.57 92.52
comp 38 0.36 0.56 93.07
comp 39 0.35 0.55 93.62
comp 40 0.34 0.53 94.15
comp 41 0.33 0.51 94.67
comp 42 0.32 0.51 95.18
comp 43 0.31 0.48 95.65
comp 44 0.30 0.46 96.12
comp 45 0.29 0.45 96.56
comp 46 0.23 0.36 96.92
comp 47 0.21 0.32 97.24
comp 48 0.20 0.31 97.56
comp 49 0.19 0.30 97.85
comp 50 0.18 0.27 98.13
comp 51 0.16 0.24 98.37
comp 52 0.15 0.24 98.61
comp 53 0.14 0.23 98.84
comp 54 0.13 0.21 99.04
comp 55 0.11 0.16 99.21
comp 56 0.09 0.14 99.35
comp 57 0.09 0.13 99.49
comp 58 0.08 0.13 99.62
comp 59 0.08 0.12 99.74
comp 60 0.06 0.09 99.83
comp 61 0.04 0.06 99.89
comp 62 0.03 0.05 99.94
comp 63 0.02 0.03 99.97
comp 64 0.02 0.03 100.00
<!--/html_preserve-->

+ +

Here is the scree plot (see Sessions 3-4 readings):

+ +
eigenvalues  <- Variance_Explained_Table[, "Eigenvalue"]
+
+ +
## Error in loadNamespace(name): there is no package called 'webshot'
+
+ +

Let's now see how the 20 first (rotated) principal components look like. Let's also use the rotated factors (note that these are not really the "principal component", as explained in the reading on dimensionality reduction) and not show any numbers less than 0.3 in absolute value, to avoid cluttering.

+ +
corused = cor(futures_data[, apply(futures_data != 0, 2, sum) > 10, drop = F])
+Rotated_Results <- principal(corused, nfactors = 20, rotate = "varimax", score = TRUE)
+Rotated_Factors <- round(Rotated_Results$loadings, 2)
+Rotated_Factors <- as.data.frame(unclass(Rotated_Factors))
+colnames(Rotated_Factors) <- paste("comp", 1:ncol(Rotated_Factors), sep = " ")
+
+sorted_rows <- sort(Rotated_Factors[, 1], decreasing = TRUE, index.return = TRUE)$ix
+Rotated_Factors <- Rotated_Factors[sorted_rows, ]
+Rotated_Factors[abs(Rotated_Factors) < 0.3] <- NA
+
+ +

<!--html_preserve-->

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
comp 1 comp 2 comp 3 comp 4 comp 5 comp 6 comp 7 comp 8 comp 9 comp 10 comp 11 comp 12 comp 13 comp 14 comp 15 comp 16 comp 17 comp 18 comp 19 comp 20
5 yr T-Notes US 0.93
10yr T-Notes 0.93
Treasury Bonds 0.86
2 yr T-Note US 0.85
Canadian Bond 0.79
Eurodollar 0.74 -0.45
Euro-Bund 0.43 0.67 0.44
Euro-Bobl 0.41 0.79
Gilts UK 0.39 0.55 0.47
Euro-Schatz 0.34 0.83
Japanese Yen 0.33 0.36
Euribor 0.87
Euroswiss 0.72
Swiss Franc 0.74
Euro 0.87
Gold 0.34 0.74
Canadian Dollar -0.61
JGB Japan 0.75
British Pound 0.74
Silver 0.32 0.73
Norwegian Krone 0.79
Kerosene 0.87
Sugar 0.67
Coffee 0.64
Orange Juice 0.98
Natural Gas 0.91
Euroyen 0.83
Singapore Dollar 0.70
Corn 0.72
Canola 0.77
NIKKEI 225 0.78
Soybean Meal 0.82
Lean Hoggs 0.99
Gas Oil 0.65 0.40
Platinum 0.69
Soybeans 0.90
Cocoa 0.87
Heating Oil 0.89
Hang Seng 0.78
New Zealand Dollar 0.73
Wheat 0.59 0.36
Soybean Oil 0.74
Brent Crude 0.90
Palladium 0.66
Aluminium 0.77
Zinc 0.81
Nickel 0.72
Gasoline 0.72
Copper LDN 0.84
Australian Dollar 0.72
Cotton 0.73
Lumber 0.98
Crude Oil 0.88
Copper NY 0.79
TSE Toronto 0.71
OMX 30 Stockholm 0.62
FTSE 100 UK 0.81
Russel 2000 E-Mini 0.79
CAC 40 France 0.85
DAX 30 0.82 0.34
Eurostoxx 0.85 0.30
Nasdaq 100 Mini 0.80
Dow Jones 0.85
SP500 E-Mini 0.30 0.89
<!--/html_preserve-->

+ +

Questions

+ +
    +
  1. How many principal components ("factors") do we need to explain at least 50% of the variance in this data?
  2. +
  3. What are the highest weights (in absolute value) of the first principal component portfolio above on the 64 futures?
  4. +
  5. Can we interpret the first 10 components? How would you call these factors?
  6. +
  7. Can you now generate the principal components and scree plot using only: a) the pre-crisis bull market years (e.g. only using the data between November 1, 2002, and October 1, 2007)? b) the financial crisis years (e.g. only using the data between October 1, 2007 and March 1, 2009), (Hint: you can select subsets of the data using for example the command crisis_data = futures_data[ as.Date(rownames(futures_data)) > "2007-10-01" & as.Date(rownames(futures_data)) < "2009-03-01" , ])
  8. +
  9. Based on your analysis in question 3, please discuss any differences you observe about the futures returns during bull and bear markets. What implications may these results have? What do the results imply about how assets are correlated during bear years compared to bull years?
  10. +
+ +

Answers

+ +

*1. We need to select 6 components to explain more than 50 percent of the data +
+*2. 5 and 10 years T-notes in US. both with 0.93 in rotated factors in component 1 +* +*3. First ten components explain 62.61 percent of the data. I would call these factors +comp 1: Low risk long term or risk free investments +comp 2: develop nations currencies and gold +comp3 : Stock price market index +comp4: Stock price market index 2 +comp5: European futures +comp6: oil +comp7: metals +comp8: agrilcultural commodities +comp9: precious metals +comp10:asian stock index

+ +

*4.Correlations between these two periods change as well as number of factors that explain more than 50% of the data. During Financial Crisis there was a negative correlation between food commodities and financial securities. Whereas bull market there was a very minimal correlation between commodities and stock market

+ +

*Financial Crisis

+ +

<!--html_preserve-->

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Corn Wheat Soybeans Soybean Oil Soybean Meal Lean Hoggs Sugar Coffee Cocoa Cotton Canola Orange Juice Lumber Natural Gas Crude Oil Brent Crude Heating Oil Kerosene Gas Oil Gasoline Copper NY Copper LDN Silver Gold Platinum Palladium Aluminium Zinc Nickel Treasury Bonds 5 yr T-Notes US 2 yr T-Note US 10yr T-Notes Euro-Bund Euro-Bobl Euro-Schatz Canadian Bond JGB Japan Gilts UK Euroyen Eurodollar Euroswiss Euribor SP500 E-Mini DAX 30 Eurostoxx Hang Seng FTSE 100 UK Nasdaq 100 Mini Russel 2000 E-Mini Dow Jones TSE Toronto CAC 40 France OMX 30 Stockholm NIKKEI 225 Euro Norwegian Krone New Zealand Dollar Australian Dollar British Pound Canadian Dollar Swiss Franc Japanese Yen Singapore Dollar
Corn 1.00 0.60 0.74 0.69 0.67 0.04 0.44 0.43 0.37 0.46 0.58 0.14 0.08 0.31 0.49 0.50 0.48 0.22 0.37 0.46 0.47 0.45 0.42 0.30 0.19 0.38 0.39 0.31 0.36 -0.20 -0.18 -0.12 -0.15 -0.21 -0.19 -0.20 -0.17 -0.08 -0.19 -0.02 -0.05 -0.19 -0.19 0.20 0.33 0.35 0.17 0.36 0.17 0.13 0.15 0.31 0.33 0.29 0.20 0.36 0.41 0.39 0.42 0.31 -0.38 0.22 -0.19 0.32
Wheat 0.60 1.00 0.56 0.54 0.51 0.12 0.38 0.42 0.34 0.43 0.47 0.09 0.10 0.17 0.37 0.39 0.35 0.08 0.23 0.35 0.38 0.38 0.36 0.27 0.15 0.28 0.30 0.27 0.28 -0.22 -0.19 -0.14 -0.19 -0.15 -0.14 -0.14 -0.15 -0.08 -0.13 -0.05 -0.09 -0.14 -0.14 0.21 0.26 0.27 0.10 0.29 0.18 0.17 0.15 0.27 0.27 0.23 0.12 0.26 0.33 0.34 0.33 0.22 -0.34 0.14 -0.12 0.24
Soybeans 0.74 0.56 1.00 0.87 0.89 0.10 0.45 0.44 0.36 0.48 0.75 0.14 0.13 0.27 0.49 0.53 0.51 0.16 0.36 0.49 0.45 0.43 0.46 0.31 0.21 0.41 0.38 0.34 0.36 -0.23 -0.22 -0.16 -0.21 -0.19 -0.17 -0.18 -0.13 -0.06 -0.21 -0.02 -0.12 -0.18 -0.17 0.21 0.28 0.30 0.17 0.33 0.17 0.14 0.16 0.32 0.30 0.27 0.14 0.31 0.39 0.35 0.39 0.29 -0.35 0.21 -0.11 0.32
Soybean Oil 0.69 0.54 0.87 1.00 0.66 0.11 0.47 0.46 0.40 0.51 0.74 0.18 0.20 0.30 0.60 0.63 0.61 0.25 0.47 0.59 0.55 0.52 0.49 0.37 0.25 0.45 0.44 0.37 0.41 -0.26 -0.25 -0.18 -0.23 -0.21 -0.21 -0.23 -0.20 -0.09 -0.25 -0.04 -0.12 -0.20 -0.18 0.32 0.38 0.41 0.31 0.43 0.26 0.23 0.27 0.41 0.41 0.36 0.23 0.35 0.44 0.46 0.51 0.36 -0.44 0.19 -0.18 0.37
Soybean Meal 0.67 0.51 0.89 0.66 1.00 0.09 0.39 0.40 0.29 0.39 0.66 0.13 0.11 0.24 0.32 0.36 0.34 0.08 0.22 0.33 0.36 0.33 0.39 0.22 0.15 0.31 0.31 0.26 0.28 -0.18 -0.18 -0.12 -0.16 -0.14 -0.12 -0.13 -0.09 -0.09 -0.16 -0.05 -0.12 -0.16 -0.15 0.09 0.18 0.21 0.11 0.23 0.09 0.03 0.05 0.23 0.21 0.20 0.14 0.27 0.30 0.31 0.32 0.23 -0.28 0.17 -0.07 0.27
Lean Hoggs 0.04 0.12 0.10 0.11 0.09 1.00 0.07 0.09 0.04 0.02 0.08 0.10 0.07 0.02 0.14 0.15 0.14 0.00 0.09 0.16 0.11 0.10 0.07 0.05 0.13 0.07 0.11 0.12 0.14 -0.10 -0.10 -0.05 -0.09 0.00 0.00 0.00 -0.08 0.06 0.02 0.00 -0.08 0.03 -0.02 0.06 0.09 0.09 0.06 0.09 0.04 0.06 0.05 0.10 0.09 0.10 0.02 -0.04 0.02 -0.03 -0.02 -0.02 0.01 -0.07 0.00 -0.03
Sugar 0.44 0.38 0.45 0.47 0.39 0.07 1.00 0.49 0.39 0.44 0.41 0.13 0.11 0.27 0.40 0.39 0.36 0.11 0.32 0.38 0.43 0.41 0.37 0.28 0.18 0.35 0.35 0.26 0.30 -0.15 -0.13 -0.08 -0.13 -0.14 -0.16 -0.18 -0.10 -0.05 -0.15 -0.02 -0.06 -0.15 -0.15 0.17 0.30 0.30 0.15 0.30 0.14 0.10 0.13 0.25 0.27 0.25 0.14 0.28 0.33 0.35 0.38 0.27 -0.41 0.15 -0.19 0.29
Coffee 0.43 0.42 0.44 0.46 0.40 0.09 0.49 1.00 0.41 0.45 0.40 0.12 0.12 0.23 0.35 0.38 0.33 0.12 0.28 0.33 0.41 0.39 0.33 0.19 0.18 0.38 0.34 0.28 0.31 -0.18 -0.16 -0.10 -0.17 -0.24 -0.25 -0.25 -0.18 -0.14 -0.22 -0.09 -0.05 -0.20 -0.20 0.22 0.32 0.32 0.17 0.34 0.17 0.19 0.17 0.27 0.32 0.31 0.16 0.27 0.35 0.37 0.39 0.27 -0.33 0.13 -0.18 0.32
Cocoa 0.37 0.34 0.36 0.40 0.29 0.04 0.39 0.41 1.00 0.28 0.26 0.09 0.03 0.21 0.34 0.31 0.29 0.13 0.26 0.28 0.33 0.33 0.43 0.34 0.21 0.36 0.27 0.24 0.23 -0.14 -0.08 -0.02 -0.09 -0.13 -0.10 -0.07 -0.09 -0.07 -0.12 -0.07 0.00 -0.06 -0.08 0.16 0.21 0.21 0.18 0.23 0.13 0.12 0.11 0.26 0.20 0.16 0.18 0.39 0.42 0.38 0.38 0.38 -0.33 0.27 -0.03 0.33
Cotton 0.46 0.43 0.48 0.51 0.39 0.02 0.44 0.45 0.28 1.00 0.45 0.13 0.09 0.25 0.36 0.41 0.39 0.05 0.30 0.37 0.42 0.43 0.30 0.22 0.13 0.30 0.38 0.30 0.35 -0.16 -0.16 -0.12 -0.15 -0.15 -0.18 -0.22 -0.14 -0.04 -0.17 0.03 -0.11 -0.19 -0.18 0.26 0.32 0.32 0.09 0.32 0.23 0.21 0.21 0.28 0.30 0.30 0.09 0.27 0.32 0.34 0.37 0.24 -0.33 0.16 -0.14 0.29
Canola 0.58 0.47 0.75 0.74 0.66 0.08 0.41 0.40 0.26 0.45 1.00 0.13 0.13 0.22 0.36 0.41 0.38 0.15 0.28 0.40 0.33 0.32 0.37 0.26 0.21 0.37 0.31 0.26 0.27 -0.20 -0.21 -0.14 -0.20 -0.16 -0.17 -0.21 -0.15 -0.11 -0.20 -0.01 -0.13 -0.16 -0.21 0.12 0.18 0.21 0.16 0.26 0.10 0.06 0.08 0.30 0.22 0.21 0.13 0.20 0.27 0.30 0.33 0.19 -0.20 0.10 -0.12 0.24
Orange Juice 0.14 0.09 0.14 0.18 0.13 0.10 0.13 0.12 0.09 0.13 0.13 1.00 0.08 0.17 0.19 0.17 0.18 0.14 0.16 0.19 0.13 0.13 0.14 0.06 0.04 0.11 0.15 0.11 0.13 -0.12 -0.09 -0.08 -0.10 -0.08 -0.10 -0.12 -0.13 -0.08 -0.09 -0.12 -0.09 -0.12 -0.13 0.09 0.16 0.17 0.14 0.17 0.09 0.02 0.07 0.14 0.15 0.18 0.17 0.05 0.05 0.05 0.11 0.02 -0.10 -0.02 -0.05 0.06
Lumber 0.08 0.10 0.13 0.20 0.11 0.07 0.11 0.12 0.03 0.09 0.13 0.08 1.00 0.06 0.12 0.12 0.17 0.16 0.14 0.11 0.23 0.21 0.10 0.01 -0.01 0.10 0.22 0.13 0.12 -0.14 -0.19 -0.16 -0.17 -0.10 -0.09 -0.08 -0.15 -0.10 -0.15 -0.04 -0.15 -0.09 -0.04 0.14 0.20 0.20 0.16 0.20 0.14 0.10 0.13 0.13 0.19 0.22 0.17 0.13 0.16 0.22 0.25 0.17 -0.17 0.06 -0.15 0.20
Natural Gas 0.31 0.17 0.27 0.30 0.24 0.02 0.27 0.23 0.21 0.25 0.22 0.17 0.06 1.00 0.38 0.38 0.41 0.11 0.29 0.35 0.23 0.24 0.23 0.15 0.12 0.18 0.26 0.11 0.17 -0.11 -0.08 -0.06 -0.08 -0.06 -0.04 -0.07 -0.10 -0.11 -0.09 -0.08 -0.07 -0.14 -0.13 0.12 0.18 0.16 0.13 0.16 0.10 0.06 0.09 0.21 0.15 0.13 0.15 0.19 0.16 0.24 0.26 0.20 -0.22 0.14 -0.09 0.15
Crude Oil 0.49 0.37 0.49 0.60 0.32 0.14 0.40 0.35 0.34 0.36 0.36 0.19 0.12 0.38 1.00 0.90 0.83 0.14 0.54 0.83 0.52 0.50 0.40 0.35 0.17 0.34 0.42 0.35 0.43 -0.36 -0.26 -0.17 -0.28 -0.28 -0.25 -0.24 -0.24 -0.07 -0.33 -0.11 -0.15 -0.23 -0.21 0.27 0.35 0.36 0.26 0.40 0.19 0.15 0.21 0.40 0.35 0.29 0.20 0.31 0.43 0.34 0.42 0.30 -0.40 0.15 -0.18 0.27
Brent Crude 0.50 0.39 0.53 0.63 0.36 0.15 0.39 0.38 0.31 0.41 0.41 0.17 0.12 0.38 0.90 1.00 0.91 0.15 0.57 0.90 0.54 0.53 0.43 0.35 0.17 0.35 0.45 0.38 0.45 -0.27 -0.23 -0.15 -0.21 -0.26 -0.24 -0.24 -0.20 -0.03 -0.28 -0.08 -0.12 -0.21 -0.22 0.30 0.38 0.39 0.26 0.43 0.21 0.19 0.24 0.45 0.39 0.31 0.21 0.31 0.41 0.36 0.43 0.35 -0.41 0.16 -0.17 0.30
Heating Oil 0.48 0.35 0.51 0.61 0.34 0.14 0.36 0.33 0.29 0.39 0.38 0.18 0.17 0.41 0.83 0.91 1.00 0.19 0.62 0.87 0.52 0.48 0.37 0.31 0.20 0.33 0.44 0.36 0.39 -0.27 -0.23 -0.18 -0.22 -0.23 -0.22 -0.21 -0.23 -0.04 -0.26 -0.08 -0.13 -0.20 -0.21 0.31 0.35 0.36 0.23 0.38 0.23 0.19 0.25 0.43 0.35 0.31 0.19 0.31 0.40 0.33 0.41 0.34 -0.39 0.17 -0.14 0.27
Kerosene 0.22 0.08 0.16 0.25 0.08 0.00 0.11 0.12 0.13 0.05 0.15 0.14 0.16 0.11 0.14 0.15 0.19 1.00 0.37 0.15 0.15 0.15 0.20 0.07 0.19 0.26 0.17 0.01 0.03 -0.01 0.01 0.01 0.00 -0.15 -0.15 -0.12 0.01 -0.25 -0.17 -0.16 0.05 -0.13 -0.11 0.05 0.20 0.20 0.38 0.23 -0.01 -0.01 0.04 0.16 0.19 0.18 0.51 0.23 0.23 0.29 0.31 0.29 -0.21 0.13 -0.16 0.24
Gas Oil 0.37 0.23 0.36 0.47 0.22 0.09 0.32 0.28 0.26 0.30 0.28 0.16 0.14 0.29 0.54 0.57 0.62 0.37 1.00 0.53 0.49 0.49 0.35 0.26 0.18 0.31 0.43 0.36 0.32 -0.19 -0.13 -0.08 -0.14 -0.27 -0.25 -0.23 -0.17 -0.09 -0.29 -0.05 -0.08 -0.21 -0.21 0.12 0.30 0.31 0.22 0.35 0.08 0.07 0.08 0.22 0.31 0.25 0.16 0.34 0.42 0.32 0.39 0.36 -0.39 0.24 -0.14 0.26
Gasoline 0.46 0.35 0.49 0.59 0.33 0.16 0.38 0.33 0.28 0.37 0.40 0.19 0.11 0.35 0.83 0.90 0.87 0.15 0.53 1.00 0.53 0.52 0.33 0.28 0.17 0.31 0.41 0.37 0.45 -0.28 -0.26 -0.20 -0.23 -0.25 -0.25 -0.27 -0.24 -0.09 -0.26 -0.10 -0.15 -0.22 -0.24 0.33 0.38 0.39 0.27 0.42 0.25 0.21 0.27 0.46 0.39 0.33 0.23 0.22 0.33 0.29 0.39 0.28 -0.35 0.07 -0.18 0.20
Copper NY 0.47 0.38 0.45 0.55 0.36 0.11 0.43 0.41 0.33 0.42 0.33 0.13 0.23 0.23 0.52 0.54 0.52 0.15 0.49 0.53 1.00 0.94 0.45 0.34 0.26 0.40 0.65 0.64 0.61 -0.27 -0.25 -0.19 -0.24 -0.30 -0.31 -0.33 -0.21 -0.14 -0.31 -0.06 -0.07 -0.24 -0.28 0.26 0.50 0.52 0.30 0.54 0.20 0.14 0.21 0.29 0.52 0.46 0.31 0.37 0.49 0.50 0.60 0.39 -0.48 0.21 -0.29 0.33
Copper LDN 0.45 0.38 0.43 0.52 0.33 0.10 0.41 0.39 0.33 0.43 0.32 0.13 0.21 0.24 0.50 0.53 0.48 0.15 0.49 0.52 0.94 1.00 0.42 0.29 0.27 0.38 0.68 0.70 0.65 -0.25 -0.25 -0.20 -0.23 -0.33 -0.35 -0.38 -0.23 -0.12 -0.34 -0.05 -0.08 -0.29 -0.32 0.29 0.53 0.57 0.30 0.58 0.22 0.18 0.24 0.34 0.57 0.48 0.31 0.38 0.50 0.50 0.61 0.38 -0.47 0.21 -0.29 0.32
Silver 0.42 0.36 0.46 0.49 0.39 0.07 0.37 0.33 0.43 0.30 0.37 0.14 0.10 0.23 0.40 0.43 0.37 0.20 0.35 0.33 0.45 0.42 1.00 0.78 0.29 0.59 0.34 0.32 0.30 -0.02 -0.01 0.03 0.01 -0.03 -0.03 -0.03 0.01 -0.04 -0.06 -0.03 0.05 -0.08 -0.10 0.10 0.22 0.24 0.23 0.28 0.04 0.04 0.06 0.26 0.26 0.19 0.25 0.55 0.56 0.46 0.45 0.45 -0.43 0.45 0.06 0.46
Gold 0.30 0.27 0.31 0.37 0.22 0.05 0.28 0.19 0.34 0.22 0.26 0.06 0.01 0.15 0.35 0.35 0.31 0.07 0.26 0.28 0.34 0.29 0.78 1.00 0.28 0.47 0.26 0.23 0.23 0.08 0.10 0.13 0.10 0.06 0.07 0.07 0.07 0.01 0.05 -0.04 0.11 0.04 -0.01 -0.07 0.01 0.00 0.05 0.03 -0.10 -0.09 -0.08 0.12 0.00 -0.02 0.07 0.48 0.47 0.28 0.21 0.35 -0.31 0.45 0.15 0.40
Platinum 0.19 0.15 0.21 0.25 0.15 0.13 0.18 0.18 0.21 0.13 0.21 0.04 -0.01 0.12 0.17 0.17 0.20 0.19 0.18 0.17 0.26 0.27 0.29 0.28 1.00 0.37 0.28 0.27 0.22 -0.10 -0.12 -0.11 -0.10 -0.12 -0.14 -0.15 -0.07 -0.07 -0.13 -0.06 -0.07 -0.15 -0.17 0.05 0.13 0.13 0.17 0.15 0.00 0.01 0.03 0.16 0.13 0.12 0.20 0.23 0.23 0.24 0.27 0.22 -0.19 0.15 -0.06 0.13
Palladium 0.38 0.28 0.41 0.45 0.31 0.07 0.35 0.38 0.36 0.30 0.37 0.11 0.10 0.18 0.34 0.35 0.33 0.26 0.31 0.31 0.40 0.38 0.59 0.47 0.37 1.00 0.38 0.35 0.35 -0.12 -0.10 -0.06 -0.09 -0.16 -0.15 -0.15 -0.04 -0.19 -0.18 -0.10 -0.02 -0.17 -0.15 0.18 0.33 0.31 0.25 0.34 0.11 0.14 0.13 0.32 0.31 0.29 0.28 0.36 0.36 0.36 0.40 0.28 -0.34 0.28 -0.04 0.32
Aluminium 0.39 0.30 0.38 0.44 0.31 0.11 0.35 0.34 0.27 0.38 0.31 0.15 0.22 0.26 0.42 0.45 0.44 0.17 0.43 0.41 0.65 0.68 0.34 0.26 0.28 0.38 1.00 0.63 0.55 -0.19 -0.18 -0.13 -0.18 -0.23 -0.22 -0.24 -0.18 -0.13 -0.24 -0.12 -0.03 -0.25 -0.23 0.18 0.37 0.37 0.20 0.38 0.14 0.09 0.15 0.27 0.37 0.31 0.23 0.39 0.43 0.40 0.47 0.34 -0.41 0.30 -0.20 0.32
Zinc 0.31 0.27 0.34 0.37 0.26 0.12 0.26 0.28 0.24 0.30 0.26 0.11 0.13 0.11 0.35 0.38 0.36 0.01 0.36 0.37 0.64 0.70 0.32 0.23 0.27 0.35 0.63 1.00 0.59 -0.12 -0.15 -0.15 -0.12 -0.22 -0.27 -0.31 -0.20 -0.09 -0.23 -0.03 -0.08 -0.22 -0.27 0.17 0.34 0.39 0.19 0.43 0.13 0.11 0.12 0.22 0.41 0.36 0.19 0.30 0.37 0.35 0.42 0.25 -0.37 0.17 -0.17 0.19
Nickel 0.36 0.28 0.36 0.41 0.28 0.14 0.30 0.31 0.23 0.35 0.27 0.13 0.12 0.17 0.43 0.45 0.39 0.03 0.32 0.45 0.61 0.65 0.30 0.23 0.22 0.35 0.55 0.59 1.00 -0.22 -0.20 -0.14 -0.20 -0.23 -0.19 -0.20 -0.24 -0.07 -0.23 -0.02 -0.08 -0.15 -0.17 0.20 0.35 0.36 0.16 0.39 0.15 0.12 0.16 0.24 0.37 0.28 0.15 0.21 0.31 0.30 0.38 0.18 -0.38 0.09 -0.17 0.19
Treasury Bonds -0.20 -0.22 -0.23 -0.26 -0.18 -0.10 -0.15 -0.18 -0.14 -0.16 -0.20 -0.12 -0.14 -0.11 -0.36 -0.27 -0.27 -0.01 -0.19 -0.28 -0.27 -0.25 -0.02 0.08 -0.10 -0.12 -0.19 -0.12 -0.22 1.00 0.83 0.69 0.92 0.54 0.47 0.40 0.73 0.14 0.48 0.07 0.61 0.39 0.30 -0.38 -0.31 -0.31 -0.12 -0.31 -0.36 -0.35 -0.32 -0.36 -0.33 -0.31 -0.07 0.04 -0.17 -0.20 -0.24 -0.15 0.23 0.22 0.44 -0.09
5 yr T-Notes US -0.18 -0.19 -0.22 -0.25 -0.18 -0.10 -0.13 -0.16 -0.08 -0.16 -0.21 -0.09 -0.19 -0.08 -0.26 -0.23 -0.23 0.01 -0.13 -0.26 -0.25 -0.25 -0.01 0.10 -0.12 -0.10 -0.18 -0.15 -0.20 0.83 1.00 0.92 0.94 0.54 0.55 0.51 0.72 0.12 0.49 0.06 0.79 0.42 0.37 -0.46 -0.37 -0.36 -0.16 -0.36 -0.44 -0.41 -0.40 -0.36 -0.37 -0.35 -0.04 0.02 -0.16 -0.19 -0.25 -0.10 0.20 0.24 0.50 -0.12
2 yr T-Note US -0.12 -0.14 -0.16 -0.18 -0.12 -0.05 -0.08 -0.10 -0.02 -0.12 -0.14 -0.08 -0.16 -0.06 -0.17 -0.15 -0.18 0.01 -0.08 -0.20 -0.19 -0.20 0.03 0.13 -0.11 -0.06 -0.13 -0.15 -0.14 0.69 0.92 1.00 0.83 0.49 0.54 0.53 0.64 0.09 0.45 0.06 0.83 0.43 0.40 -0.46 -0.35 -0.35 -0.14 -0.35 -0.44 -0.39 -0.40 -0.31 -0.36 -0.33 -0.02 0.04 -0.07 -0.14 -0.21 -0.05 0.16 0.26 0.49 -0.06
10yr T-Notes -0.15 -0.19 -0.21 -0.23 -0.16 -0.09 -0.13 -0.17 -0.09 -0.15 -0.20 -0.10 -0.17 -0.08 -0.28 -0.21 -0.22 0.00 -0.14 -0.23 -0.24 -0.23 0.01 0.10 -0.10 -0.09 -0.18 -0.12 -0.20 0.92 0.94 0.83 1.00 0.55 0.52 0.46 0.76 0.14 0.49 0.07 0.73 0.39 0.33 -0.40 -0.32 -0.31 -0.15 -0.31 -0.39 -0.36 -0.34 -0.34 -0.33 -0.31 -0.05 0.04 -0.17 -0.18 -0.22 -0.11 0.20 0.25 0.50 -0.11
Euro-Bund -0.21 -0.15 -0.19 -0.21 -0.14 0.00 -0.14 -0.24 -0.13 -0.15 -0.16 -0.08 -0.10 -0.06 -0.28 -0.26 -0.23 -0.15 -0.27 -0.25 -0.30 -0.33 -0.03 0.06 -0.12 -0.16 -0.23 -0.22 -0.23 0.54 0.54 0.49 0.55 1.00 0.92 0.79 0.59 0.19 0.85 0.13 0.39 0.60 0.65 -0.29 -0.44 -0.47 -0.17 -0.47 -0.25 -0.28 -0.25 -0.29 -0.48 -0.44 -0.13 -0.08 -0.18 -0.24 -0.26 -0.24 0.27 0.14 0.50 -0.12
Euro-Bobl -0.19 -0.14 -0.17 -0.21 -0.12 0.00 -0.16 -0.25 -0.10 -0.18 -0.17 -0.10 -0.09 -0.04 -0.25 -0.24 -0.22 -0.15 -0.25 -0.25 -0.31 -0.35 -0.03 0.07 -0.14 -0.15 -0.22 -0.27 -0.19 0.47 0.55 0.54 0.52 0.92 1.00 0.94 0.57 0.18 0.78 0.15 0.45 0.68 0.78 -0.34 -0.49 -0.52 -0.21 -0.52 -0.29 -0.32 -0.29 -0.31 -0.53 -0.50 -0.17 -0.10 -0.19 -0.26 -0.29 -0.23 0.25 0.16 0.51 -0.14
Euro-Schatz -0.20 -0.14 -0.18 -0.23 -0.13 0.00 -0.18 -0.25 -0.07 -0.22 -0.21 -0.12 -0.08 -0.07 -0.24 -0.24 -0.21 -0.12 -0.23 -0.27 -0.33 -0.38 -0.03 0.07 -0.15 -0.15 -0.24 -0.31 -0.20 0.40 0.51 0.53 0.46 0.79 0.94 1.00 0.50 0.17 0.67 0.14 0.45 0.71 0.83 -0.34 -0.52 -0.55 -0.22 -0.55 -0.27 -0.29 -0.28 -0.31 -0.56 -0.51 -0.20 -0.12 -0.20 -0.26 -0.33 -0.20 0.25 0.14 0.51 -0.13
Canadian Bond -0.17 -0.15 -0.13 -0.20 -0.09 -0.08 -0.10 -0.18 -0.09 -0.14 -0.15 -0.13 -0.15 -0.10 -0.24 -0.20 -0.23 0.01 -0.17 -0.24 -0.21 -0.23 0.01 0.07 -0.07 -0.04 -0.18 -0.20 -0.24 0.73 0.72 0.64 0.76 0.59 0.57 0.50 1.00 0.18 0.50 0.11 0.58 0.38 0.37 -0.37 -0.29 -0.32 -0.09 -0.32 -0.37 -0.39 -0.32 -0.35 -0.35 -0.32 -0.04 0.04 -0.15 -0.19 -0.15 -0.14 0.19 0.25 0.45 -0.04
JGB Japan -0.08 -0.08 -0.06 -0.09 -0.09 0.06 -0.05 -0.14 -0.07 -0.04 -0.11 -0.08 -0.10 -0.11 -0.07 -0.03 -0.04 -0.25 -0.09 -0.09 -0.14 -0.12 -0.04 0.01 -0.07 -0.19 -0.13 -0.09 -0.07 0.14 0.12 0.09 0.14 0.19 0.18 0.17 0.18 1.00 0.17 0.61 0.08 0.21 0.18 -0.08 -0.18 -0.17 -0.34 -0.19 -0.06 -0.05 -0.07 -0.08 -0.17 -0.20 -0.46 -0.04 -0.06 -0.20 -0.20 -0.11 0.09 0.05 0.22 -0.06
Gilts UK -0.19 -0.13 -0.21 -0.25 -0.16 0.02 -0.15 -0.22 -0.12 -0.17 -0.20 -0.09 -0.15 -0.09 -0.33 -0.28 -0.26 -0.17 -0.29 -0.26 -0.31 -0.34 -0.06 0.05 -0.13 -0.18 -0.24 -0.23 -0.23 0.48 0.49 0.45 0.49 0.85 0.78 0.67 0.50 0.17 1.00 0.12 0.33 0.52 0.51 -0.26 -0.39 -0.41 -0.21 -0.41 -0.22 -0.24 -0.23 -0.28 -0.42 -0.37 -0.14 -0.08 -0.17 -0.22 -0.26 -0.26 0.27 0.11 0.46 -0.13
Euroyen -0.02 -0.05 -0.02 -0.04 -0.05 0.00 -0.02 -0.09 -0.07 0.03 -0.01 -0.12 -0.04 -0.08 -0.11 -0.08 -0.08 -0.16 -0.05 -0.10 -0.06 -0.05 -0.03 -0.04 -0.06 -0.10 -0.12 -0.03 -0.02 0.07 0.06 0.06 0.07 0.13 0.15 0.14 0.11 0.61 0.12 1.00 0.09 0.24 0.18 -0.07 -0.12 -0.10 -0.22 -0.10 -0.03 -0.02 -0.07 -0.10 -0.11 -0.14 -0.34 -0.07 -0.02 -0.10 -0.13 -0.07 0.07 0.02 0.09 -0.04
Eurodollar -0.05 -0.09 -0.12 -0.12 -0.12 -0.08 -0.06 -0.05 0.00 -0.11 -0.13 -0.09 -0.15 -0.07 -0.15 -0.12 -0.13 0.05 -0.08 -0.15 -0.07 -0.08 0.05 0.11 -0.07 -0.02 -0.03 -0.08 -0.08 0.61 0.79 0.83 0.73 0.39 0.45 0.45 0.58 0.08 0.33 0.09 1.00 0.45 0.46 -0.34 -0.20 -0.19 -0.07 -0.21 -0.35 -0.30 -0.30 -0.27 -0.22 -0.19 0.03 0.10 -0.03 -0.05 -0.11 0.03 0.05 0.28 0.40 0.01
Euroswiss -0.19 -0.14 -0.18 -0.20 -0.16 0.03 -0.15 -0.20 -0.06 -0.19 -0.16 -0.12 -0.09 -0.14 -0.23 -0.21 -0.20 -0.13 -0.21 -0.22 -0.24 -0.29 -0.08 0.04 -0.15 -0.17 -0.25 -0.22 -0.15 0.39 0.42 0.43 0.39 0.60 0.68 0.71 0.38 0.21 0.52 0.24 0.45 1.00 0.75 -0.35 -0.44 -0.45 -0.19 -0.44 -0.28 -0.28 -0.31 -0.36 -0.47 -0.41 -0.21 -0.13 -0.20 -0.28 -0.32 -0.20 0.27 0.04 0.41 -0.13
Euribor -0.19 -0.14 -0.17 -0.18 -0.15 -0.02 -0.15 -0.20 -0.08 -0.18 -0.21 -0.13 -0.04 -0.13 -0.21 -0.22 -0.21 -0.11 -0.21 -0.24 -0.28 -0.32 -0.10 -0.01 -0.17 -0.15 -0.23 -0.27 -0.17 0.30 0.37 0.40 0.33 0.65 0.78 0.83 0.37 0.18 0.51 0.18 0.46 0.75 1.00 -0.22 -0.38 -0.40 -0.19 -0.41 -0.18 -0.18 -0.18 -0.27 -0.42 -0.37 -0.22 -0.16 -0.20 -0.22 -0.29 -0.18 0.20 0.05 0.38 -0.13
SP500 E-Mini 0.20 0.21 0.21 0.32 0.09 0.06 0.17 0.22 0.16 0.26 0.12 0.09 0.14 0.12 0.27 0.30 0.31 0.05 0.12 0.33 0.26 0.29 0.10 -0.07 0.05 0.18 0.18 0.17 0.20 -0.38 -0.46 -0.46 -0.40 -0.29 -0.34 -0.34 -0.37 -0.08 -0.26 -0.07 -0.34 -0.35 -0.22 1.00 0.64 0.59 0.32 0.57 0.92 0.91 0.97 0.74 0.59 0.57 0.16 0.10 0.15 0.33 0.38 0.16 -0.28 -0.15 -0.40 0.23
DAX 30 0.33 0.26 0.28 0.38 0.18 0.09 0.30 0.32 0.21 0.32 0.18 0.16 0.20 0.18 0.35 0.38 0.35 0.20 0.30 0.38 0.50 0.53 0.22 0.01 0.13 0.33 0.37 0.34 0.35 -0.31 -0.37 -0.35 -0.32 -0.44 -0.49 -0.52 -0.29 -0.18 -0.39 -0.12 -0.20 -0.44 -0.38 0.64 1.00 0.96 0.44 0.90 0.54 0.51 0.60 0.48 0.92 0.84 0.42 0.29 0.40 0.50 0.57 0.30 -0.44 0.01 -0.49 0.38
Eurostoxx 0.35 0.27 0.30 0.41 0.21 0.09 0.30 0.32 0.21 0.32 0.21 0.17 0.20 0.16 0.36 0.39 0.36 0.20 0.31 0.39 0.52 0.57 0.24 0.00 0.13 0.31 0.37 0.39 0.36 -0.31 -0.36 -0.35 -0.31 -0.47 -0.52 -0.55 -0.32 -0.17 -0.41 -0.10 -0.19 -0.45 -0.40 0.59 0.96 1.00 0.43 0.94 0.47 0.47 0.53 0.48 0.97 0.86 0.45 0.31 0.41 0.55 0.60 0.35 -0.49 0.00 -0.50 0.37
Hang Seng 0.17 0.10 0.17 0.31 0.11 0.06 0.15 0.17 0.18 0.09 0.16 0.14 0.16 0.13 0.26 0.26 0.23 0.38 0.22 0.27 0.30 0.30 0.23 0.05 0.17 0.25 0.20 0.19 0.16 -0.12 -0.16 -0.14 -0.15 -0.17 -0.21 -0.22 -0.09 -0.34 -0.21 -0.22 -0.07 -0.19 -0.19 0.32 0.44 0.43 1.00 0.46 0.24 0.22 0.31 0.31 0.45 0.42 0.67 0.20 0.27 0.39 0.47 0.25 -0.28 0.01 -0.30 0.32
FTSE 100 UK 0.36 0.29 0.33 0.43 0.23 0.09 0.30 0.34 0.23 0.32 0.26 0.17 0.20 0.16 0.40 0.43 0.38 0.23 0.35 0.42 0.54 0.58 0.28 0.03 0.15 0.34 0.38 0.43 0.39 -0.31 -0.36 -0.35 -0.31 -0.47 -0.52 -0.55 -0.32 -0.19 -0.41 -0.10 -0.21 -0.44 -0.41 0.57 0.90 0.94 0.46 1.00 0.45 0.44 0.51 0.52 0.94 0.85 0.47 0.32 0.44 0.55 0.63 0.31 -0.49 0.01 -0.49 0.39
Nasdaq 100 Mini 0.17 0.18 0.17 0.26 0.09 0.04 0.14 0.17 0.13 0.23 0.10 0.09 0.14 0.10 0.19 0.21 0.23 -0.01 0.08 0.25 0.20 0.22 0.04 -0.10 0.00 0.11 0.14 0.13 0.15 -0.36 -0.44 -0.44 -0.39 -0.25 -0.29 -0.27 -0.37 -0.06 -0.22 -0.03 -0.35 -0.28 -0.18 0.92 0.54 0.47 0.24 0.45 1.00 0.87 0.91 0.64 0.47 0.49 0.04 0.06 0.09 0.26 0.30 0.12 -0.23 -0.17 -0.37 0.15
Russel 2000 E-Mini 0.13 0.17 0.14 0.23 0.03 0.06 0.10 0.19 0.12 0.21 0.06 0.02 0.10 0.06 0.15 0.19 0.19 -0.01 0.07 0.21 0.14 0.18 0.04 -0.09 0.01 0.14 0.09 0.11 0.12 -0.35 -0.41 -0.39 -0.36 -0.28 -0.32 -0.29 -0.39 -0.05 -0.24 -0.02 -0.30 -0.28 -0.18 0.91 0.51 0.47 0.22 0.44 0.87 1.00 0.87 0.70 0.47 0.48 0.03 0.03 0.07 0.26 0.24 0.12 -0.21 -0.16 -0.35 0.19
Dow Jones 0.15 0.15 0.16 0.27 0.05 0.05 0.13 0.17 0.11 0.21 0.08 0.07 0.13 0.09 0.21 0.24 0.25 0.04 0.08 0.27 0.21 0.24 0.06 -0.08 0.03 0.13 0.15 0.12 0.16 -0.32 -0.40 -0.40 -0.34 -0.25 -0.29 -0.28 -0.32 -0.07 -0.23 -0.07 -0.30 -0.31 -0.18 0.97 0.60 0.53 0.31 0.51 0.91 0.87 1.00 0.68 0.52 0.53 0.15 0.06 0.09 0.27 0.32 0.11 -0.22 -0.17 -0.37 0.18
TSE Toronto 0.31 0.27 0.32 0.41 0.23 0.10 0.25 0.27 0.26 0.28 0.30 0.14 0.13 0.21 0.40 0.45 0.43 0.16 0.22 0.46 0.29 0.34 0.26 0.12 0.16 0.32 0.27 0.22 0.24 -0.36 -0.36 -0.31 -0.34 -0.29 -0.31 -0.31 -0.35 -0.08 -0.28 -0.10 -0.27 -0.36 -0.27 0.74 0.48 0.48 0.31 0.52 0.64 0.70 0.68 1.00 0.50 0.47 0.30 0.19 0.28 0.38 0.41 0.25 -0.31 -0.01 -0.32 0.29
CAC 40 France 0.33 0.27 0.30 0.41 0.21 0.09 0.27 0.32 0.20 0.30 0.22 0.15 0.19 0.15 0.35 0.39 0.35 0.19 0.31 0.39 0.52 0.57 0.26 0.00 0.13 0.31 0.37 0.41 0.37 -0.33 -0.37 -0.36 -0.33 -0.48 -0.53 -0.56 -0.35 -0.17 -0.42 -0.11 -0.22 -0.47 -0.42 0.59 0.92 0.97 0.45 0.94 0.47 0.47 0.52 0.50 1.00 0.87 0.44 0.29 0.41 0.55 0.60 0.36 -0.49 -0.01 -0.50 0.35
OMX 30 Stockholm 0.29 0.23 0.27 0.36 0.20 0.10 0.25 0.31 0.16 0.30 0.21 0.18 0.22 0.13 0.29 0.31 0.31 0.18 0.25 0.33 0.46 0.48 0.19 -0.02 0.12 0.29 0.31 0.36 0.28 -0.31 -0.35 -0.33 -0.31 -0.44 -0.50 -0.51 -0.32 -0.20 -0.37 -0.14 -0.19 -0.41 -0.37 0.57 0.84 0.86 0.42 0.85 0.49 0.48 0.53 0.47 0.87 1.00 0.39 0.31 0.37 0.52 0.56 0.32 -0.46 0.00 -0.48 0.36
NIKKEI 225 0.20 0.12 0.14 0.23 0.14 0.02 0.14 0.16 0.18 0.09 0.13 0.17 0.17 0.15 0.20 0.21 0.19 0.51 0.16 0.23 0.31 0.31 0.25 0.07 0.20 0.28 0.23 0.19 0.15 -0.07 -0.04 -0.02 -0.05 -0.13 -0.17 -0.20 -0.04 -0.46 -0.14 -0.34 0.03 -0.21 -0.22 0.16 0.42 0.45 0.67 0.47 0.04 0.03 0.15 0.30 0.44 0.39 1.00 0.28 0.26 0.44 0.52 0.32 -0.32 0.08 -0.29 0.30
Euro 0.36 0.26 0.31 0.35 0.27 -0.04 0.28 0.27 0.39 0.27 0.20 0.05 0.13 0.19 0.31 0.31 0.31 0.23 0.34 0.22 0.37 0.38 0.55 0.48 0.23 0.36 0.39 0.30 0.21 0.04 0.02 0.04 0.04 -0.08 -0.10 -0.12 0.04 -0.04 -0.08 -0.07 0.10 -0.13 -0.16 0.10 0.29 0.31 0.20 0.32 0.06 0.03 0.06 0.19 0.29 0.31 0.28 1.00 0.80 0.64 0.61 0.62 -0.56 0.82 0.11 0.69
Norwegian Krone 0.41 0.33 0.39 0.44 0.30 0.02 0.33 0.35 0.42 0.32 0.27 0.05 0.16 0.16 0.43 0.41 0.40 0.23 0.42 0.33 0.49 0.50 0.56 0.47 0.23 0.36 0.43 0.37 0.31 -0.17 -0.16 -0.07 -0.17 -0.18 -0.19 -0.20 -0.15 -0.06 -0.17 -0.02 -0.03 -0.20 -0.20 0.15 0.40 0.41 0.27 0.44 0.09 0.07 0.09 0.28 0.41 0.37 0.26 0.80 1.00 0.64 0.60 0.59 -0.57 0.60 -0.04 0.63
New Zealand Dollar 0.39 0.34 0.35 0.46 0.31 -0.03 0.35 0.37 0.38 0.34 0.30 0.05 0.22 0.24 0.34 0.36 0.33 0.29 0.32 0.29 0.50 0.50 0.46 0.28 0.24 0.36 0.40 0.35 0.30 -0.20 -0.19 -0.14 -0.18 -0.24 -0.26 -0.26 -0.19 -0.20 -0.22 -0.10 -0.05 -0.28 -0.22 0.33 0.50 0.55 0.39 0.55 0.26 0.26 0.27 0.38 0.55 0.52 0.44 0.64 0.64 1.00 0.86 0.60 -0.65 0.38 -0.32 0.61
Australian Dollar 0.42 0.33 0.39 0.51 0.32 -0.02 0.38 0.39 0.38 0.37 0.33 0.11 0.25 0.26 0.42 0.43 0.41 0.31 0.39 0.39 0.60 0.61 0.45 0.21 0.27 0.40 0.47 0.42 0.38 -0.24 -0.25 -0.21 -0.22 -0.26 -0.29 -0.33 -0.15 -0.20 -0.26 -0.13 -0.11 -0.32 -0.29 0.38 0.57 0.60 0.47 0.63 0.30 0.24 0.32 0.41 0.60 0.56 0.52 0.61 0.60 0.86 1.00 0.56 -0.65 0.32 -0.37 0.57
British Pound 0.31 0.22 0.29 0.36 0.23 -0.02 0.27 0.27 0.38 0.24 0.19 0.02 0.17 0.20 0.30 0.35 0.34 0.29 0.36 0.28 0.39 0.38 0.45 0.35 0.22 0.28 0.34 0.25 0.18 -0.15 -0.10 -0.05 -0.11 -0.24 -0.23 -0.20 -0.14 -0.11 -0.26 -0.07 0.03 -0.20 -0.18 0.16 0.30 0.35 0.25 0.31 0.12 0.12 0.11 0.25 0.36 0.32 0.32 0.62 0.59 0.60 0.56 1.00 -0.55 0.41 -0.15 0.46
Canadian Dollar -0.38 -0.34 -0.35 -0.44 -0.28 0.01 -0.41 -0.33 -0.33 -0.33 -0.20 -0.10 -0.17 -0.22 -0.40 -0.41 -0.39 -0.21 -0.39 -0.35 -0.48 -0.47 -0.43 -0.31 -0.19 -0.34 -0.41 -0.37 -0.38 0.23 0.20 0.16 0.20 0.27 0.25 0.25 0.19 0.09 0.27 0.07 0.05 0.27 0.20 -0.28 -0.44 -0.49 -0.28 -0.49 -0.23 -0.21 -0.22 -0.31 -0.49 -0.46 -0.32 -0.56 -0.57 -0.65 -0.65 -0.55 1.00 -0.29 0.29 -0.47
Swiss Franc 0.22 0.14 0.21 0.19 0.17 -0.07 0.15 0.13 0.27 0.16 0.10 -0.02 0.06 0.14 0.15 0.16 0.17 0.13 0.24 0.07 0.21 0.21 0.45 0.45 0.15 0.28 0.30 0.17 0.09 0.22 0.24 0.26 0.25 0.14 0.16 0.14 0.25 0.05 0.11 0.02 0.28 0.04 0.05 -0.15 0.01 0.00 0.01 0.01 -0.17 -0.16 -0.17 -0.01 -0.01 0.00 0.08 0.82 0.60 0.38 0.32 0.41 -0.29 1.00 0.44 0.53
Japanese Yen -0.19 -0.12 -0.11 -0.18 -0.07 0.00 -0.19 -0.18 -0.03 -0.14 -0.12 -0.05 -0.15 -0.09 -0.18 -0.17 -0.14 -0.16 -0.14 -0.18 -0.29 -0.29 0.06 0.15 -0.06 -0.04 -0.20 -0.17 -0.17 0.44 0.50 0.49 0.50 0.50 0.51 0.51 0.45 0.22 0.46 0.09 0.40 0.41 0.38 -0.40 -0.49 -0.50 -0.30 -0.49 -0.37 -0.35 -0.37 -0.32 -0.50 -0.48 -0.29 0.11 -0.04 -0.32 -0.37 -0.15 0.29 0.44 1.00 -0.06
Singapore Dollar 0.32 0.24 0.32 0.37 0.27 -0.03 0.29 0.32 0.33 0.29 0.24 0.06 0.20 0.15 0.27 0.30 0.27 0.24 0.26 0.20 0.33 0.32 0.46 0.40 0.13 0.32 0.32 0.19 0.19 -0.09 -0.12 -0.06 -0.11 -0.12 -0.14 -0.13 -0.04 -0.06 -0.13 -0.04 0.01 -0.13 -0.13 0.23 0.38 0.37 0.32 0.39 0.15 0.19 0.18 0.29 0.35 0.36 0.30 0.69 0.63 0.61 0.57 0.46 -0.47 0.53 -0.06 1.00
<!--/html_preserve-->

+ +

<!--html_preserve-->

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Eigenvalue Pct of explained variance Cumulative pct of explained variance
comp 1 19.06 29.78 29.78
comp 2 7.72 12.06 41.84
comp 3 3.87 6.04 47.88
comp 4 3.29 5.15 53.03
comp 5 2.45 3.83 56.85
comp 6 2.17 3.40 60.25
comp 7 2.02 3.16 63.41
comp 8 1.76 2.75 66.16
comp 9 1.48 2.32 68.47
comp 10 1.25 1.95 70.42
comp 11 1.13 1.76 72.19
comp 12 1.07 1.68 73.86
comp 13 1.01 1.57 75.44
comp 14 0.98 1.53 76.97
comp 15 0.89 1.39 78.36
comp 16 0.85 1.32 79.68
comp 17 0.77 1.20 80.88
comp 18 0.74 1.16 82.04
comp 19 0.70 1.09 83.14
comp 20 0.65 1.02 84.16
comp 21 0.63 0.98 85.14
comp 22 0.60 0.93 86.07
comp 23 0.56 0.87 86.94
comp 24 0.54 0.84 87.78
comp 25 0.50 0.78 88.56
comp 26 0.49 0.76 89.32
comp 27 0.46 0.71 90.04
comp 28 0.44 0.69 90.73
comp 29 0.43 0.68 91.41
comp 30 0.42 0.65 92.06
comp 31 0.40 0.62 92.68
comp 32 0.36 0.57 93.25
comp 33 0.34 0.54 93.79
comp 34 0.32 0.50 94.29
comp 35 0.30 0.47 94.76
comp 36 0.29 0.46 95.22
comp 37 0.28 0.43 95.65
comp 38 0.25 0.40 96.05
comp 39 0.23 0.36 96.41
comp 40 0.22 0.34 96.75
comp 41 0.21 0.32 97.07
comp 42 0.20 0.31 97.38
comp 43 0.18 0.29 97.67
comp 44 0.16 0.26 97.92
comp 45 0.15 0.23 98.16
comp 46 0.13 0.21 98.36
comp 47 0.12 0.19 98.55
comp 48 0.11 0.17 98.72
comp 49 0.11 0.17 98.89
comp 50 0.10 0.16 99.05
comp 51 0.08 0.13 99.18
comp 52 0.07 0.11 99.29
comp 53 0.07 0.11 99.40
comp 54 0.06 0.10 99.50
comp 55 0.06 0.09 99.59
comp 56 0.05 0.08 99.67
comp 57 0.05 0.07 99.74
comp 58 0.04 0.07 99.81
comp 59 0.03 0.05 99.86
comp 60 0.03 0.05 99.91
comp 61 0.02 0.03 99.94
comp 62 0.02 0.02 99.97
comp 63 0.01 0.02 99.98
comp 64 0.01 0.02 100.00
<!--/html_preserve-->

+ +
## Error in cbind(as.data.frame(eigenvalues), c(1:length(eigenvalues)), rep(1, : object 'eigenvalues1' not found
+
+ +
## Error in loadNamespace(name): there is no package called 'webshot'
+
+ +

*

+ +
    +
  • Bull period
  • +
+ +

<!--html_preserve-->

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Corn Wheat Soybeans Soybean Oil Soybean Meal Lean Hoggs Sugar Coffee Cocoa Cotton Canola Orange Juice Lumber Natural Gas Crude Oil Brent Crude Heating Oil Kerosene Gas Oil Gasoline Copper NY Copper LDN Silver Gold Platinum Palladium Aluminium Zinc Nickel Treasury Bonds 5 yr T-Notes US 2 yr T-Note US 10yr T-Notes Euro-Bund Euro-Bobl Euro-Schatz Canadian Bond JGB Japan Gilts UK Euroyen Eurodollar Euroswiss Euribor SP500 E-Mini DAX 30 Eurostoxx Hang Seng FTSE 100 UK Nasdaq 100 Mini Russel 2000 E-Mini Dow Jones TSE Toronto CAC 40 France OMX 30 Stockholm NIKKEI 225 Euro Norwegian Krone New Zealand Dollar Australian Dollar British Pound Canadian Dollar Swiss Franc Japanese Yen Singapore Dollar
Corn 1.00 0.57 0.54 0.47 0.48 -0.01 0.10 0.10 0.03 0.17 0.44 0.04 0.05 0.07 0.12 0.14 0.12 -0.05 0.07 0.12 0.09 0.09 0.17 0.16 0.01 0.09 0.11 0.10 0.03 -0.03 -0.01 -0.01 -0.02 -0.02 0.00 0.00 -0.01 -0.03 -0.02 -0.03 0.01 0.01 0.00 0.07 0.03 0.04 0.03 0.05 0.03 0.02 0.05 0.11 0.03 0.05 0.03 0.09 0.10 0.08 0.10 0.09 -0.05 0.08 0.03 0.07
Wheat 0.57 1.00 0.36 0.35 0.32 0.00 0.11 0.09 0.02 0.12 0.34 -0.02 0.03 0.01 0.11 0.11 0.10 -0.03 0.07 0.08 0.08 0.08 0.12 0.11 -0.02 0.08 0.09 0.07 0.02 -0.01 -0.01 -0.02 -0.01 -0.01 0.00 -0.01 0.01 0.02 -0.01 -0.04 -0.03 -0.04 -0.03 0.02 0.01 0.02 0.01 0.03 0.03 0.01 0.03 0.05 0.01 -0.01 0.03 0.09 0.10 0.06 0.08 0.07 -0.07 0.09 0.04 0.07
Soybeans 0.54 0.36 1.00 0.75 0.85 0.01 0.08 0.07 0.02 0.19 0.65 0.03 0.03 0.11 0.15 0.15 0.14 -0.04 0.10 0.14 0.10 0.08 0.15 0.12 0.05 0.10 0.09 0.05 0.03 -0.02 -0.03 -0.04 -0.02 -0.03 -0.03 -0.03 -0.02 0.00 -0.04 -0.03 -0.03 -0.04 -0.06 0.04 0.05 0.07 0.08 0.10 0.05 0.00 0.04 0.09 0.08 0.08 0.04 0.10 0.13 0.10 0.13 0.09 -0.08 0.09 0.02 0.09
Soybean Oil 0.47 0.35 0.75 1.00 0.51 0.01 0.10 0.09 0.02 0.23 0.65 0.04 0.04 0.10 0.16 0.16 0.15 0.00 0.11 0.20 0.13 0.12 0.18 0.17 0.06 0.10 0.13 0.08 0.03 -0.01 -0.02 -0.03 -0.01 -0.02 -0.01 -0.02 -0.01 0.02 -0.01 0.02 -0.01 -0.01 -0.01 0.02 0.01 0.04 0.09 0.10 0.01 0.00 0.02 0.08 0.06 0.08 0.03 0.13 0.18 0.10 0.13 0.11 -0.11 0.12 0.04 0.12
Soybean Meal 0.48 0.32 0.85 0.51 1.00 -0.01 0.06 0.06 0.02 0.18 0.52 0.05 0.03 0.10 0.11 0.11 0.10 -0.02 0.07 0.08 0.08 0.04 0.09 0.08 0.06 0.08 0.05 0.02 0.03 -0.02 -0.02 -0.03 -0.02 -0.03 -0.02 -0.03 -0.02 0.00 -0.05 -0.01 -0.01 -0.02 -0.06 0.05 0.07 0.08 0.07 0.08 0.07 0.01 0.04 0.10 0.07 0.08 0.03 0.08 0.09 0.07 0.11 0.07 -0.06 0.07 0.02 0.07
Lean Hoggs -0.01 0.00 0.01 0.01 -0.01 1.00 -0.04 0.03 -0.01 0.02 -0.03 -0.02 0.03 -0.01 0.02 0.02 0.00 -0.03 -0.02 0.00 0.05 0.04 0.00 0.00 -0.02 -0.01 0.04 0.04 0.06 -0.01 -0.03 -0.04 -0.02 -0.02 -0.01 0.00 0.01 -0.02 -0.02 0.02 -0.03 -0.05 -0.02 0.01 0.03 0.04 0.00 0.06 0.00 -0.01 0.02 0.04 0.04 0.04 0.02 0.00 0.02 0.00 0.02 -0.01 0.00 -0.02 -0.03 -0.01
Sugar 0.10 0.11 0.08 0.10 0.06 -0.04 1.00 0.13 0.12 0.12 0.07 0.06 0.01 0.04 0.10 0.10 0.11 0.05 0.12 0.14 0.15 0.14 0.13 0.10 0.04 0.10 0.13 0.12 0.06 0.00 0.01 0.02 0.01 -0.02 -0.02 -0.01 -0.01 0.01 0.00 -0.04 0.02 0.00 -0.01 -0.01 0.00 0.00 0.08 0.02 -0.02 0.01 -0.02 0.07 0.01 0.04 0.07 0.07 0.10 0.07 0.08 0.06 -0.02 0.07 -0.02 0.07
Coffee 0.10 0.09 0.07 0.09 0.06 0.03 0.13 1.00 0.14 0.13 0.05 0.09 0.08 0.03 0.09 0.09 0.10 0.03 0.08 0.08 0.12 0.12 0.14 0.12 0.07 0.12 0.12 0.12 0.11 0.02 -0.01 0.01 0.00 0.02 0.01 0.02 0.00 0.01 0.02 -0.02 0.00 0.00 0.00 0.09 0.08 0.07 0.12 0.06 0.10 -0.02 0.08 0.10 0.06 0.04 0.06 0.09 0.13 0.14 0.14 0.11 -0.08 0.07 0.01 0.08
Cocoa 0.03 0.02 0.02 0.02 0.02 -0.01 0.12 0.14 1.00 0.03 0.01 0.04 0.10 0.04 0.04 0.05 0.03 0.04 0.08 0.05 0.08 0.08 0.14 0.12 0.06 0.08 0.07 0.10 0.02 -0.04 -0.05 -0.04 -0.05 -0.01 -0.01 0.01 -0.04 -0.03 0.01 -0.07 -0.05 -0.01 0.00 0.04 0.02 0.02 0.10 0.00 0.01 -0.01 0.03 0.05 0.02 0.04 0.04 0.10 0.09 0.15 0.15 0.16 -0.08 0.08 0.04 0.09
Cotton 0.17 0.12 0.19 0.23 0.18 0.02 0.12 0.13 0.03 1.00 0.20 0.04 0.04 0.01 0.12 0.11 0.11 -0.02 0.10 0.09 0.13 0.10 0.14 0.14 -0.01 0.08 0.08 0.08 0.05 -0.04 -0.06 -0.06 -0.05 -0.02 -0.02 -0.02 -0.03 -0.01 0.00 0.03 -0.05 0.00 0.01 0.05 0.03 0.04 0.06 0.04 0.04 0.01 0.05 0.12 0.03 0.04 0.00 0.09 0.10 0.04 0.06 0.04 -0.08 0.07 0.00 0.01
Canola 0.44 0.34 0.65 0.65 0.52 -0.03 0.07 0.05 0.01 0.20 1.00 -0.02 0.03 0.02 0.07 0.08 0.07 -0.03 0.03 0.12 0.05 0.04 0.12 0.08 0.05 0.05 0.04 0.02 0.01 -0.06 -0.06 -0.05 -0.06 -0.05 -0.05 -0.06 -0.02 0.01 -0.04 -0.01 -0.04 -0.05 -0.07 0.02 0.03 0.06 0.06 0.10 0.02 -0.01 0.02 0.06 0.06 0.05 0.00 0.05 0.09 0.03 0.03 0.05 0.04 0.05 0.02 0.07
Orange Juice 0.04 -0.02 0.03 0.04 0.05 -0.02 0.06 0.09 0.04 0.04 -0.02 1.00 0.05 0.01 0.04 0.03 0.04 0.01 0.06 0.05 0.05 0.05 0.11 0.10 0.05 0.05 0.05 0.02 0.04 0.05 0.03 0.05 0.04 0.03 0.02 0.02 0.03 0.04 0.03 0.00 0.05 0.02 0.03 0.05 0.02 0.03 0.01 0.04 0.05 -0.01 0.05 0.10 0.01 0.03 -0.02 0.01 0.02 0.02 0.04 0.00 -0.04 0.01 0.03 0.06
Lumber 0.05 0.03 0.03 0.04 0.03 0.03 0.01 0.08 0.10 0.04 0.03 0.05 1.00 -0.07 -0.02 -0.01 0.00 0.00 0.00 0.03 0.05 0.04 0.04 0.01 0.04 0.05 0.06 0.03 0.03 -0.03 -0.06 -0.05 -0.05 -0.01 -0.01 -0.01 -0.04 0.06 0.00 0.05 -0.04 -0.03 0.01 0.06 0.06 0.08 0.05 0.06 0.06 0.00 0.06 0.05 0.07 0.06 0.01 -0.01 0.00 0.03 0.06 0.02 -0.04 -0.02 -0.06 -0.03
Natural Gas 0.07 0.01 0.11 0.10 0.10 -0.01 0.04 0.03 0.04 0.01 0.02 0.01 -0.07 1.00 0.41 0.37 0.46 0.01 0.27 0.21 0.09 0.09 0.10 0.12 0.02 0.04 0.08 0.07 0.04 0.04 0.04 0.03 0.04 0.08 0.08 0.09 0.05 -0.01 0.06 0.02 0.06 0.06 0.08 -0.01 -0.03 -0.04 -0.02 -0.01 -0.01 -0.06 -0.04 0.11 -0.02 0.00 0.04 0.06 0.04 0.02 0.08 0.04 -0.10 0.07 0.05 0.05
Crude Oil 0.12 0.11 0.15 0.16 0.11 0.02 0.10 0.09 0.04 0.12 0.07 0.04 -0.02 0.41 1.00 0.91 0.87 0.07 0.53 0.42 0.18 0.16 0.21 0.24 0.06 0.13 0.15 0.12 0.07 0.05 0.05 0.04 0.05 0.07 0.07 0.07 0.04 0.00 0.09 0.02 0.07 0.05 0.08 -0.09 -0.09 -0.06 0.01 -0.01 -0.11 0.02 -0.14 0.17 -0.01 0.05 0.05 0.12 0.14 0.10 0.15 0.09 -0.19 0.13 0.04 0.09
Brent Crude 0.14 0.11 0.15 0.16 0.11 0.02 0.10 0.09 0.05 0.11 0.08 0.03 -0.01 0.37 0.91 1.00 0.82 0.09 0.60 0.41 0.19 0.17 0.20 0.24 0.06 0.12 0.14 0.12 0.08 0.05 0.05 0.04 0.05 0.07 0.08 0.08 0.05 0.00 0.09 0.02 0.07 0.06 0.09 -0.09 -0.10 -0.08 0.02 -0.02 -0.11 0.02 -0.14 0.16 -0.03 0.05 0.03 0.14 0.16 0.11 0.16 0.12 -0.19 0.15 0.05 0.10
Heating Oil 0.12 0.10 0.14 0.15 0.10 0.00 0.11 0.10 0.03 0.11 0.07 0.04 0.00 0.46 0.87 0.82 1.00 0.05 0.61 0.41 0.15 0.15 0.19 0.23 0.04 0.11 0.12 0.11 0.06 0.06 0.07 0.07 0.07 0.07 0.08 0.08 0.05 0.00 0.09 -0.01 0.09 0.04 0.08 -0.08 -0.09 -0.07 0.02 -0.01 -0.10 0.02 -0.13 0.15 -0.02 0.03 0.06 0.11 0.12 0.09 0.14 0.08 -0.17 0.13 0.04 0.08
Kerosene -0.05 -0.03 -0.04 0.00 -0.02 -0.03 0.05 0.03 0.04 -0.02 -0.03 0.01 0.00 0.01 0.07 0.09 0.05 1.00 0.23 0.09 0.06 0.05 0.04 0.08 0.07 0.09 0.07 0.08 0.06 0.01 0.02 0.02 0.02 0.00 0.00 0.02 0.02 0.00 0.00 -0.04 0.02 0.02 0.02 -0.05 -0.07 -0.05 -0.02 -0.04 -0.07 -0.02 -0.07 -0.01 -0.07 0.02 0.02 0.01 0.06 0.02 -0.01 0.03 -0.07 0.02 -0.08 -0.05
Gas Oil 0.07 0.07 0.10 0.11 0.07 -0.02 0.12 0.08 0.08 0.10 0.03 0.06 0.00 0.27 0.53 0.60 0.61 0.23 1.00 0.20 0.13 0.13 0.17 0.19 0.08 0.11 0.10 0.11 0.06 0.02 0.07 0.07 0.05 0.11 0.12 0.12 0.04 0.01 0.11 -0.01 0.08 0.08 0.13 -0.09 -0.10 -0.09 -0.01 -0.05 -0.09 0.00 -0.13 0.08 -0.07 0.03 -0.01 0.11 0.16 0.14 0.14 0.09 -0.19 0.13 0.06 0.09
Gasoline 0.12 0.08 0.14 0.20 0.08 0.00 0.14 0.08 0.05 0.09 0.12 0.05 0.03 0.21 0.42 0.41 0.41 0.09 0.20 1.00 0.15 0.13 0.18 0.21 0.07 0.14 0.15 0.10 0.06 0.01 0.01 0.01 0.01 0.00 0.00 -0.01 0.00 0.03 0.01 0.00 0.01 -0.01 -0.01 0.03 0.03 0.04 0.03 0.09 -0.01 0.05 0.00 0.20 0.07 0.09 0.02 0.07 0.10 0.03 0.10 0.06 -0.11 0.05 0.00 0.05
Copper NY 0.09 0.08 0.10 0.13 0.08 0.05 0.15 0.12 0.08 0.13 0.05 0.05 0.05 0.09 0.18 0.19 0.15 0.06 0.13 0.15 1.00 0.88 0.44 0.43 0.17 0.33 0.68 0.68 0.51 -0.02 -0.04 -0.04 -0.04 -0.04 -0.03 -0.02 -0.03 -0.04 -0.04 -0.04 -0.04 -0.04 -0.06 0.15 0.19 0.21 0.18 0.25 0.09 0.05 0.14 0.25 0.23 0.23 0.15 0.18 0.17 0.20 0.26 0.17 -0.18 0.15 0.08 0.18
Copper LDN 0.09 0.08 0.08 0.12 0.04 0.04 0.14 0.12 0.08 0.10 0.04 0.05 0.04 0.09 0.16 0.17 0.15 0.05 0.13 0.13 0.88 1.00 0.41 0.41 0.18 0.32 0.74 0.75 0.54 -0.02 -0.05 -0.03 -0.04 -0.04 -0.03 -0.02 -0.03 -0.04 -0.04 -0.03 -0.04 -0.03 -0.05 0.13 0.18 0.19 0.18 0.26 0.09 0.06 0.13 0.24 0.23 0.24 0.13 0.17 0.16 0.22 0.26 0.17 -0.19 0.15 0.07 0.20
Silver 0.17 0.12 0.15 0.18 0.09 0.00 0.13 0.14 0.14 0.14 0.12 0.11 0.04 0.10 0.21 0.20 0.19 0.04 0.17 0.18 0.44 0.41 1.00 0.76 0.27 0.50 0.39 0.40 0.26 0.06 0.07 0.09 0.07 0.09 0.11 0.12 0.07 -0.02 0.07 -0.04 0.09 0.06 0.09 0.03 0.05 0.05 0.14 0.14 -0.01 0.02 0.02 0.21 0.09 0.19 0.15 0.40 0.36 0.37 0.45 0.39 -0.36 0.37 0.19 0.31
Gold 0.16 0.11 0.12 0.17 0.08 0.00 0.10 0.12 0.12 0.14 0.08 0.10 0.01 0.12 0.24 0.24 0.23 0.08 0.19 0.21 0.43 0.41 0.76 1.00 0.27 0.49 0.38 0.39 0.26 0.11 0.12 0.13 0.12 0.19 0.21 0.22 0.11 0.00 0.17 -0.04 0.12 0.12 0.17 -0.03 -0.06 -0.06 0.13 0.07 -0.08 0.02 -0.06 0.20 -0.01 0.15 0.14 0.53 0.47 0.40 0.51 0.45 -0.41 0.49 0.27 0.39
Platinum 0.01 -0.02 0.05 0.06 0.06 -0.02 0.04 0.07 0.06 -0.01 0.05 0.05 0.04 0.02 0.06 0.06 0.04 0.07 0.08 0.07 0.17 0.18 0.27 0.27 1.00 0.27 0.18 0.12 0.11 0.01 0.01 0.00 0.01 0.05 0.04 0.03 0.00 0.03 0.04 0.01 -0.01 0.02 0.04 0.00 -0.02 -0.01 0.01 0.01 -0.01 -0.01 -0.01 0.07 0.01 0.05 0.00 0.15 0.13 0.17 0.21 0.16 -0.12 0.14 0.05 0.12
Palladium 0.09 0.08 0.10 0.10 0.08 -0.01 0.10 0.12 0.08 0.08 0.05 0.05 0.05 0.04 0.13 0.12 0.11 0.09 0.11 0.14 0.33 0.32 0.50 0.49 0.27 1.00 0.33 0.31 0.22 0.01 0.01 0.03 0.01 0.08 0.10 0.11 0.03 0.01 0.07 -0.03 0.01 0.06 0.07 0.07 0.05 0.05 0.12 0.09 0.03 0.01 0.05 0.19 0.06 0.15 0.08 0.28 0.25 0.27 0.32 0.26 -0.27 0.26 0.16 0.27
Aluminium 0.11 0.09 0.09 0.13 0.05 0.04 0.13 0.12 0.07 0.08 0.04 0.05 0.06 0.08 0.15 0.14 0.12 0.07 0.10 0.15 0.68 0.74 0.39 0.38 0.18 0.33 1.00 0.69 0.48 -0.02 -0.04 -0.03 -0.03 -0.02 -0.02 -0.02 -0.02 -0.02 -0.03 -0.03 -0.02 -0.01 -0.03 0.11 0.13 0.15 0.15 0.21 0.07 0.06 0.11 0.23 0.18 0.20 0.15 0.20 0.17 0.20 0.24 0.19 -0.19 0.18 0.10 0.22
Zinc 0.10 0.07 0.05 0.08 0.02 0.04 0.12 0.12 0.10 0.08 0.02 0.02 0.03 0.07 0.12 0.12 0.11 0.08 0.11 0.10 0.68 0.75 0.40 0.39 0.12 0.31 0.69 1.00 0.53 -0.01 -0.05 -0.04 -0.03 -0.04 -0.04 -0.03 -0.02 -0.05 -0.03 -0.06 -0.04 -0.05 -0.05 0.12 0.15 0.16 0.18 0.24 0.08 0.09 0.11 0.21 0.20 0.24 0.17 0.17 0.15 0.20 0.24 0.17 -0.19 0.13 0.06 0.21
Nickel 0.03 0.02 0.03 0.03 0.03 0.06 0.06 0.11 0.02 0.05 0.01 0.04 0.03 0.04 0.07 0.08 0.06 0.06 0.06 0.06 0.51 0.54 0.26 0.26 0.11 0.22 0.48 0.53 1.00 -0.02 -0.04 -0.03 -0.04 -0.02 -0.01 0.00 -0.03 -0.02 -0.01 -0.03 -0.03 0.00 -0.01 0.13 0.12 0.13 0.13 0.18 0.09 0.10 0.11 0.20 0.15 0.15 0.11 0.13 0.10 0.15 0.19 0.11 -0.11 0.12 0.03 0.14
Treasury Bonds -0.03 -0.01 -0.02 -0.01 -0.02 -0.01 0.00 0.02 -0.04 -0.04 -0.06 0.05 -0.03 0.04 0.05 0.05 0.06 0.01 0.02 0.01 -0.02 -0.02 0.06 0.11 0.01 0.01 -0.02 -0.01 -0.02 1.00 0.92 0.80 0.96 0.65 0.63 0.57 0.82 0.09 0.55 0.02 0.74 0.36 0.43 -0.17 -0.28 -0.28 -0.05 -0.23 -0.20 -0.04 -0.19 -0.11 -0.24 -0.07 -0.06 0.29 0.23 0.10 0.15 0.24 -0.09 0.30 0.24 0.11
5 yr T-Notes US -0.01 -0.01 -0.03 -0.02 -0.02 -0.03 0.01 -0.01 -0.05 -0.06 -0.06 0.03 -0.06 0.04 0.05 0.05 0.07 0.02 0.07 0.01 -0.04 -0.05 0.07 0.12 0.01 0.01 -0.04 -0.05 -0.04 0.92 1.00 0.94 0.98 0.64 0.64 0.61 0.81 0.10 0.55 0.02 0.88 0.40 0.48 -0.21 -0.31 -0.32 -0.06 -0.25 -0.22 -0.06 -0.23 -0.13 -0.27 -0.11 -0.07 0.31 0.24 0.10 0.16 0.24 -0.09 0.34 0.28 0.11
2 yr T-Note US -0.01 -0.02 -0.04 -0.03 -0.03 -0.04 0.02 0.01 -0.04 -0.06 -0.05 0.05 -0.05 0.03 0.04 0.04 0.07 0.02 0.07 0.01 -0.04 -0.03 0.09 0.13 0.00 0.03 -0.03 -0.04 -0.03 0.80 0.94 1.00 0.89 0.58 0.60 0.59 0.75 0.10 0.51 0.01 0.92 0.39 0.46 -0.20 -0.29 -0.30 -0.06 -0.25 -0.21 -0.07 -0.22 -0.12 -0.26 -0.15 -0.06 0.30 0.24 0.10 0.15 0.24 -0.09 0.34 0.29 0.10
10yr T-Notes -0.02 -0.01 -0.02 -0.01 -0.02 -0.02 0.01 0.00 -0.05 -0.05 -0.06 0.04 -0.05 0.04 0.05 0.05 0.07 0.02 0.05 0.01 -0.04 -0.04 0.07 0.12 0.01 0.01 -0.03 -0.03 -0.04 0.96 0.98 0.89 1.00 0.67 0.65 0.61 0.83 0.11 0.57 0.02 0.83 0.40 0.47 -0.19 -0.30 -0.31 -0.07 -0.24 -0.21 -0.05 -0.21 -0.12 -0.26 -0.09 -0.07 0.31 0.24 0.11 0.16 0.24 -0.08 0.33 0.26 0.11
Euro-Bund -0.02 -0.01 -0.03 -0.02 -0.03 -0.02 -0.02 0.02 -0.01 -0.02 -0.05 0.03 -0.01 0.08 0.07 0.07 0.07 0.00 0.11 0.00 -0.04 -0.04 0.09 0.19 0.05 0.08 -0.02 -0.04 -0.02 0.65 0.64 0.58 0.67 1.00 0.96 0.88 0.65 0.16 0.82 0.06 0.55 0.55 0.72 -0.21 -0.36 -0.37 -0.13 -0.30 -0.21 -0.08 -0.22 -0.13 -0.35 -0.14 -0.12 0.37 0.27 0.15 0.22 0.27 -0.14 0.39 0.31 0.18
Euro-Bobl 0.00 0.00 -0.03 -0.01 -0.02 -0.01 -0.02 0.01 -0.01 -0.02 -0.05 0.02 -0.01 0.08 0.07 0.08 0.08 0.00 0.12 0.00 -0.03 -0.03 0.11 0.21 0.04 0.10 -0.02 -0.04 -0.01 0.63 0.64 0.60 0.65 0.96 1.00 0.95 0.63 0.15 0.78 0.06 0.58 0.59 0.79 -0.20 -0.37 -0.38 -0.13 -0.31 -0.22 -0.08 -0.22 -0.13 -0.35 -0.14 -0.11 0.40 0.30 0.17 0.24 0.28 -0.17 0.42 0.32 0.18
Euro-Schatz 0.00 -0.01 -0.03 -0.02 -0.03 0.00 -0.01 0.02 0.01 -0.02 -0.06 0.02 -0.01 0.09 0.07 0.08 0.08 0.02 0.12 -0.01 -0.02 -0.02 0.12 0.22 0.03 0.11 -0.02 -0.03 0.00 0.57 0.61 0.59 0.61 0.88 0.95 1.00 0.59 0.13 0.70 0.06 0.57 0.60 0.82 -0.20 -0.34 -0.36 -0.12 -0.30 -0.21 -0.07 -0.22 -0.12 -0.34 -0.15 -0.10 0.39 0.30 0.18 0.24 0.29 -0.17 0.41 0.30 0.17
Canadian Bond -0.01 0.01 -0.02 -0.01 -0.02 0.01 -0.01 0.00 -0.04 -0.03 -0.02 0.03 -0.04 0.05 0.04 0.05 0.05 0.02 0.04 0.00 -0.03 -0.03 0.07 0.11 0.00 0.03 -0.02 -0.02 -0.03 0.82 0.81 0.75 0.83 0.65 0.63 0.59 1.00 0.09 0.55 0.04 0.72 0.39 0.47 -0.18 -0.28 -0.29 -0.07 -0.24 -0.20 -0.07 -0.20 -0.11 -0.25 -0.10 -0.08 0.31 0.24 0.12 0.18 0.25 -0.08 0.33 0.25 0.14
JGB Japan -0.03 0.02 0.00 0.02 0.00 -0.02 0.01 0.01 -0.03 -0.01 0.01 0.04 0.06 -0.01 0.00 0.00 0.00 0.00 0.01 0.03 -0.04 -0.04 -0.02 0.00 0.03 0.01 -0.02 -0.05 -0.02 0.09 0.10 0.10 0.11 0.16 0.15 0.13 0.09 1.00 0.17 0.43 0.08 0.19 0.15 -0.09 -0.11 -0.10 -0.20 -0.11 -0.08 -0.02 -0.09 -0.12 -0.13 -0.12 -0.41 0.07 0.05 0.02 -0.04 0.05 0.01 0.09 -0.02 0.02
Gilts UK -0.02 -0.01 -0.04 -0.01 -0.05 -0.02 0.00 0.02 0.01 0.00 -0.04 0.03 0.00 0.06 0.09 0.09 0.09 0.00 0.11 0.01 -0.04 -0.04 0.07 0.17 0.04 0.07 -0.03 -0.03 -0.01 0.55 0.55 0.51 0.57 0.82 0.78 0.70 0.55 0.17 1.00 0.08 0.48 0.54 0.68 -0.19 -0.32 -0.33 -0.15 -0.30 -0.19 -0.09 -0.21 -0.14 -0.35 -0.16 -0.13 0.32 0.23 0.12 0.18 0.17 -0.12 0.33 0.27 0.16
Euroyen -0.03 -0.04 -0.03 0.02 -0.01 0.02 -0.04 -0.02 -0.07 0.03 -0.01 0.00 0.05 0.02 0.02 0.02 -0.01 -0.04 -0.01 0.00 -0.04 -0.03 -0.04 -0.04 0.01 -0.03 -0.03 -0.06 -0.03 0.02 0.02 0.01 0.02 0.06 0.06 0.06 0.04 0.43 0.08 1.00 0.16 0.34 0.30 -0.08 -0.08 -0.08 -0.13 -0.09 -0.07 -0.09 -0.09 -0.07 -0.10 -0.12 -0.22 0.01 0.02 -0.05 -0.08 -0.02 0.03 0.03 -0.05 -0.05
Eurodollar 0.01 -0.03 -0.03 -0.01 -0.01 -0.03 0.02 0.00 -0.05 -0.05 -0.04 0.05 -0.04 0.06 0.07 0.07 0.09 0.02 0.08 0.01 -0.04 -0.04 0.09 0.12 -0.01 0.01 -0.02 -0.04 -0.03 0.74 0.88 0.92 0.83 0.55 0.58 0.57 0.72 0.08 0.48 0.16 1.00 0.46 0.55 -0.19 -0.28 -0.29 -0.06 -0.23 -0.19 -0.07 -0.22 -0.11 -0.24 -0.15 -0.07 0.30 0.23 0.08 0.14 0.23 -0.07 0.34 0.30 0.11
Euroswiss 0.01 -0.04 -0.04 -0.01 -0.02 -0.05 0.00 0.00 -0.01 0.00 -0.05 0.02 -0.03 0.06 0.05 0.06 0.04 0.02 0.08 -0.01 -0.04 -0.03 0.06 0.12 0.02 0.06 -0.01 -0.05 0.00 0.36 0.40 0.39 0.40 0.55 0.59 0.60 0.39 0.19 0.54 0.34 0.46 1.00 0.74 -0.16 -0.26 -0.26 -0.16 -0.24 -0.17 -0.10 -0.18 -0.13 -0.27 -0.16 -0.18 0.23 0.16 0.09 0.12 0.13 -0.07 0.23 0.19 0.11
Euribor 0.00 -0.03 -0.06 -0.01 -0.06 -0.02 -0.01 0.00 0.00 0.01 -0.07 0.03 0.01 0.08 0.08 0.09 0.08 0.02 0.13 -0.01 -0.06 -0.05 0.09 0.17 0.04 0.07 -0.03 -0.05 -0.01 0.43 0.48 0.46 0.47 0.72 0.79 0.82 0.47 0.15 0.68 0.30 0.55 0.74 1.00 -0.16 -0.29 -0.30 -0.14 -0.27 -0.18 -0.13 -0.19 -0.11 -0.32 -0.16 -0.15 0.31 0.24 0.14 0.19 0.21 -0.12 0.34 0.25 0.14
SP500 E-Mini 0.07 0.02 0.04 0.02 0.05 0.01 -0.01 0.09 0.04 0.05 0.02 0.05 0.06 -0.01 -0.09 -0.09 -0.08 -0.05 -0.09 0.03 0.15 0.13 0.03 -0.03 0.00 0.07 0.11 0.12 0.13 -0.17 -0.21 -0.20 -0.19 -0.21 -0.20 -0.20 -0.18 -0.09 -0.19 -0.08 -0.19 -0.16 -0.16 1.00 0.62 0.63 0.13 0.46 0.87 0.18 0.96 0.64 0.52 0.28 0.09 -0.09 -0.04 0.07 0.05 -0.07 -0.04 -0.15 -0.07 0.05
DAX 30 0.03 0.01 0.05 0.01 0.07 0.03 0.00 0.08 0.02 0.03 0.03 0.02 0.06 -0.03 -0.09 -0.10 -0.09 -0.07 -0.10 0.03 0.19 0.18 0.05 -0.06 -0.02 0.05 0.13 0.15 0.12 -0.28 -0.31 -0.29 -0.30 -0.36 -0.37 -0.34 -0.28 -0.11 -0.32 -0.08 -0.28 -0.26 -0.29 0.62 1.00 0.96 0.29 0.74 0.56 0.06 0.62 0.43 0.84 0.40 0.24 -0.25 -0.17 0.01 0.01 -0.16 0.03 -0.31 -0.16 0.01
Eurostoxx 0.04 0.02 0.07 0.04 0.08 0.04 0.00 0.07 0.02 0.04 0.06 0.03 0.08 -0.04 -0.06 -0.08 -0.07 -0.05 -0.09 0.04 0.21 0.19 0.05 -0.06 -0.01 0.05 0.15 0.16 0.13 -0.28 -0.32 -0.30 -0.31 -0.37 -0.38 -0.36 -0.29 -0.10 -0.33 -0.08 -0.29 -0.26 -0.30 0.63 0.96 1.00 0.27 0.79 0.57 0.09 0.63 0.45 0.88 0.42 0.20 -0.25 -0.16 0.02 0.02 -0.17 0.03 -0.31 -0.17 0.01
Hang Seng 0.03 0.01 0.08 0.09 0.07 0.00 0.08 0.12 0.10 0.06 0.06 0.01 0.05 -0.02 0.01 0.02 0.02 -0.02 -0.01 0.03 0.18 0.18 0.14 0.13 0.01 0.12 0.15 0.18 0.13 -0.05 -0.06 -0.06 -0.07 -0.13 -0.13 -0.12 -0.07 -0.20 -0.15 -0.13 -0.06 -0.16 -0.14 0.13 0.29 0.27 1.00 0.34 0.16 0.02 0.12 0.20 0.35 0.28 0.54 0.03 0.09 0.17 0.22 0.09 -0.10 -0.01 -0.01 0.17
FTSE 100 UK 0.05 0.03 0.10 0.10 0.08 0.06 0.02 0.06 0.00 0.04 0.10 0.04 0.06 -0.01 -0.01 -0.02 -0.01 -0.04 -0.05 0.09 0.25 0.26 0.14 0.07 0.01 0.09 0.21 0.24 0.18 -0.23 -0.25 -0.25 -0.24 -0.30 -0.31 -0.30 -0.24 -0.11 -0.30 -0.09 -0.23 -0.24 -0.27 0.46 0.74 0.79 0.34 1.00 0.40 0.14 0.47 0.41 0.86 0.52 0.27 -0.17 -0.06 0.08 0.10 -0.14 -0.04 -0.24 -0.18 0.04
Nasdaq 100 Mini 0.03 0.03 0.05 0.01 0.07 0.00 -0.02 0.10 0.01 0.04 0.02 0.05 0.06 -0.01 -0.11 -0.11 -0.10 -0.07 -0.09 -0.01 0.09 0.09 -0.01 -0.08 -0.01 0.03 0.07 0.08 0.09 -0.20 -0.22 -0.21 -0.21 -0.21 -0.22 -0.21 -0.20 -0.08 -0.19 -0.07 -0.19 -0.17 -0.18 0.87 0.56 0.57 0.16 0.40 1.00 0.13 0.83 0.55 0.48 0.22 0.13 -0.13 -0.08 0.03 0.02 -0.11 -0.02 -0.17 -0.09 0.01
Russel 2000 E-Mini 0.02 0.01 0.00 0.00 0.01 -0.01 0.01 -0.02 -0.01 0.01 -0.01 -0.01 0.00 -0.06 0.02 0.02 0.02 -0.02 0.00 0.05 0.05 0.06 0.02 0.02 -0.01 0.01 0.06 0.09 0.10 -0.04 -0.06 -0.07 -0.05 -0.08 -0.08 -0.07 -0.07 -0.02 -0.09 -0.09 -0.07 -0.10 -0.13 0.18 0.06 0.09 0.02 0.14 0.13 1.00 0.16 0.13 0.13 0.21 0.00 0.00 -0.01 0.05 0.03 0.01 -0.03 -0.04 -0.10 0.04
Dow Jones 0.05 0.03 0.04 0.02 0.04 0.02 -0.02 0.08 0.03 0.05 0.02 0.05 0.06 -0.04 -0.14 -0.14 -0.13 -0.07 -0.13 0.00 0.14 0.13 0.02 -0.06 -0.01 0.05 0.11 0.11 0.11 -0.19 -0.23 -0.22 -0.21 -0.22 -0.22 -0.22 -0.20 -0.09 -0.21 -0.09 -0.22 -0.18 -0.19 0.96 0.62 0.63 0.12 0.47 0.83 0.16 1.00 0.60 0.53 0.28 0.10 -0.11 -0.06 0.05 0.04 -0.08 -0.03 -0.17 -0.09 0.03
TSE Toronto 0.11 0.05 0.09 0.08 0.10 0.04 0.07 0.10 0.05 0.12 0.06 0.10 0.05 0.11 0.17 0.16 0.15 -0.01 0.08 0.20 0.25 0.24 0.21 0.20 0.07 0.19 0.23 0.21 0.20 -0.11 -0.13 -0.12 -0.12 -0.13 -0.13 -0.12 -0.11 -0.12 -0.14 -0.07 -0.11 -0.13 -0.11 0.64 0.43 0.45 0.20 0.41 0.55 0.13 0.60 1.00 0.42 0.28 0.15 0.02 0.04 0.13 0.15 0.05 -0.02 -0.04 -0.03 0.11
CAC 40 France 0.03 0.01 0.08 0.06 0.07 0.04 0.01 0.06 0.02 0.03 0.06 0.01 0.07 -0.02 -0.01 -0.03 -0.02 -0.07 -0.07 0.07 0.23 0.23 0.09 -0.01 0.01 0.06 0.18 0.20 0.15 -0.24 -0.27 -0.26 -0.26 -0.35 -0.35 -0.34 -0.25 -0.13 -0.35 -0.10 -0.24 -0.27 -0.32 0.52 0.84 0.88 0.35 0.86 0.48 0.13 0.53 0.42 1.00 0.49 0.29 -0.23 -0.13 0.05 0.07 -0.14 -0.01 -0.30 -0.16 0.02
OMX 30 Stockholm 0.05 -0.01 0.08 0.08 0.08 0.04 0.04 0.04 0.04 0.04 0.05 0.03 0.06 0.00 0.05 0.05 0.03 0.02 0.03 0.09 0.23 0.24 0.19 0.15 0.05 0.15 0.20 0.24 0.15 -0.07 -0.11 -0.15 -0.09 -0.14 -0.14 -0.15 -0.10 -0.12 -0.16 -0.12 -0.15 -0.16 -0.16 0.28 0.40 0.42 0.28 0.52 0.22 0.21 0.28 0.28 0.49 1.00 0.22 0.01 0.04 0.14 0.14 0.02 -0.13 -0.07 -0.13 0.14
NIKKEI 225 0.03 0.03 0.04 0.03 0.03 0.02 0.07 0.06 0.04 0.00 0.00 -0.02 0.01 0.04 0.05 0.03 0.06 0.02 -0.01 0.02 0.15 0.13 0.15 0.14 0.00 0.08 0.15 0.17 0.11 -0.06 -0.07 -0.06 -0.07 -0.12 -0.11 -0.10 -0.08 -0.41 -0.13 -0.22 -0.07 -0.18 -0.15 0.09 0.24 0.20 0.54 0.27 0.13 0.00 0.10 0.15 0.29 0.22 1.00 -0.01 0.03 0.08 0.14 0.00 -0.09 -0.06 0.00 0.07
Euro 0.09 0.09 0.10 0.13 0.08 0.00 0.07 0.09 0.10 0.09 0.05 0.01 -0.01 0.06 0.12 0.14 0.11 0.01 0.11 0.07 0.18 0.17 0.40 0.53 0.15 0.28 0.20 0.17 0.13 0.29 0.31 0.30 0.31 0.37 0.40 0.39 0.31 0.07 0.32 0.01 0.30 0.23 0.31 -0.09 -0.25 -0.25 0.03 -0.17 -0.13 0.00 -0.11 0.02 -0.23 0.01 -0.01 1.00 0.81 0.55 0.64 0.76 -0.49 0.94 0.48 0.54
Norwegian Krone 0.10 0.10 0.13 0.18 0.09 0.02 0.10 0.13 0.09 0.10 0.09 0.02 0.00 0.04 0.14 0.16 0.12 0.06 0.16 0.10 0.17 0.16 0.36 0.47 0.13 0.25 0.17 0.15 0.10 0.23 0.24 0.24 0.24 0.27 0.30 0.30 0.24 0.05 0.23 0.02 0.23 0.16 0.24 -0.04 -0.17 -0.16 0.09 -0.06 -0.08 -0.01 -0.06 0.04 -0.13 0.04 0.03 0.81 1.00 0.49 0.55 0.65 -0.41 0.78 0.37 0.47
New Zealand Dollar 0.08 0.06 0.10 0.10 0.07 0.00 0.07 0.14 0.15 0.04 0.03 0.02 0.03 0.02 0.10 0.11 0.09 0.02 0.14 0.03 0.20 0.22 0.37 0.40 0.17 0.27 0.20 0.20 0.15 0.10 0.10 0.10 0.11 0.15 0.17 0.18 0.12 0.02 0.12 -0.05 0.08 0.09 0.14 0.07 0.01 0.02 0.17 0.08 0.03 0.05 0.05 0.13 0.05 0.14 0.08 0.55 0.49 1.00 0.81 0.57 -0.42 0.48 0.27 0.49
Australian Dollar 0.10 0.08 0.13 0.13 0.11 0.02 0.08 0.14 0.15 0.06 0.03 0.04 0.06 0.08 0.15 0.16 0.14 -0.01 0.14 0.10 0.26 0.26 0.45 0.51 0.21 0.32 0.24 0.24 0.19 0.15 0.16 0.15 0.16 0.22 0.24 0.24 0.18 -0.04 0.18 -0.08 0.14 0.12 0.19 0.05 0.01 0.02 0.22 0.10 0.02 0.03 0.04 0.15 0.07 0.14 0.14 0.64 0.55 0.81 1.00 0.60 -0.52 0.57 0.38 0.54
British Pound 0.09 0.07 0.09 0.11 0.07 -0.01 0.06 0.11 0.16 0.04 0.05 0.00 0.02 0.04 0.09 0.12 0.08 0.03 0.09 0.06 0.17 0.17 0.39 0.45 0.16 0.26 0.19 0.17 0.11 0.24 0.24 0.24 0.24 0.27 0.28 0.29 0.25 0.05 0.17 -0.02 0.23 0.13 0.21 -0.07 -0.16 -0.17 0.09 -0.14 -0.11 0.01 -0.08 0.05 -0.14 0.02 0.00 0.76 0.65 0.57 0.60 1.00 -0.40 0.74 0.44 0.50
Canadian Dollar -0.05 -0.07 -0.08 -0.11 -0.06 0.00 -0.02 -0.08 -0.08 -0.08 0.04 -0.04 -0.04 -0.10 -0.19 -0.19 -0.17 -0.07 -0.19 -0.11 -0.18 -0.19 -0.36 -0.41 -0.12 -0.27 -0.19 -0.19 -0.11 -0.09 -0.09 -0.09 -0.08 -0.14 -0.17 -0.17 -0.08 0.01 -0.12 0.03 -0.07 -0.07 -0.12 -0.04 0.03 0.03 -0.10 -0.04 -0.02 -0.03 -0.03 -0.02 -0.01 -0.13 -0.09 -0.49 -0.41 -0.42 -0.52 -0.40 1.00 -0.44 -0.26 -0.35
Swiss Franc 0.08 0.09 0.09 0.12 0.07 -0.02 0.07 0.07 0.08 0.07 0.05 0.01 -0.02 0.07 0.13 0.15 0.13 0.02 0.13 0.05 0.15 0.15 0.37 0.49 0.14 0.26 0.18 0.13 0.12 0.30 0.34 0.34 0.33 0.39 0.42 0.41 0.33 0.09 0.33 0.03 0.34 0.23 0.34 -0.15 -0.31 -0.31 -0.01 -0.24 -0.17 -0.04 -0.17 -0.04 -0.30 -0.07 -0.06 0.94 0.78 0.48 0.57 0.74 -0.44 1.00 0.53 0.51
Japanese Yen 0.03 0.04 0.02 0.04 0.02 -0.03 -0.02 0.01 0.04 0.00 0.02 0.03 -0.06 0.05 0.04 0.05 0.04 -0.08 0.06 0.00 0.08 0.07 0.19 0.27 0.05 0.16 0.10 0.06 0.03 0.24 0.28 0.29 0.26 0.31 0.32 0.30 0.25 -0.02 0.27 -0.05 0.30 0.19 0.25 -0.07 -0.16 -0.17 -0.01 -0.18 -0.09 -0.10 -0.09 -0.03 -0.16 -0.13 0.00 0.48 0.37 0.27 0.38 0.44 -0.26 0.53 1.00 0.58
Singapore Dollar 0.07 0.07 0.09 0.12 0.07 -0.01 0.07 0.08 0.09 0.01 0.07 0.06 -0.03 0.05 0.09 0.10 0.08 -0.05 0.09 0.05 0.18 0.20 0.31 0.39 0.12 0.27 0.22 0.21 0.14 0.11 0.11 0.10 0.11 0.18 0.18 0.17 0.14 0.02 0.16 -0.05 0.11 0.11 0.14 0.05 0.01 0.01 0.17 0.04 0.01 0.04 0.03 0.11 0.02 0.14 0.07 0.54 0.47 0.49 0.54 0.50 -0.35 0.51 0.58 1.00
<!--/html_preserve-->

+ +

<!--html_preserve-->

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Eigenvalue Pct of explained variance Cumulative pct of explained variance
comp 1 11.19 17.49 17.49
comp 2 8.02 12.53 30.02
comp 3 4.26 6.65 36.67
comp 4 3.55 5.54 42.21
comp 5 3.22 5.02 47.23
comp 6 2.51 3.92 51.16
comp 7 2.16 3.38 54.54
comp 8 1.55 2.41 56.95
comp 9 1.45 2.27 59.22
comp 10 1.37 2.14 61.36
comp 11 1.22 1.90 63.26
comp 12 1.16 1.81 65.06
comp 13 1.06 1.65 66.72
comp 14 1.04 1.63 68.34
comp 15 1.03 1.60 69.95
comp 16 0.99 1.54 71.49
comp 17 0.95 1.48 72.97
comp 18 0.94 1.47 74.45
comp 19 0.90 1.40 75.85
comp 20 0.88 1.37 77.22
comp 21 0.84 1.32 78.54
comp 22 0.81 1.26 79.80
comp 23 0.78 1.22 81.03
comp 24 0.73 1.13 82.16
comp 25 0.71 1.10 83.26
comp 26 0.70 1.10 84.36
comp 27 0.67 1.05 85.41
comp 28 0.65 1.02 86.43
comp 29 0.62 0.96 87.40
comp 30 0.58 0.91 88.31
comp 31 0.55 0.86 89.16
comp 32 0.51 0.79 89.96
comp 33 0.47 0.74 90.69
comp 34 0.43 0.67 91.36
comp 35 0.41 0.64 92.00
comp 36 0.39 0.61 92.61
comp 37 0.38 0.60 93.21
comp 38 0.37 0.58 93.79
comp 39 0.35 0.54 94.33
comp 40 0.34 0.53 94.87
comp 41 0.31 0.48 95.35
comp 42 0.30 0.47 95.82
comp 43 0.28 0.44 96.26
comp 44 0.27 0.43 96.69
comp 45 0.23 0.35 97.04
comp 46 0.22 0.34 97.38
comp 47 0.21 0.32 97.70
comp 48 0.19 0.29 98.00
comp 49 0.17 0.27 98.27
comp 50 0.16 0.26 98.52
comp 51 0.16 0.24 98.77
comp 52 0.15 0.24 99.01
comp 53 0.11 0.17 99.17
comp 54 0.10 0.16 99.33
comp 55 0.08 0.13 99.46
comp 56 0.07 0.11 99.57
comp 57 0.07 0.11 99.68
comp 58 0.05 0.08 99.76
comp 59 0.04 0.07 99.83
comp 60 0.03 0.05 99.88
comp 61 0.03 0.04 99.92
comp 62 0.03 0.04 99.97
comp 63 0.01 0.02 99.99
comp 64 0.01 0.01 100.00
<!--/html_preserve-->

+ +
## Error in cbind(as.data.frame(eigenvalues), c(1:length(eigenvalues)), rep(1, : object 'eigenvalues2' not found
+
+ +
## Error in loadNamespace(name): there is no package called 'webshot'
+
+ +

A Simple Futures Trend Following Strategy

+ +

We can now develop a simple futures trend following trading strategy, as outlined in the papers in the Exercise Introduction above. There are about $300 billion invested in such strategies! Of course we cannot develop here a sophisticated product, but with some more work...

+ +

We will do the following:

+ +
    +
  1. Calculate a number of moving averages of different "window lengths" for each of the 64 futures - there are many so called technical indicators one can use. We will use the "moving average" function ma for this (try for example to see what this returns ma(1:10,2) ).
  2. +
  3. Add the signs (can also use the actual moving average values of course - try it!) of these moving averages (as if they "vote"), and then scale this sum across all futures so that the sum of their (of the sum across all futures!) absolute value across all futures is 1 (hence we invest $1 every day - you see why?).
  4. +
  5. Then invest every day in each of the 64 an amount that is defined by the weights calculated in step 2, using however the weights calculated using data until 2 days ago (why 2 days and not 1 day?) - see the use of the helper function shift for this.
  6. +
  7. Finally see the performance of this strategy.
  8. +
+ +

Here is the code:

+ +
signal_used = 0 * futures_data  # just initialize the trading signal to be 0
+# Take many moving Average (MA) Signals and let them 'vote' with their sign
+# (+-1, e.g. long or short vote, for each signal)
+MAfreq <- seq(10, 250, by = 20)
+for (iter in 1:length(MAfreq)) signal_used = signal_used + sign(apply(futures_data, 
+    2, function(r) ma(r, MAfreq[iter])))
+# Now make sure we invest $1 every day (so the sum of the absolute values of
+# the weights is 1 every day)
+signal_used = t(apply(signal_used, 1, function(r) {
+    res = r
+    if (sum(abs(r)) != 0) 
+        res = r/sum(abs(r))
+    res
+}))
+colnames(signal_used) <- colnames(futures_data)
+# Now create the returns of the strategy for each futures time series
+strategy_by_future <- scrub(shift(signal_used, 2) * futures_data)  # signal 2 days ago
+# finally, this is our futures trend following strategy
+trading_strategy = apply(strategy_by_future, 1, sum)
+names(trading_strategy) <- rownames(futures_data)
+
+ +

Reporting the performance results

+ +

Let's see how this strategy does:

+ +
## Error in loadNamespace(name): there is no package called 'webshot'
+
+ +

Here is how this strategy has performed during this period:

+ +

<!--html_preserve-->

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Year
2001 0.61 1.55 1.81 -2.00 0.54 0.69 0.75 1.35 4.30 0.33 -2.26 -2.45 5.13
2002 0.20 -0.44 -2.61 1.01 0.39 1.72 2.06 1.65 3.38 -2.50 -1.27 3.07 6.64
2003 2.39 3.37 -2.85 -0.92 1.25 -1.25 0.73 -0.13 -0.33 4.23 0.10 3.10 9.86
2004 1.22 3.16 0.06 -1.66 -0.13 -1.40 3.00 -2.75 4.36 -0.77 0.98 -0.07 5.91
2005 -0.55 1.03 0.27 -2.03 -0.27 0.84 0.42 1.51 0.25 -1.05 2.17 0.30 2.86
2006 2.00 -0.87 2.05 3.85 -0.30 -1.63 -0.76 0.00 0.60 2.23 0.50 1.17 9.05
2007 0.13 -0.52 -0.96 1.69 0.01 0.77 -0.90 -1.28 3.15 1.81 -0.05 1.98 5.88
2008 2.52 5.71 -3.06 0.36 2.38 4.06 -4.41 -1.66 5.35 14.30 3.88 1.61 34.20
2009 1.23 2.07 -5.43 -2.20 -0.82 -0.93 1.92 3.00 0.12 0.39 2.02 0.91 2.01
2010 -3.39 0.19 3.88 1.10 -5.04 -2.45 -1.27 0.01 2.31 3.59 -1.06 6.41 3.75
2011 1.27 2.48 -1.58 2.63 -4.07 -2.15 0.58 -0.77 1.23 -4.67 0.63 -0.38 -5.01
2012 -0.94 0.20 0.34 -0.12 1.57 -1.80 1.35 -0.33 -0.74 -0.92 -0.36 0.13 -1.65
2013 1.29 -0.58 1.07 0.15 1.29 0.52 0.51 -0.72 0.14 0.42 1.29 0.44 5.96
2014 -1.12 0.80 -0.11 0.54 -0.41 -0.16 0.69 0.96 0.89 0.52 2.53 2.64 7.98
2015 1.77 -0.73 1.63 -2.32 0.39 -0.43 1.50 -1.70 1.17 1.18
<!--/html_preserve-->

+ +

How does this compare with existing CTA products such as this one from Societe Generale? (Note: one can easily achieve a correlation of more than 0.8 with this specific product - as well as with many other ones)

+ +

Compare our strategy with this product

+ +

Questions

+ +
    +
  1. Can you describe in more detail what the code above does?
  2. +
  3. What happens if you use different moving average technical indicators in the code above? Please explore and report below the returns of a trading strategy you build. (Hint: check that the command line MAfreq<-seq(10,250,by=20) above does for example - but not only of course, the possibilities are endless)
  4. +
+ +

Answers

+ +
    +
  1. The code is varied by "MAfreq" which creates intervals from 10 to 250 and then the solution is iterated in order to define the investment strategy
  2. +
  3. The command MAfreq<-seq(10,250,by=20), affects how often the trading strategy is implemented depending on a moving average. +* +* +* +* +*
  4. +
+ +

A class competition

+ +

Now you have seen how to develop some trading strategies that hedge funds have been using for centuries. Clearly this is only the very first step - as many of the online resources on technical indicators also suggest. Can you now explore more such strategies? How good a futures trend following hedge fund strategy can you develop? Let's call this.... a class competition! Explore as much as you can and report your best strategy as we move along the course...

+ +

Here is for example something that can be achieved relatively easily...

+ +
## Error in loadNamespace(name): there is no package called 'webshot'
+
+ +

Here is how this strategy has performed during this period:

+ +

<!--html_preserve-->

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Year
2001 0.00 0.00 0.68 -1.00 0.02 -0.05 0.60 0.95 2.41 1.25 -2.21 -0.98 1.59
2002 -0.56 -0.18 -0.81 0.21 1.09 1.92 1.85 1.25 1.75 -0.93 -0.68 2.76 7.85
2003 1.33 1.53 -0.83 0.12 1.86 -0.90 -0.31 -0.20 -0.03 1.98 0.09 1.82 6.58
2004 0.76 1.90 -0.07 -1.83 -0.19 -0.32 0.33 -1.02 1.32 0.19 1.33 0.26 2.62
2005 -0.36 0.37 0.02 -0.70 0.51 0.93 0.13 0.17 0.69 -0.04 1.55 0.41 3.72
2006 1.21 -0.04 2.10 2.03 -0.42 -0.17 -0.89 -0.54 -0.15 0.95 0.71 0.73 5.61
2007 0.39 -0.98 -0.08 1.70 1.18 1.33 -1.27 -2.41 2.01 1.11 0.29 0.67 3.92
2008 2.60 2.96 -0.98 -0.37 0.69 1.68 -1.97 -0.14 1.78 4.35 1.62 0.73 13.57
2009 0.05 0.72 -1.36 -1.15 0.41 -0.73 0.88 0.83 0.71 -0.14 1.64 -0.63 1.19
2010 -1.26 0.47 1.34 0.77 -1.30 -0.49 -0.45 1.10 1.04 1.67 -0.89 2.38 4.38
2011 0.58 1.16 -0.69 1.74 -1.71 -1.50 0.98 0.64 0.81 -1.86 0.46 0.39 0.93
2012 -0.29 -0.15 -0.05 -0.10 1.27 -1.08 0.66 -0.25 -0.22 -0.77 -0.18 -0.13 -1.31
2013 1.09 -0.98 0.82 -0.03 0.72 0.85 0.20 -0.26 0.12 0.23 0.90 1.01 4.73
2014 -1.33 0.46 -0.12 0.06 0.32 0.42 0.01 1.15 1.85 0.68 2.07 1.49 7.24
2015 2.17 -0.30 1.10 -1.49 0.27 0.04 0.40 -0.77 0.73 2.11
<!--/html_preserve-->

+ +

As always, have fun

+ +
+ +
+ + +
+ + + + + + + + + + \ No newline at end of file