QUANTYS |
Bulletin
d'information Quantys N° 1 : Enfin ...
Le 23 février 2000.
Chers
lecteurs, comme pour la plupart d'entre vous, la fin de l'année
1999 a pris chez nous des allures de sprint pour le passage de
l'an 2000.
C'est pourquoi nous avons dû sacrifier aux priorités absolues
la parution de ce bulletin dont vous ne lisez le premier numéro
qu'aujourd'hui.
Au sommaire de
ce numéro vous trouverez :
1. Trucs et
astuces pour FPU : Calculs de caps, floors et swaps
2. Conseils en
programmation (VB, APL, ...)
3. Les logiciels
libres : PERL
4. Focus sur la
mesure de performance d'un fonds.
5. LES TENDANCES
CACHEES DES MOUVEMENTS DE TAUX
Dans
la rubrique F.A.Q. d'FPU, vous trouverez des modèles de
feuilles Excel vous permettant de pricer des séries de swaps,
caps et floors, ce qui peut s'avérer très utile dans un service
de back-office.
http://www.quantys.fr/produits/FPUaq/FPUaq00.htm
La
version 4 d'FPU étant actuellement en cours de
développement, vous pouvez également nous faire part de vos
suggestions ou remarques.
http://www.quantys.fr/_forms/f_FPU.htm
Vous
pouvez également télécharger gratuitement une version
d'évaluation à l'adresse suivante :
http://www.quantys.fr/produits/FPU02.htm
Nos clients sont de plus en plus nombreux à utiliser Visual Basic Application. Nous sommes donc heureux de vous donner un petit coup de pouce pour vos travaux.
IsNull, IsEmpty et compagnie : Gérer le vide ...
Souvent quand on interroge une table Access, on a besoin de tester si la réponse à une requête contient bien quelque chose ou pas.
Pour cela, on doit tester à 2 niveaux :
d'abord, savoir si il existe au moins une
ligne de réponse. Pour ce faire, après avoir créer un
recordset d'interrogation, on teste sa propriété
RecordCount.
Exemple :
rs = db.OpenRecordSet("Select CodeClient, Quantité
from Commandes where CodePostal = '91160' ")
If rs.RecordCount <> 0 then
suite du traitement sur rs.Fields("...")
End If
Par contre si le RecordCount est différent
de zéro, il faut prendre garde aux champs vides ou nuls.
En effet, pour VB, les deux notions sont voisines mais
différentes alors que pour le développeur elles sont
souvent identiques en ce qui concerne la suite du
programme puisqu'elles signifient toutes deux que
l'information n'existe pas.
En ce qui nous concerne, nous avons réglé le problème en écrivant une fonction qui teste les 2 cas de figure et rend vrai si la variable testée rentre dans un des cas analysés.
Function
IsVide(Valeur As Variant) As Boolean
' RESUME :
Teste si une valeur est vide, null, ou = à ""
IsVide = IsNull(Valeur) Or IsEmpty(Valeur) Or Len(Valeur) = 0
End Function
3. LES LOGICIELS LIBRES : PERL
De plus en plus la presse en parle. Les logiciels libres et gratuits sont réellement en train de tailler des croupières aux grands éditeurs, surtout dans le domaine des technologies web.
En effet le trio infernal Linux, Apache, Perl motorise à l'heure actuelle les 3 quarts des serveurs Internet et non les moindres. J'ai même personnellement constaté que le service de messagerie gratuit Hotmail récemment racheté par Microsoft tournait sous Apache et non pas sous le IIS maison !!!
Nous
nous intéresserons ici au langage Perl dans une utilisation Web.
Depuis quelques années, les technologies à base de navigateur
Internet (browsers, butineurs, fureteurs, ...) annoncent la
promesse d'un nouveau standard et la mort des interfaces
propriétaires de la génération client serveur.
Ceci
soulève un premier problème qui est celui de l'interactivité.
En effet, un écran Windows est très réactif et ses objets
peuvent très facilement être modifiés en cours d'exécution
(VB, APL, C++, ...).
Par contre ceci n'était absolument pas prévu en HTML.
Donc les langages de scripts sont venus à la rescousse, Java
script étant le plus répandu d'entre eux mais pas le seul.
Le
deuxième et non moindre problème se pose alors : Quel standard
pour le navigateur ? Un vrai standard est-il possible ?
N'oublions pas que c'est la promesse d'un standard qui devrait
nous pousser à abandonner les solutions classiques du Client /
Serveur...
Malheureusement la logique commerciale n'a pas pour objectif
premier de servir l'intérêt général et rapidement des
conflits ont éclaté.
Microsoft et Netscape se battent pour imposer leurs navigateurs
et donc les langages que ceux-ci reconnaissent.
Microsoft a tenté puis renoncé à promouvoir son propre langage
de script : VB Script. Il tournait à peu près bien sur Internet
Explorer mais n'était absolument pas reconnu par le navigateur
de Netscape.
Mes collègues et moi-même avions un petit sourire compatissant
en constatant que sur les CD Rom Microsoft les pages HTML
étaient enrichies de Java Script !!!
Attention tout de même, car d'un navigateur à un autre, d'une
version à une autre ou d'un éditeur à un autre, les ordres
HTML ou scripts ne sont pas interprétés de la même manière.
Des scripts Java script qui tournaient très bien en génération
3 (MS ou Netscape) ont peu de chance de tourner correctement avec
les browsers de la génération 4 ou 5 !!!
Sun a tenté de promouvoir son langage vedette : JAVA.
Là encore, le browser fonctionnera plus ou moins correctement
selon sa version.
Alors que faire ?
La
solution que nous préconisons et employons avec succès pour
notre compte et celui de nos clients consiste à mettre le
maximum de traitements sur le serveur et le moins possible sur le
poste client, tout en restant assez basiques sur les commandes
d'affichage envoyées au browser.
Ce qui résout 3 problèmes d'un coup :
Les postes clients sont peu sollicités et donc des machines anciennes peuvent suffire.
Comme la majeure partie des traitements se fait sur le serveur, peu de données circulent sur le réseau.
En restant simple dans les commandes passées au browser, on réduit considérablement les problèmes de compatibilité et de comportement d'un explorateur à l'autre.
Pour
ce type d'architecture notre choix s'est porté sur le langage
PERL.
En effet, par rapport à d'autres langages, il offre les
caractéristiques suivantes :
En tant que langage interprété, il permet de développer très rapidement et de tester instantanément les nouveaux programmes, sans passer par la compilation.
Il est réellement multi-plateforme principaux Unix, Linux, Windows 32,...
Il est issu d'une communauté de développeurs bénévoles et passionnés et offre un support quasi-illimité via les forums de discussion.
On peut se procurer sur Internet une multitude de scripts couvrant de nombreux besoins.
Il constitue déjà un standard de fait, tout comme Apache le serveur Internet le plus répandu de la planète.
Il est très puissant et s'interface aisément avec des bases de données, notamment via ODBC sur Windows.
Il est relativement facile à apprendre.
Il permet d'intégrer des utilitaires dans des programmes et il existe notamment des bibliothèques orientées HTML.
Bref, pour l'instant nous sommes satisfaits de la formule et avons la satisfaction de ne pas être prisonniers d'un éditeur ou d'un autre...
M.R.
4. FOCUS SUR LA MESURE DE PERFORMANCE D'UN FONDS
Le
développement de l'offre de produits financiers conduit
naturellement les épargnants à considérer la gestion de leur
épargne par un tiers comme une action qui doit pouvoir être
jugée sur des critères objectifs. Face à cette demande, les
gérants ont mis en place des systèmes reporting destinés à
éclairer l'épargnant sur la performance du fonds par rapport à
une ou plusieurs références (les benchmarks).
Notre propos dans ce bulletin se situe en amont des systèmes de
reporting et pose une question rarement abordée : "Qui est
responsable de la performance d'un fonds ?".
La réponse à cette question est fondamentale pour un
investisseur qui, à juste titre, voudra confier ses fonds aux
personnes qui lui semblent le plus compétentes.
La performance d'un fonds trouve sa source d'abord et avnt tout
dans les décisions d'allocation.
Mais qu'est-ce qu'une décision d'allocation ? Différentes
études ont montré que la performance d'un portefeuille, quels
que soient les instruments financiers qu'il contient, est due à
60% au choix de l'allocation.
On distingue en fait trois intervenants dans ce processus dont le
rôle et les responsabilités sont très différents :
l'allocataire d'actifs
le market timer
le stock picker
- L'allocataire d'actifs est la personne qui décide, par exemple en début d'année et aussi souvent en cours d'année qu'il le jugera souhaitable, la répartition de son portefeuille entre les différents marchés nationaux, et à l'intérieur de chaque marché, entre actions et obligations.
- Le market timer est contraint par l'allocataire et ne juge pas du bien-fondé de l'allocation. Le market timer décide de l'instant ou de l'intervalle de temps pendant lesquels l'allocation devra avoir été réalisée. Il peut y avoir autant de market timer qu'il y a de types de marché.
- Enfin, un stock picker est contraint par son market timer et doit décider, lui, quelle action ou quelle obligation de tel marché bien précis il choisira, avec comme unique objectif de faire mieux que la moyenne du marché.
Dès lors, une caisse de retraite ou un fonds de pension peut très bien décider de confier l'allocation à une société A, le market timing à une société B et enfin le stock picking à une troisième société.
On aura compris qu'une telle optimisation est hors d'atteinte d'un épargnant individuel.
M.D.
5.LES TENDANCES CACHEES DES MOUVEMENTS DE TAUX
L'objectif
de cette rubrique est double :
- donner une tendance de comportement des taux US et Europe
- préconiser les actions à mener pour profiter de cette
tendance
Attention, ces préconisations ne sont qu'indicatives et ne concernent que les marchés de futures.
La cellule de recherche animée par Michel d'AGATA détecte les tendances suivantes :
Courbe
de taux US : tendance de fonds à l'inversion de la courbe à
son extrémité longue.
Action à mener : Achat de contrats futures
T-Bonds et vente de contrats futures T-Notes dans un rapport
approximatif de 100 T-Bonds pour 197 T-Notes.
Spread
de taux US-EUROPE
1) tendance de fonds : diminution de l'écart entre taux 30 ans
US et taux 10 ans EUROPE.
Action à mener : Achat de contrats futures
T-Bonds et vente de contrats futures BUND dans un rapport
approximatif de 100 T-Bonds pour 189 Bunds.
2)
tendance de fonds : augmentation de l'écart entre taux 10 ans US
et taux 10 ans EUROPE.
Action à mener : Vente de contrats futures
T-Notes et achat de contrats futures BUND dans un rapport
approximatif de 100 T-Notes pour 92 Bunds.
M.D.