Overblog
Suivre ce blog Administration + Créer mon blog
13 février 2010 6 13 /02 /février /2010 22:15

Sortie de la position XTO/XOM.

J'ai clôturé la position ce vendredi en rachetant  XOM à 64.82 et en vendant les XTO à 45.45 : donc un débit de -735.5$ brut.
Au total l'arbitrage a donné +2375.50 -735.50 = +1640 $ brut, auquel il faut encore déduire les frais de financement de la position.
Tout cela pour vous montrer qu'il existe bien des moyens de faire de l'argent avec le marché.  Ici, complètement sans risques, certes le rendement est limité mais avec les taux actuels, c'est tout bénéfice en 2 mois de temps.
Voici le graphe du spread :

hk186.gif
Partager cet article
Repost0
16 janvier 2010 6 16 /01 /janvier /2010 15:22

Lissage : Encore & Toujours.

Pour la détection des cycles, la technique idéale est l'emploi d'une moyenne centrée.  L'idée, au départ, serait d'utiliser un filtre sans lag et de le reporter sur l'UT supérieure.  On réduirait ainsi le lag pour arriver à un moyenne "quasi centrée".
Pour filtrer les cours et diminuer le lag, j'ai essayé d'extrapoler la prochaine valeur puis j'ai appliqué un filtre avec lag à cette valeur.  Donc, si le lag est d'une barre, comme j'extrapole le cours à j+1,au final la courbe devrait être centrée ?
Ci-dessous, une vue d'OXY avec l'indicateur en vert/rouge.  Le filtre a l'air correct et finalement, se rapproche d'une moyenne de Hull de période 6 (en bleu).

hk182

J'ai repris la même procédure sur l'UT supérieure mais je dois passer par un lissage supplémentaire et j'ai, donc, de nouveau un petit lag.  Je pense qu'en refaisant une nouvelle extrapolation, ça devrait être OK mais PRT supportera-t-il ?
Ci-dessous, la vue avec le filtre de degré supérieur en jaune :

hk183.gif

Avec une autre application : le lag est un peu moins important, aux alentours de 2 barres....... 
Je vais donc essayer la double extrapolation.  A suivre.

hk184.gif

Partager cet article
Repost0
14 décembre 2009 1 14 /12 /décembre /2009 19:20

Arbitrer XOM pour XTO.

Exxon Mobil (XOM) vient de lancer une OPA sur XTO Energy (XTO).
Parité de l'offre : 0.7098 actions XOM pour 1 action XTO.
Je vends donc 1000 XOM pour acheter 1410 XTO.
Détails de l'opération : -1000 XOM à 69.56 = +69560 $
                                     +1410 XTO à 47.65 = -67186.5$
J'encaisse donc 2373.5$ (brut), je suis créditeur de 1410 XTO et débiteur de 1000 XOM.
J'attends maintenant que les cours se rapprochent pour dénouer la position : finalisation prévue courant 1er semestre 2010.

A suivre.........

Edit, mise à jour du 20 décembre.

Voici le graphe du spread sur la semaine écoulée.  Après une baisse marquée pour mardi, le spread est revenu un rien sous le niveau d'entrée.

hk179.gif

Edit, mise à jour du 23 janvier.

Voici, le graphe du spread sur le dernier mois : la position a été perdante puis neutre jusque mi-janvier.  Le spread commence à baisser, la position est gagnante de 583$ (brut) pour l'instant.

hk185.gif
Partager cet article
Repost0
25 novembre 2009 3 25 /11 /novembre /2009 10:16

HMY à surveiller ?


Alors que d'autres titres du secteur (NEM par exemple) ont déjà franchi le pas, HMY pourrait repartir à la hausse en cassant l'oblique long terme.  En effet, sur la vue hebdo, les 2 cycles sont proches d'un bottom.  A suivre donc.......

