Ce script définit la macro %Prospect_Ratio. Elle implémente la théorie des perspectives de Watanabe en pénalisant les rendements négatifs (multiplication par 2.25) avant de calculer la performance. Le ratio final est obtenu en divisant la moyenne des rendements ajustés (moins le rendement minimum acceptable MAR) par le risque baissier (calculé via une dépendance externe %downside_risk).
Analyse des données
Type : EXTERNE
Les données sont fournies dynamiquement via le paramètre 'returns' lors de l'appel de la macro. Le script attend des colonnes numériques représentant des rendements.
1 Bloc de code
MACRO DEFINITION
Explication : Définition de la macro, déclaration des variables locales et identification des colonnes numériques via la macro utilitaire externe %get_number_column_names.
Copié !
%macro Prospect_Ratio(returns,
MAR= 0,
dateColumn= DATE,
outData= ProspectRatio);
%local vars temp stat_n down_std i;
%let vars= %get_number_column_names(_table= &returns, _exclude= &dateColumn);
%put VARS IN Prospect_Ratio: (&vars);
%let temp= %ranname();
%let stat_n= %ranname();
%let down_std= %ranname();
%let i = %ranname();
Explication : Transformation des données : pénalisation des pertes. Les rendements négatifs sont multipliés par 2.25.
Copié !
data &temp(drop=&i &dateColumn);
set &returns;
array ret[*] &vars;
do &i= 1 to dim(ret);
if ret[&i]<0 then ret[&i]=2.25*ret[&i];
end;
run;
1
DATA &temp(drop=&i &dateColumn);
2
SET &returns;
3
array ret[*] &vars;
4
5
DO &i= 1 to dim(ret);
6
IF ret[&i]<0 THEN ret[&i]=2.25*ret[&i];
7
END;
8
RUN;
3 Bloc de code
PROC MEANS Data
Explication : Calcul de la somme des rendements ajustés et du nombre d'observations.
Copié !
proc means data=&temp sum n noprint;
output out=&temp(keep=&vars) sum=;
output out=&stat_n(keep=&vars) n=;
run;
1
PROC MEANSDATA=&temp sum n noprint;
2
OUTPUT out=&temp(keep=&vars) sum=;
3
OUTPUT out=&stat_n(keep=&vars) n=;
4
RUN;
4 Bloc de code
DATA STEP Data
Explication : Ajustement de la somme par le MAR (Minimum Acceptable Return) et calcul de la moyenne ajustée.
Copié !
data &temp (drop= &i);
set &temp;
array ret[*] &vars;
do &i= 1 to dim(ret);
ret[&i]=ret[&i]-&MAR;
end;
run;
data &temp(drop=&i);
set &temp &stat_n(in=last);
array ret[*] &vars;
do &i= 1 to dim(ret);
ret[&i]= lag(ret[&i])/ret[&i];
end;
if last;
run;
1
DATA &temp (drop= &i);
2
SET &temp;
3
array ret[*] &vars;
4
5
DO &i= 1 to dim(ret);
6
ret[&i]=ret[&i]-&MAR;
7
END;
8
RUN;
9
10
DATA &temp(drop=&i);
11
SET &temp &stat_n(in=last);
12
array ret[*] &vars;
13
14
DO &i= 1 to dim(ret);
15
ret[&i]= lag(ret[&i])/ret[&i];
16
END;
17
IF last;
18
RUN;
5 Bloc de code
MACRO CALL Data
Explication : Appel à la macro externe %downside_risk pour calculer la composante de risque (dénominateur).
Explication : Calcul final du ratio : Division de la moyenne ajustée par le risque baissier.
Copié !
data &outData (keep= _stat_ &vars);
format _STAT_ $32.;
set &temp &down_std(in=last);
array ret[*] &vars;
do &i= 1 to dim(ret);
ret[&i]= lag(ret[&i])/ret[&i];
end;
_STAT_= 'Prospect Ratio';
if last;
run;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Informations de Copyright : Copyright (c) 2015 by The Financial Risk Group, Cary, NC, USA.
« Le Ratio Prospect est l'un des meilleurs prédicteurs du comportement des portefeuilles en période de crise. Un actif peut afficher un bon ratio de Sharpe mais un Ratio Prospect médiocre s'il subit des pertes rares mais extrêmes. Utilisez cet indicateur pour identifier les stratégies de "cygne noir" qui masquent leur risque réel derrière une faible volatilité quotidienne. »
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.