sphinx ![]() (91
msg) #473580Posté
le : le 12-03-2006 11:30:42 sphinx - sphinx - ====================================================
merci Smallcaps, ta façon de programmer cette stat est plus claire que la mienne.
Amicalement Sphinx PS : passe un bon WE
jmc ![]() (46
msg) jmc' style='text-decoration:none;'>PROFIL NON RENSEIGNÉ #473709Posté
le : le 13-03-2006 07:00:42 jmc - jmc - ====================================================
Salut Smallcaps, à défaut d'avoir déjà lu les 75 pages (je compte m'y mettre !),
j'ai lu l'échange entre sphinx et toi : très instructif ! Comment pourrais-je faire avec mon signal MM100 croissante pour : -retrouver les dates de signal dans le passé -et également avoir un signal de sortie (du genre stop suiveur à 10% du maxi atteint par l'action entretemps) ? Bonne journée ! édité
le : 13-03-2006 07:01:52
smallcaps90 ![]() (1022
msg) #473726Posté
le : le 13-03-2006 09:08:56 ====================================================
Bonjour jmc, Pourrais-tu préciser ton cahier des charges? Au sujet de ton premier pb tu souhaites dis-tu : "retrouver les dates de signal dans le passé au sujet de la MM100 croissante". Dans le programme statistique précédent tu obtenais, au jour de la fin de l'historique, un classement des N (N=10 à 20) valeurs dont la pente de la MM100 est la plus grande (et/ou la plus petite). Comme cette pente varie continuellement, pour retrouver des évènements passés, il faut préciser à quels évènements tu souhaites t'intéresser, par exemple : instants des changements de concavité de la moyenne, instants où sa pente est maxi (pas forcément les plus utiles à trouver vu leur grand nombre d'occurence)... ou d'autres encore...A toi de choisir. Tu pourras peut-être trouver quelques idées en consultant mon post du 31/05/2005 à 11:48:22, page 56 du forum. J'y présentais une solution indicateur et statistique associée pour détecter les changements de pente d'une moyenne donnée... Cordialement. édité
le : 13-03-2006 09:10:38
jmc ![]() (46
msg) jmc' style='text-decoration:none;'>PROFIL NON RENSEIGNÉ #473969Posté
le : le 13-03-2006 21:19:34 jmc - jmc - ====================================================
Bonsoir, au sujet du stop suiveur j'ai trouvé sur un post de 2005 une solution basée sur l'ATR, ça m'ira pour l'instant. Sur mon premier point du message précédent, je pense que je n'ai pas été assez clair (j'ai lu la page indiquée mais cela ne correspond pas exactement je crois). Ce que je voudrais, c'est sur un groupe donné (CAC, SRD etc.) sur une période donnée (2005) obtenir tous les signaux de chaque jour correspondnat aux 10 (ou 20) pentes MM100 les plus élevées : 2/1/2005 : CGE, LOR, SAN, EX 3/1/2005 : LOR, CS, SAN 4/1/2005 : etc à moi après de les récupérer dans Excel pour en faire du backtesting ... J'espère être plus clair, sinon n'hésite pas à me le dire
édité le : 13-03-2006
21:20:51
smallcaps90 ![]() (1022
msg) #473985Posté
le : le 13-03-2006 22:12:10 ====================================================
Bonsoir jmc, Merci pour tes explications. C'est ok, je vais regarder ce que l'on peut faire et je te tiens au courant... Bonne soirée.
dip ![]() (40
msg) dip' style='text-decoration:none;'>PROFIL NON RENSEIGNÉ #474021Posté
le : le 14-03-2006 02:01:10 dip - dip - ====================================================
Bonsoir messieurs , serait il possible d'avoir une regle de statistique afin de selectionner toutes les valeurs dont le cci est > a la ligne 0 en weekly .......... mon parametrage perso est il indispensable a la programmation de cette regle ? merci par avance
smallcaps90 ![]() (1022
msg) #474027Posté
le : le 14-03-2006 08:06:19 ====================================================
Bonjour dip, Bien sûr c'est indispensable, comment programmer cette règle sinon?...
smallcaps90 ![]() (1022
msg) #474332Posté
le : le 14-03-2006 23:30:05 ====================================================
Re Dip, La stat est dans ta bal...
smallcaps90 ![]() (1022
msg) #474869Posté
le : le 16-03-2006 12:00:22 ====================================================
Bonjour jmc, Impossible d'afficher les résultats comme tu le souhaitais. En effet on ne peut pas comparer les valeurs des pentes à une date donnée sur l'ensemble des valeurs d'un groupe pour en extraire les N valeurs maxi alors qu'on fait progresser la date dans une boucle. Tout ce que j'ai pu obtenir est d'associer dates et pentes dans une grande chaîne de caractères (A$ dans le programme ci-dessous) en concaténant les différentes valeurs obtenues. Les dates (positives et négatives) sont notées sous la forme JJ/MM (16/03 pour celle d'aujourd'hui). Les pentes ont été multipliées par 1000 et le résultat affiché sur 3 décimales pour limiter le plus possible le nombre de caractères consommé, exemple : 1,234. Date et pente associées sont séparées par un espace et les associations par un "|". Ceci peut bien sûr être modifié à ta convenance. Il faudrait ensuite que tu récupères le texte affiché COLONNE1 de la page des résultats et que tu effectues le tri que tu souhaites dans Excel . Autre limitation constatée : tu ne pourras pas traiter la totalité d'une année car la fenêtre des résultats sature pour I=111 périodes examinées. Programme de la stat : //=========== //TEST_PENTES //=========== // //Associations périodes/pentes de la MM100 // //Calcul de la MM100 POUR 1000 COURS MM100(0)=EXPOSUIV(MM100,CLOTURE,100) FINPOUR //Association périodes/pentes I=5 //change ici le nb de périodes examinées TANTQUE I>=0 FAIRE PENTE(I)=(MM100(I)-MM100(I+1))/(MM100(I)+MM100(I+1)) A$=A$ & STXT$(datehisto$(I),1,5) & " " & CTXT$(1000*PENTE(I),3) & "|" I=I-1 FINTANTQUE COLONNE1=A$ Propriétés : ![]() Avec I=5 voici ce que cela donne sur le CAC 40 en date d'hier : Groupe : cac40 Date : 15/03/2006 Associations périodes/pentes de la MM100 08/03 -0,010|09/03 0,090|10/03 0,182|13/03 0,116|14/03 -0,074|15/03 -0,123| Accor 08/03 0,256|09/03 0,329|10/03 0,382|13/03 0,415|14/03 0,829|15/03 1,002| AGF 08/03 0,166|09/03 0,163|10/03 0,275|13/03 0,270|14/03 0,350|15/03 0,361| Air Liquide 08/03 0,506|09/03 0,586|10/03 0,636|13/03 0,704|14/03 0,787|15/03 0,833| Alcatel 08/03 2,768|09/03 2,762|10/03 2,685|13/03 2,645|14/03 2,313|15/03 2,401| Arcelor 08/03 0,726|09/03 0,729|10/03 0,809|13/03 0,800|14/03 0,779|15/03 0,788| AXA 08/03 0,404|09/03 0,346|10/03 0,472|13/03 0,666|14/03 0,638|15/03 0,709| Bnp Paribas 08/03 0,163|09/03 0,096|10/03 0,247|13/03 0,183|14/03 0,210|15/03 0,288| Bouygues 08/03 1,443|09/03 1,887|10/03 1,982|13/03 2,072|14/03 1,846|15/03 1,803| Cap Gemini 08/03 0,267|09/03 0,779|10/03 0,883|13/03 0,959|14/03 0,846|15/03 0,878| Carrefour 08/03 -0,438|09/03 -0,366|10/03 -0,184|13/03 -0,134|14/03 -0,371|15/03 -0,346| Casino Guichard 08/03 1,268|09/03 1,287|10/03 1,372|13/03 1,398|14/03 1,275|15/03 1,356| Credit agricole 08/03 0,835|09/03 1,093|10/03 1,179|13/03 1,098|14/03 0,992|15/03 1,030| Danone 08/03 0,264|09/03 0,425|10/03 0,576|13/03 0,745|14/03 0,674|15/03 0,725| Dexia 08/03 0,074|09/03 0,156|10/03 0,310|13/03 0,364|14/03 0,197|15/03 0,333| EADS 08/03 0,217|09/03 0,304|10/03 0,389|13/03 0,367|14/03 0,324|15/03 0,360| Essilor International 08/03 -0,931|09/03 -0,787|10/03 -0,670|13/03 -0,618|14/03 -0,676|15/03 -0,737| France Telecom 08/03 1,145|09/03 1,195|10/03 1,316|13/03 1,213|14/03 1,208|15/03 1,123| L'Oreal 08/03 0,638|09/03 0,845|10/03 0,907|13/03 0,973|14/03 0,951|15/03 0,931| Lafarge 08/03 0,345|09/03 -0,104|10/03 0,014|13/03 0,006|14/03 -0,095|15/03 0,062| Lagardere 08/03 0,613|09/03 0,721|10/03 0,859|13/03 0,941|14/03 0,900|15/03 0,854| LVMH Moet Hennessy 08/03 0,073|09/03 0,103|10/03 0,236|13/03 0,100|14/03 0,169|15/03 0,306| Michelin 08/03 -0,189|09/03 -0,111|10/03 0,157|13/03 0,188|14/03 0,368|15/03 0,442| Pernod Ricard 08/03 -0,476|09/03 -0,419|10/03 -0,331|13/03 -0,311|14/03 0,039|15/03 0,253| Peugeot 08/03 0,272|09/03 0,134|10/03 0,248|13/03 0,195|14/03 0,414|15/03 0,607| Pinault Printemps Redoute 08/03 0,779|09/03 0,861|10/03 0,869|13/03 0,828|14/03 0,780|15/03 0,823| Publicis Group 08/03 0,602|09/03 0,714|10/03 0,764|13/03 0,768|14/03 0,869|15/03 0,804| Renault 08/03 0,490|09/03 0,575|10/03 0,686|13/03 0,748|14/03 0,770|15/03 0,810| Saint Gobain 08/03 0,019|09/03 0,080|10/03 0,146|13/03 0,382|14/03 0,327|15/03 0,265| Sanofi-Aventis 08/03 0,831|09/03 1,115|10/03 1,065|13/03 1,111|14/03 1,049|15/03 0,920| Schneider 08/03 0,635|09/03 0,752|10/03 1,246|13/03 1,440|14/03 1,398|15/03 1,615| Societe Generale 08/03 -0,479|09/03 -0,444|10/03 -0,375|13/03 -0,468|14/03 -0,299|15/03 -0,179| STMicroelectronics 08/03 2,258|09/03 2,122|10/03 2,188|13/03 2,076|14/03 2,669|15/03 2,245| Suez 08/03 0,343|09/03 0,605|10/03 0,685|13/03 0,687|14/03 0,656|15/03 0,740| TF1 08/03 0,059|09/03 -0,018|10/03 -0,002|13/03 -0,044|14/03 -0,134|15/03 -0,300| Thales 08/03 -1,101|09/03 -1,088|10/03 -1,027|13/03 -0,924|14/03 -0,962|15/03 -0,969| Thomson 08/03 -0,284|09/03 -0,274|10/03 -0,181|13/03 -0,095|14/03 -0,061|15/03 0,014| Total 08/03 1,141|09/03 1,340|10/03 1,507|13/03 1,276|14/03 1,317|15/03 1,278| Veolia Environnement 08/03 0,094|09/03 0,323|10/03 0,269|13/03 0,617|14/03 0,760|15/03 0,676| Vinci 08/03 0,159|09/03 0,435|10/03 0,778|13/03 0,780|14/03 0,650|15/03 0,518| Vivendi universal Cordialement.
jmc ![]() (46
msg) jmc' style='text-decoration:none;'>PROFIL NON RENSEIGNÉ #475208Posté
le : le 17-03-2006 07:09:40 jmc - jmc - ====================================================
Waoooo !beau travail !!! ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Excellente l'idée de mettre les résultats dans une chaîne... je fourbis dèjà mes droite(), gauche() et autres STXT() .... (juste pour le fun, pourquoi pas se mettre à l'inversion de matrice avec cette astuce ! ![]() Juste un petit point de débutant, je voudrais éviter la boucle de calcul de la MM100 dont je me sers de toute façon comme indicateur : -je sais qu'on peut appeler la variable COURBE1 de la règle MA_REGLE, mais je ne maîtrise pas bien la syntaxe ; ce serait : //Calcul de la MM100 // ce module ne sert plus ? //Association périodes/pentes I=5 //change ici le nb de périodes examinées TANTQUE I>=0 FAIRE PENTE(I)=(MA_REGLE.COURBE1(I)-MA_REGLE.COURBE1(I+1))/(MA_REGLE.COURBE1(I)+MA_REGLE.COURBE1(I+1)) A$=A$ & STXT$(datehisto$(I),1,5) & " " & CTXT$(1000*PENTE(I),3) & "|" I=I-1 FINTANTQUE essayé mais sans succès pour l'instant -quand je fais cela, y-a-t-il un moyen d'alléger le calcul de la MM100 dans l'indicateur, en utilisant la valeur de la veille sans faire une boucle sur les 500 dernies cours pour chaque cours de chaque action ? (j'ai bien noté que ta façon de calculer la MM100 dans la stat évite ce problème, mais comment l'éviter quand on fait appel à l'indicateur calculé dans une règle à part) -en d'autre part, y-a-t-il besoin que je configure un graphe avec la MM100 sur chaque action pour que cette valeur soit disponible ? j'espère que mes questions sont claires ....
smallcaps90 ![]() (1022
msg) #475287Posté
le : le 17-03-2006 09:57:41 ====================================================
Bonjour jmc, Oui bien sûr, GrapheAT Pro permet de récupérer dans une stat les valeurs de tout indicateur que tu aurais préalablement programmé. J'opère souvent de cette façon d'ailleurs. Voici comment faire. 1- Tu crées un indicateur "PENTE_MM100" par exemple : Programme : //=========== //PENTE_MM100 //=========== // //Pente de la MM100 // M(0)=EXPOSUIV(M,CLOTURE,100) PENTE=100*(M-M(1))/(M+M(1)) Propriétés : ![]() Tu peux bien sûr tracer cet indicateur sous les cours, mais ce n'est pas une obligation. 2- Ensuite tu crées la stat. "TEST_PENTES" qui va récupérer les valeurs de la variable PENTE calculée dans l'indicateur précédent pour travailler. Programme : //=========== //TEST_PENTES //=========== // //Associations périodes/pentes de la MM100 // I=5 TANTQUE I>=0 FAIRE A$=A$ & STXT$(datehisto$(I),1,5) & " " & CTXT$(1000*PENTE_MM100.PENTE(I),3) & "|" I=I-1 FINTANTQUE COLONNE1=A$ La fenêtre Propriétés de la stat est inchangée. Le programme ci dessus récupère les valeurs de la variable PENTE en utilisant la syntaxe : NOM DE L'INDICATEUR.NOM DE LA VARIABLE soit ici :PENTE_MM100.PENTE. Ainsi on a allégé l'écriture de la stat, mais en contrepartie on a créé une règle indicateur. Cela peut être intéressant si l'on souhaite visualiser le graphe de l'indicateur évidemment. La réponse à ta dernière question a déjà été abordée en fin de paragraphe 1 ci-dessus : il n'est pas nécessaire de lancer la règle indicateur dans la fenêtre principale de GrapheAT Pro (où l'on visualise les graphes) pour que la stat s'exécute. As-tu réussi à récupérer le contenu de la fenêtre de résultats de la stat. dans Excel? Bon courage.
édité le : 17-03-2006
09:59:30
jmc ![]() (46
msg) jmc' style='text-decoration:none;'>PROFIL NON RENSEIGNÉ #475773Posté
le : le 18-03-2006 21:05:44 jmc - jmc - ====================================================
oui j'ai récupéré l'info sur excel et je m'en sors avec une série de fonctions
texte ... un grand merci à toi
sla ![]() (6
msg) sla' style='text-decoration:none;'>PROFIL NON RENSEIGNÉ #479484Posté
le : le 30-03-2006 12:07:38 sla - sla - ====================================================
Bonjour à tous, Je vous lis de longue date, et j ‘essaye d’utiliser vos travaux. Mais je m’oriente plus vers la méthode d’analyse développée par WEINSTEIN. Dans celle-ci, pour l’étude de la sortie de la phase 1, l’un des critère est le franchissement de la MM150 (30 semaines). Actuellement dans les statistiques à notre disposition dans GRAPHE AT, nous avons la liste des valeurs dont le cours coupe la MM150. Or j’aimerai suivre les valeurs avant leur franchissement de cette moyenne pour cela, si cela était possible, c’est d’obtenir la liste des établissements dont le cours est proche d’une moyenne plus réactive que la MM150. Mon cahier des charges est le suivant : - Définir une moyenne pondérée plus réactive que la MM150 qui pourrait s’appellerait MMPj, où P est paramétrable et dont la valeur pourrait être 120 ou 100. - Obtenir la liste des valeurs dont le cours est compris dans un intervalle de –X% et +Y% de la MMPj pendant N jours consécutifs. X, Y, N sont des variables paramétrables. Y pouvant prendre la valeur 0 pour permettre de récupérer les valeurs n’ayant pas franchi la MM150. N aurait comme valeur 20j ou 15j. - Tracer cette moyenne MMPj sur le graphe. Je vous remercie pour votre aide
smallcaps90 ![]() (1022
msg) #479682Posté
le : le 30-03-2006 18:39:52 ====================================================
Bonsoir sla, Compte-tenu des contraintes de ton cahier des charges, on pourrait créer un indicateur qui affiche la moyenne pondérée (*) souhaitée sur les cours, ainsi qu'un canal formé par deux courbes situées respectivement à -X% et +Y% de cette moyenne. Ensuite, une statistique va scanner un groupe en cherchant quelles sont les valeurs dont les clôtures restent à l'intérieur de ce canal pendant les N périodes imposées. Programme de l'indicateur : //======= //MMP_SLA //======= //Trace la moyenne pondérée sur P1 périodes du cours de cloture //Trace un canal à +P2% et -P3% de part et d'autre de la moyenne //Repère le cours situé à P4 périodes de la FinHisto //le 30/03/2006 MMP=PONDERE(CLOTURE,P1) MMP_HAUTE = MMP+P2%*MMP MMP_BASSE = MMP-P3%*MMP REP_P4(P4) = -1*(RANGHISTO=FINHISTO) J'ai ajouté la courbe REP_P4 qui visualise les N dernières périodes sur les cours à l'aide d'une flèche haute. Propriétés de l'indicateur : ![]() P1 est le recul de calcul de la moyenne. P2% joue le rôle de Y%, P3% celui de X%. P4 joue celui de N. Programme de la statistique : //============ //STAT_MMP_SLA //============ //Détection des valeurs dont les cours de clôture sont compris, //pendant P4 périodes, dans une bande de +P2% et -P3% //d'une moyenne pondérée calculée sur P1 périodes . //Utilise les résultats de la règle indicateur MMP_SLA. //Donner à N la valeur de P4 // N=15 //Scan // POUR N COURS SI CLOTURE<MMP_SLA.MMP_HAUTE ET CLOTURE>MMP_SLA.MMP_BASSE ALORS I=I+1 FINSI SI I=N ALORS SELECTION FINSI FINPOUR Propriétés de la statistique : ![]() Deux exemples. Avec les paramètres P1=100, P2%=4%, P3=2% et N=15 pour le CAC40 hier soir, une seule valeur est trouvée : ![]() Sur le SRD maintenant, avec P1=100, P2%=4%, P3%=0 et N=15, la seule valeur qui sort du scan est Dassault Systèmes : ![]() (*) Tu as raison d'utiliser une moyenne pondérée si tu veux une moyenne plus nerveuse que la moyenne arithmétique. La moyenne pondérée est également celle qui a le lag le plus faible si on le compare à celui des moyennes arithmétiques et exponentielles. Lag d'une moyenne arithmétique ou d'une moyenne exponentielle = (P1-1)/2 Lag d'une moyenne pondérée = (P1-1)/3. Pour revenir à la méthode de Weinstein que tu souhaites utiliser, il serait intéressant (peut-être...) de distinguer en plus dans quelle phase se situe la valeur. Ce serait facile à réaliser en introduisant la notion de concavité de la moyenne... Cordialement.
sla ![]() (6
msg) sla' style='text-decoration:none;'>PROFIL NON RENSEIGNÉ #479800Posté
le : le 30-03-2006 21:42:15 sla - sla - ====================================================
bonsoir smallcaps90, Je te remercie pour la rapidité de ta réponse, je viens de commencer à l'utiliser. J'ai une remarque concernant l'utilisation de la MMP, j'ai l'impression que la MMP est différente entre une visualisation du graphe en jour ou en semaine. Est-ce normal ou non ? Je serais interessé par la possibilité de définir la phase dans laquelle on se trouve. merci pour ton aide précieuse. cordialement
76
|