Edit le 09/01/2010 : les cycles ont continué à descendre après l'article du 25 novembre.  On a donc pas cassé à la hausse l'oblique comme anticipé, on a juste été la tester (quand même 9% de hausse à prendre).  Voilà seulement que les cycles se retournent, donc à suivre une nouvelle fois.
hk181.gif
Partager cet article
Repost0
22 novembre 2009 7 22 /11 /novembre /2009 16:20

Cycles sur l'indice SP 500 : mise à jour.


Les cycles journaliers continuent à bien apparaître.  Le cycle hebdo se retourne mais le cycle mensuel (non visible) marque un sommet.

Edit au 09/01/2010 : les cycles journaliers ont foiré en décembre.  Le cycle hebdo s'est bien retourné à la hausse : on approche d'un sommet alors que le cycle mensuel (non visible) se retourne lentement à la baisse.  Donc prudence dès que le cycle hebdo donnera un signal négatif.hk180.gif
Partager cet article
Repost0
19 septembre 2009 6 19 /09 /septembre /2009 17:47

Cycles : Où en est l'indice SP 500 ?

Voici les graphes du SP500, avec un nouvel indicateur de cycles que je teste.


En unité "mois", jusqu'au début des années 80, les cyles sont bien marqués : +/- 4 ans pour le plus long.


Toujours en unité "mois" : à la fin des eighties, c'est moins régulier.


Sur l'unité "semaines" : les cycles sont très bien sortis pour la période récente.


Sur l'unité "jours" : les 3 cycles sont au top.


Une vue agrandie du dernier graphe.
Partager cet article
Repost0
15 mai 2009 5 15 /05 /mai /2009 14:05

Tracer la droite de régression linéaire en automatique, version 2.

Voici une version améliorée du premier programme (c'est ici) qui traçait en automatique la droite de régression linéaire des k dernières bougies.  Ce nouveau code est beaucoup plus rapide (suppression des boucles) et n'est plus limité pour la longueur de la droite.  Une vue de YHOO avec k=50, puis k=1000.




Pourquoi faire simple quand on peut faire compliqué ?  Comment ne pas avoir pensé plus tôt à utiliser la commande "LinearRegression" ?  Voici le code pour Prorealtime, il faut introduire k en variable :

///////////// regression automatique v.02 /////////
once j=0
de48=DPO[k*2](close)
if de48=de48[1] and de48[1]=de48[2] and de48[2]<>de48[3] then
    flag=1
endif
n=(k*2)-4
p=(n/2)-1
d100=DPO[n](close)
moy100=close-d100
co=(moy100-moy100[1]+(close[p])/n)*n
if flag=1 and flag[1]=0 then
    test=linearregression[k](co)
    test1=linearregressionslope[k](co)
    a=test1
    b=test-test1*k
endif
if flag=0 then
    reg=undefined
else
    j=j+1
    reg=a*j+b
endif
return reg
Partager cet article
Repost0
14 mai 2009 4 14 /05 /mai /2009 20:35

Algorithme de Goertzel : recherche de l'amplitude, de la période et de la phase du cycle.

Dans le dernier article sur l'algorithme de Goertzel, le programme permettait de retrouver les 2 périodes des cycles qui avaient la meilleure réponse.  Je l'ai complèté et corrigé pour qu'il sorte également l'amplitude correcte du cycle ainsi que la phase : cela afin de pouvoir redessiner la courbe.
Dans l'exemple ci-dessous, le signal (en noir) est une sinusoïde de période 11 ajoutée à une sinusoïde de période 19 (d'amplitude 2) avec un décalage de phase (90),  le tout avec une pincée de bruit..   Les 2 courbes (rouge et bleue) sont reconstruites par le programme, il reste à les superposer pour avoir le signal sans bruit.



Le code pour Prorealtime (k, en variable, est la fréquence déjà trouvée) :

