%MACRO DATE(CHEMDAT); FILENAME DDATE "&CHEMDAT"; DATA DDD; INFILE DDATE ; INPUT DATEC 01-08; CN=_N_; proc print; run; %MEND DATE; %MACRO STRUC01; input NBEE 12-15 NBET 16-19 NBK 20-22 NBD 23-24 DTPD 25-30 DTDD 31-36 NOM $ 37-76 RGA 77-82 RGM 83-90 TYPV 91-92 SPLUS 93-94 PLACE 97-97 MARCHE 98-98 DTIN 100-105 DTPC 106-111 PROV 112-112 PROI1 113-113 PROI2 114-114 PROM 115-121 NBTO 122-130 NBTD 131-139 DRED 140-145 DEVR 146-151 DTDC 152-157 MOTR 158-158 SBFR 159-159 DESR 160-160 @; output; %MEND STRUC01; %MACRO STRUC02; input PLACE 12-12 MARCH 13-13 SPLUS 14-15 NOM $ 18-70 JSHA 71-74 PRIOR 75-75 SNGT 76-76 RGA 77-82 SDLG $ 83-84 TYCR 85-85 GAR 86-86 AFFIA 87-94 NOMI 103-108 DEVI 109-109 TYPN 110-110 PXSU 111-117 DTSU 118-123 DTJS 124-129 FQJS 130-130 TXNO 131-135 TXTP 136-137 TXRF 138-139 TXBN 140-140 TXCR 141-145 NBT 146-153 COEX 154-154 CPEX 155-155 FETR 156-156 RTTY 157-157 RTDD 158-163 RTRT 164-164 RTPR 165-166 RTTA 167-167 EMOP 168-168 @; output; %MEND STRUC02; %MACRO STRUC03; input MNEM $ 12-14 ANECH 15-16 MECH 17-18 COP $ 19-19 PEXI 20-23 TYSP 24-25 DTEI 26-31 QUTI 32-35 DTLT 36-41 @; output; %MEND STRUC03; %MACRO STRUC07; input NOM $ 12-41 RGA 42-47 AFFIM 48-55 NOMI 56-61 DEVI 62-62 TYPN 63-63 DATINT 64-69 DATRAD 70-75 COEX 76-76 FQIS 77-77 FETR 78-78 RTTY 79-79 RTRT 80-80 RTPR 81-82 @; output; %MEND STRUC07; %MACRO STRUC08; input WARR 14-14 AFFIW 15-22 CNOB 23-23 AFFIC 24-31 CNDD 32-37 CNDF 38-43 CNNR 44-45 CNDR 46-50 STPN 51-57 @; output; %MEND STRUC08; %MACRO STRUC09; input PLACE 12-12 MARCH 13-13 SPLUS 14-15 NOM $ 18-70 RGA 71-76 COEX 77-77 WARR 78-78 AFST 79-86 DFNG 87-92 PXEM 93-98 TPXM 99-99 DPSD 100-105 DPSF 106-111 PSII 112-112 NPEX 113-114 DDEX 115-119 AFAS 120-127 @; output; %MEND STRUC09; %MACRO STRUC10; input NBDN 12-13 @; do I=1 to NBDN; K=((I-1)*46)+14; input @K DTDN 6. NOM $ 40. @; output; end; %MEND STRUC10; %MACRO STRUC11; input NBCV 12-13 @; do I=1 to NBCV; K=((I-1)*12)+14; input @K DTCV 6. RGA 6. @; output; end; %MEND STRUC11; %MACRO STRUC12; input NBSR 12-13 @; do I=1 to NBSR; K= ((I-1)*10)+14; input @K DTSR 6. SPLUS 4. @; output; end; %MEND STRUC12; %MACRO STRUC13; input NBPL 12-13 @; do I=1 to NBPL; K=((I-1)*7)+14; input @K DTPL 6. PLACE 1. @; output; end; %MEND STRUC13; %MACRO STRUC14; input NBMA 12-13 @; do I=1 to NBMA; K=((I-1)*7)+14; input @K DTMA 6. MARCH 1. @; output; end; %MEND STRUC14; %MACRO STRUC20; input NBDV 12-13 @; do I=1 to NBDV; K=((I-1)*65)+14; input @K DIVD 6. DIVL 4. DIVC 3. DIVT 1. DIVE 1. ZVA 1. DIVN 7. DIVA 7. ZVB 2. DOD 6. DOF 6. DOP 7. DONR 3. DOND 3. AFFID 8. @; output; end; %MEND STRUC20; %MACRO STRUC21; input DAS 14-19 DEX 20-25 DAC 26-31 DAG 32-37 DAJ 38-43 NDAS 44-47 NDEX 48-51 TMC 52-53 NOMI 54-60 NBT 61-69 COUR 70-75 COURP 76-81 NCP 88-90 NRAP 91-93 DRAP 94-96 PEM 97-103 COEFF 104-110 AFFIK 111-118 @; output; %MEND STRUC21; %MACRO STRUC30; input CGNB 12-13 @; do I=1 to CGNB; K=((I-1)*9)+14; input @K CGDT 6. SNGT 3. @; output; end; %MEND STRUC30; %MACRO STRUC31; input NTNB 12-13 @; do I=1 to NTNB; K=((I-1)*36)+14; input @K NTDT 7. NBT 8. NBTV 9. NTMO 1. NTMD 1. COEX 1. NRVL 7. NTSR 1. FETR 1. @; output; end; %MEND STRUC31; %MACRO STRUC32; input NLNB 12-13 @; do I=1 to NLNB; K=((I-1)*13)+14; input @K NLDT 7. NOMI 6. @; output; end; %MEND STRUC32; %MACRO STRUC33; input TXNB 12-13 @; do I=1 to TXNB; K=((I-1)*12)+14; input @K TXDT 7. TXNO 5. @; output; end; %MEND STRUC33; %MACRO STRUC34; input EXNB 12-13 @; do I=1 to EXNB; K=((I-1)*7)+14; input @K EXDT 6. COEX 1. @; output; end; %MEND STRUC34; %MACRO STRUC35; input CPNB 12-13 @; do I=1 to CPNB; K=((I-1)*55)+14; input @K DDET 7. DMEP 6. DTJS 6. NTVL 7. NUMC 3. DPEX 6. FPEX 6. NRAP 3. DRAP 3. AFFID 8. @; output; end; %MEND STRUC35; %MACRO STRUC40; input MNEM $ 12-14 ANECH 15-16 MECH 17-18 COP $ 19-19 PEXI 20-23 DTPX 24-29 PXNV 30-37 @; output; %MEND STRUC40; %MACRO STRUC41; input MNEM $ 12-14 ANECH 15-16 MECH 17-18 COP $ 19-19 PEXI 20-23 DTEC 24-29 ECNV 30-35 @; output; %MEND STRUC41; %MACRO STRUC42; input MNEM $ 12-14 ANECH 15-16 MECH 17-18 COP $ 19-19 PEXI 20-23 DTQT 24-29 QUOT 30-33 @; output; %MEND STRUC42; %MACRO STRUC95; input MNEM $ 12-14 ANECH 15-16 MECH 17-18 COP $ 19-19 PEXI 20-23 CN1 24-27 CN2 93-96 @; if CN1>0 then do; input CN 24-27 CO 28-34 CF 35-41 CMI 42-48 CMA 49-55 COMP 56-62 NBCJ 63-66 VOLJ 67-70 NBTR 71-73 KAPX 74-79 NBCE 80-84 NBPO 85-89 NJAE 90-92 @; output; end; if CN2>0 then do; input CN 93-96 CO 97-103 CF 104-110 CMI 111-117 CMA 118-124 COMP 125-131 NBCJ 132-135 VOLJ 136-139 NBTR 140-142 KAPX 143-148 NBCE 149-153 NBPO 154-158 NJAE 159-161 @; output; end; drop CN1-CN2; %MEND STRUC95; %MACRO STRUC96; input MNEM $ 12-14 ANECH 15-16 MECH 17-18 COP $ 19-19 PEXI 20-23 CN1 24-27 CN2 51-54 CN3 78-81 CN4 105-108 CN5 132-135 @; if CN1>0 then do; input CN 24-27 HMS 28-32 NBTR 33-36 PREM 37-44 CE 45-45 CV 46-46 NVOL 47-50 @; output; end; if CN2>0 then do; input CN 51-54 HMS 55-59 NBTR 60-63 PREM 64-71 CE 72-72 CV 73-73 NVOL 74-77 @; output; end; if CN3>0 then do; input CN 78-81 HMS 82-86 NBTR 87-90 PREM 91-98 CE 99-99 CV 100-100 NVOL 101-104 @; output; end; if CN4>0 then do; input CNS 105-108 HMS 109-113 NBTR 114-117 PREM 118-125 CE 126-126 CV 127-127 NVOL 128-131 @; output; end; if CN5>0 then do; input CN 132-135 HMS 136-140 NBTR 141-144 PREM 145-152 CE 153-153 CV 154-154 NVOL 155-158 @; output; end; drop CN1-CN5; %MEND STRUC96; %MACRO STRUC97; input CN1 12-15 CN2 38-41 CN3 64-67 CN4 90-93 CN5 116-119 CN6 142-145 @; if CN1>0 then do; input CN 12-15 CO 16-21 CE 22-22 CV 23-23 CC 24-29 CW 30-30 NVOL 31-37 @; output; end; if CN2>0 then do; input CN 38-41 CO 42-47 CE 48-48 CV 49-49 CC 50-55 CW 56-56 NVOL 57-63 @; output; end; if CN3>0 then do; input CN 64-67 CO 68-73 CE 74-74 CV 75-75 CC 76-81 CW 82-82 NVOL 83-89 @; output; end; if CN4>0 then do; input CN 90-93 CO 94-99 CE 100-100 CV 101-101 CC 102-107 CW 108-108 NVOL 109-115 @; output; end; if CN5>0 then do; input CN 116-119 CO 120-125 CE 126-126 CV 127-127 CC 128-133 CW 134-134 NVOL 135-141 @; output; end; if CN6>0 then do; input CN 142-145 CO 146-151 CE 152-152 CV 153-153 CC 154-159 CW 160-160 NVOL 161-167 @; output; end; drop CN1-CN6; %MEND STRUC97; %MACRO STRUC98; input CN1 12-15 CN2 38-41 CN3 64-67 CN4 90-93 CN5 116-119 CN6 142-145 @; if CN1>0 then do; input CN 12-15 HMS 16-20 CO 21-26 CE 27-27 CV 28-28 NH 29-31 NAP 32-37 @; output; end; if CN2>0 then do; input CN 38-41 HMS 42-46 CO 47-52 CE 53-53 CV 54-54 NH 55-57 NAP 58-63 @; output; end; if CN3>0 then do; input CN 64-67 HMS 68-72 CO 73-78 CE 79-79 CV 80-80 NH 81-83 NAP 84-89 @; output; end; if CN4>0 then do; input CN 90-93 HMS 94-98 CO 99-104 CE 105-105 CV 106-106 NH 107-109 NAP 110-115 @; output; end; if CN5>0 then do; input CN 116-119 HMS 120-124 CO 125-130 CE 131-131 CV 132-132 NH 133-135 NAP 136-141 @; output; end; if CN6>0 then do; input CN 142-145 HMS 146-150 CO 151-156 CE 157-157 CV 158-158 NH 159-161 NAP 162-167 @; output; end; drop CN1-CN6; %MEND STRUC98; %MACRO STRUC99; input CN1 12-15 CN2 43-46 CN3 74-77 CN4 105-108 CN5 136-139 @ ; if CN1>0 then do; input CN 12-15 CO 16-21 CE 22-22 CV 23-23 CM 24-29 CP 30-35 NVOL 36-42 @ ; output; end; if CN2>0 then do; input CN 43-46 CO 47-52 CE 53-53 CV 54-54 CM 55-60 CP 61-66 NVOL 67-73 @; output; end; if CN3>0 then do; input CN 74-77 CO 78-83 CE 84-84 CV 85-85 CM 86-91 CP 92-97 NVOL 98-104 @ ; output; end; if CN4>0 then do; input CN 105-108 CO 109-114 CE 115-115 CV 116-116 CM 117-122 CP 123-128 NVOL 129-135 @ ; output; end; if CN5>0 then do; input CN 136-139 CO 140-145 CE 146-146 CV 147-147 CM 148-153 CP 154-159 NVOL 160-166 @; output; end; drop CN1-CN5; %MEND STRUC99; %MACRO JFP(X,CHEMJFP); FILENAME JP&x "&CHEMJFP"; DATA JFP&x; INFILE JP&x; LABEL AFFIS='ECHANTILLON DES CODES AFFI SELECTIONNES'; INPUT AFFIS; PROC SORT DATA=JFP&x; BY AFFIS; %MEND JFP; %MACRO JFG(X,CHEMJFP,CHEMJFG,COTERM,NUMSTR); %JFP(&X,&CHEMJFP); FILENAME JG&x "&CHEMJFG"; DATA JFG&x; INFILE JG&x LRECL=168 PAD; LABEL AFFI='CODE AFFI DU TITRE'; LABEL TERM='INDICATEUR DE DOUBLE COTATION'; LABEL TYEN='TYPE DE LA STRUCTURE D''ENREGISTREMENT'; INPUT AFFI 01-08 TERM 09-09 TYEN 10-11 @; IF AFFIAFFIS Then SET JFP&x; IF AFFI=AFFIS AND TERM=&COTERM AND TYEN=&NUMSTR then do; %STRUC&NUMSTR; input; end; proc print; run; %MEND JFG; /* Remplacez, dans la commande JFG ci-dessous, */ /* le parametre p0 par l'adresse absolue du fichier-calendrier */ /* le parametre p1 par le numero d'appel de la commande %JFG (si vous utilisez la commande %JFG pour la premiere fois, tapez 1; si vous utilisez la commande %JFG pour la deuxieme fois, tapez 2;............) */ /* le parametre p2 par l'adresse absolue du fichier contenant les codes des valeurs que vous désirez analyser (fichier que vous aurez auparavant cree) */ /* le parametre p3 par l'adresse absolue du fichier de donnees etudie (par exemple, C:/base/bdm/paris1977/actionsquot/actquot.txt) */ /* le parametre p4 par le code de negociation des titres . Si les titres sont cotes au comptant ou a reglement mensuel alors : p4=1 . Si les titres sont cotes sur le marche a terme alors : p4=2 . Si les titres sont cotes sur le marche optionnel alors : p4=3 */ /* le parametre p5 par le numero de structure TYEN associé à vos donnees (p5=01 a 99) */ %DATE(p0); %JFG(p1,p2,p3,p4,p5); run;