////////////////// sous prgm goertzel  biss ////////////
a=barindex
sig=sin(360*a/11)+2*sin(360*a/19+90)
b=SQRT(barindex*(b+1))
b=abs((b-ROUND(b))*4)
c=b-1
sig=sig+c
n=200
pr=sig
alpha=2*cos(360*1/k)
q1=0
q2=0
for i=n downto 0//fenêtre de 200 barres
    q3=pr[i]+alpha*q1-q2
    q2=q1
    q1=q3
next
amp=sqrt(square(q1)+square(q2)-alpha*q1*q2)
real=q1-(alpha*q2)/2
imag=q2*sin(360*1/k)
phas=atan(imag/real)
if real<0 then
    phas=phas+180
elsif real>=0 and imag<0 then
    phas=phas+360
endif
return (2*amp/n)*sin(360/k+phas[1]+90),sig
Partager cet article
Repost0
16 avril 2009 4 16 /04 /avril /2009 20:19

RSI Chandeliers.


Voici à la demande de Mallory, le RSI en représentation chandeliers.  L'indicateur est calculé sur la cloture des barres précédentes et sur les données intra-barre de la dernière bougie.  Une vue de l'indicateur (14) appliqué à GOOG en daily :



Il faut bien sûr créer 3 indicateurs : bas, haut et corps.  Mettre également p en variable : longueur du RSI.
Et les codes pour Proréaltime :

//////////// rsi chandelier bas ////////////////
hausse=max(0,close-close[1])
baisse=max(0,close[1]-close)
mh=wilderaverage[p](hausse)
mb=wilderaverage[p](baisse)
rs=mh/mb
rsii=100-100/(1+rs)
hauss=max(0,open-close[1])
baiss=max(0,close[1]-open)
testh=(mh[1]*(p-1)+hauss)/p
testb=(mb[1]*(p-1)+baiss)/p
testrs=testh/testb
testrsi=100-100/(1+testrs)
hauss1=max(0,low-close[1])
baiss1=max(0,close[1]-low)
testh1=(mh[1]*(p-1)+hauss1)/p
testb1=(mb[1]*(p-1)+baiss1)/p
testrs1=testh1/testb1
testrsi1=100-100/(1+testrs1)
c2=min(rsii,testrsi)
r=abs(c2-testrsi1)
r=(r)/29
b1=testrsi1
c=1
b2=b1+r
b3=b2+r
b4=b3+r
b5=b4+r
b6=b5+r
b7=b6+r
b8=b7+r
b9=b8+r
b10=b9+r
b11=b10+r
b12=b11+r
b13=b12+r
b14=b13+r
b15=b14+r
b16=b15+r
b17=b16+r
b18=b17+r
b19=b18+r
b20=b19+r
b21=b20+r
b22=b21+r
b23=b22+r
b24=b23+r
b25=b24+r
b26=b25+r
b27=b26+r
b28=b27+r
b29=b28+r
b30=b29+r
return b1 coloured by c,b2 coloured by c,b3 coloured by c,b4 coloured by c,b5 coloured by c,b6 coloured by c,b7 coloured by c,b8 coloured by c,b9 coloured by c,b10 coloured by c,b11 coloured by c,b12 coloured by c,b13 coloured by c,b14 coloured by c,b15 coloured by c,b16 coloured by c,b17 coloured by c,b18 coloured by c,b19 coloured by c,b20 coloured by c,b21 coloured by c,b22 coloured by c,b23 coloured by c,b24 coloured by c,b25 coloured by c,b26 coloured by c,b27 coloured by c,b28 coloured by c,b29 coloured by c,b30 coloured by c

///////////// rsi chandelier haut ///////////////
hausse=max(0,close-close[1])
baisse=max(0,close[1]-close)
mh=wilderaverage[p](hausse)
mb=wilderaverage[p](baisse)
rs=mh/mb
rsii=100-100/(1+rs)
hauss=max(0,open-close[1])
baiss=max(0,close[1]-open)
testh=(mh[1]*(p-1)+hauss)/p
testb=(mb[1]*(p-1)+baiss)/p
testrs=testh/testb
testrsi=100-100/(1+testrs)
hauss1=max(0,high-close[1])
baiss1=max(0,close[1]-high)
testh1=(mh[1]*(p-1)+hauss1)/p
testb1=(mb[1]*(p-1)+baiss1)/p
testrs1=testh1/testb1
testrsi1=100-100/(1+testrs1)
c2=max(rsii,testrsi)
r=abs(c2-testrsi1)
r=(r)/29
b1=c2
c=1
b2=b1+r
b3=b2+r
b4=b3+r
b5=b4+r
b6=b5+r
b7=b6+r
b8=b7+r
b9=b8+r
b10=b9+r
b11=b10+r
b12=b11+r
b13=b12+r
b14=b13+r
b15=b14+r
b16=b15+r
b17=b16+r
b18=b17+r
b19=b18+r
b20=b19+r
b21=b20+r
b22=b21+r
b23=b22+r
b24=b23+r
b25=b24+r
b26=b25+r
b27=b26+r
b28=b27+r
b29=b28+r
b30=b29+r
return b1 coloured by c,b2 coloured by c,b3 coloured by c,b4 coloured by c,b5 coloured by c,b6 coloured by c,b7 coloured by c,b8 coloured by c,b9 coloured by c,b10 coloured by c,b11 coloured by c,b12 coloured by c,b13 coloured by c,b14 coloured by c,b15 coloured by c,b16 coloured by c,b17 coloured by c,b18 coloured by c,b19 coloured by c,b20 coloured by c,b21 coloured by c,b22 coloured by c,b23 coloured by c,b24 coloured by c,b25 coloured by c,b26 coloured by c,b27 coloured by c,b28 coloured by c,b29 coloured by c,b30 coloured by c

////////////// rsi chandelier corps ///////////////
hausse=max(0,close-close[1])
baisse=max(0,close[1]-close)
mh=wilderaverage[p](hausse)
mb=wilderaverage[p](baisse)
rs=mh/mb
rsii=100-100/(1+rs)
hauss=max(0,open-close[1])
baiss=max(0,close[1]-open)
testh=(mh[1]*(p-1)+hauss)/p
testb=(mb[1]*(p-1)+baiss)/p
testrs=testh/testb
testrsi=100-100/(1+testrs)
r=abs(testrsi-rsii)
r=(r)/29
if testrsi<rsii then
    b1=testrsi
else
    b1=rsii
endif
b2=b1+r
b3=b2+r
b4=b3+r
b5=b4+r
b6=b5+r
b7=b6+r
b8=b7+r
b9=b8+r
b10=b9+r
b11=b10+r
b12=b11+r
b13=b12+r
b14=b13+r
b15=b14+r
b16=b15+r
b17=b16+r
b18=b17+r
b19=b18+r
b20=b19+r
b21=b20+r
b22=b21+r
b23=b22+r
b24=b23+r
b25=b24+r
b26=b25+r
b27=b26+r
b28=b27+r
b29=b28+r
b30=b29+r
c=rsii-testrsi
return b1 coloured by c,b2 coloured by c,b3 coloured by c,b4 coloured by c,b5 coloured by c,b6 coloured by c,b7 coloured by c,b8 coloured by c,b9 coloured by c,b10 coloured by c,b11 coloured by c,b12 coloured by c,b13 coloured by c,b14 coloured by c,b15 coloured by c,b16 coloured by c,b17 coloured by c,b18 coloured by c,b19 coloured by c,b20 coloured by c,b21 coloured by c,b22 coloured by c,b23 coloured by c,b24 coloured by c,b25 coloured by c,b26 coloured by c,b27 coloured by c,b28 coloured by c,b29 coloured by c,b30 coloured by c


Partager cet article
Repost0
15 février 2009 7 15 /02 /février /2009 16:11
Partager cet article
Repost0