%let name=usaa; filename odsout '.'; /* Make fonts same size as in v9.1.3 */ options fontrendering=host_pixels; goptions device=gif; goptions nodisplay; * %let backcolor=cxE6E6FA; %let backcolor=cxCAE1FF; %let refcolor=graycc; %let darkerblue=cx3D59AB; %let axisgray=gray; %let dividend_rank=B+; %let fair_rank=4; goptions noborder; goptions gunit=pct htitle=8 ftitle="arial/bo" htext=6 ftext="arial"; goptions cback=&backcolor; /* ----------- Market Share Graph ----------*/ data stockdata; format date date9.; do date='06sep2002'd to '31aug2005'd; close=27.5; if put(date,downame3.) eq 'Fri' then output; end; run; %let stream=235; data stockdata; set stockdata; if date lt '05aug2003'd then do; close=lag1(close)+(1.9*rannor(&stream)); if close=. then close=27.5; high=close+abs(.8*rannor(&stream)); low=close-abs(1.5*rannor(&stream)); volume=abs(150+(30*rannor(&stream))); average_volume=abs(20+(20*rannor(&stream))); above_below_avg=volume-average_volume; end; else if date lt '05sep2004'd then do; close=lag1(close)+(.6*rannor(&stream)); if close=. then close=27.5; high=close+abs(1.3*rannor(&stream)); low=close-abs(1.1*rannor(&stream)); volume=abs(230+(30*rannor(&stream))); average_volume=abs(20+(20*rannor(&stream))); above_below_avg=volume-average_volume; end; else do; close=lag1(close)+.2*(.6*rannor(&stream)); if close=. then close=27.5; high=close+abs(.8*rannor(&stream)); low=close-abs(.5*rannor(&stream)); volume=abs(100+(30*rannor(&stream))); average_volume=abs(20+(20*rannor(&stream))); above_below_avg=volume-average_volume; end; run; proc sql; select unique date into :date from stockdata having max(date); select unique close format=dollar7.2 into :price from stockdata having max(date); quit; run; /* data stockdata; set stockdata; length html $ 300; html='title='||quote( trim(left(company)) ||'0D'x|| trim(left(put(market_share,percent7.0))) || ' of Total Market' ) ||' '|| 'href="sfew.htm"'; run; */ axis1 order=('06sep2002'd to '26aug2005'd by week) label=none minor=none major=none value=none; data annoref; length function color $8; xsys='2'; ysys='1'; hsys='3'; when='a'; color="&refcolor"; line=0; /* function='move'; x='01jan2003'd; y=0; output; function='draw'; y=100; output; function='move'; x='01jan2004'd; y=0; output; function='draw'; y=100; output; function='move'; x='01jan2005'd; y=0; output; function='draw'; y=100; output; */ run; data hilocdata; set stockdata; hlc=high; output; hlc=low; output; hlc=close; output; run; data anno1title; xsys='1'; ysys='1'; function='label'; when='a'; x=1; y=100; position='f'; style='"arial"'; size=2.5; /* cbox='white'; */ text='High/Low/Close Plot'; output; run; data annoplot1; set annoref anno1title; run; axis2 order=(20 to 36 by 4) color=&axisgray label=none minor=none offset=(0,0); symbol1 interpol=hilocj ci=red cv=black; goptions xpixels=500 ypixels=300; goptions htext=6 ftext="arial"; proc gplot data=hilocdata anno=annoplot1; format hlc comma10.0; plot hlc*date=1 / haxis=axis1 vaxis=axis2 cvref=&refcolor autovref chref=&refcolor href= '01jan2003'd '01jan2004'd '01jan2005'd cframe=white caxis="&axisgray" des="" name="plot1"; run; data anno2title; xsys='1'; ysys='1'; function='label'; when='a'; x=1; y=100; position='f'; style='"arial"'; size=5.5; /* cbox='white'; */ text='Above/Below Average'; output; run; data annoplot2; set annoref anno2title; run; axis3 order=(0 to 300 by 100) color=&axisgray label=none minor=none offset=(0,0); symbol2 interpol=join value=none color=&darkerblue; goptions xpixels=500 ypixels=200; goptions htext=12 ftext="arial"; title a=90 h=.1 " "; footnote h=20 " "; proc gplot data=stockdata anno=annoplot2; format above_below_avg comma4.0; plot above_below_avg*date=2 / haxis=axis1 vaxis=axis3 cvref=&refcolor autovref chref=&refcolor href= '01jan2003'd '01jan2004'd '01jan2005'd cframe=white caxis="&axisgray" des="" name="plot2"; run; /* This will need to be generalized - I just hardcoded the values for this poc */ data annoaxis; length function style color $8; length text $100; function='move'; xsys='1'; ysys='1'; x=0; y=0; output; function='bar'; style='solid'; color="&darkerblue"; x=100; ysys='3'; y=0; output; function='move'; xsys='1'; ysys='3'; x=0; y=20; output; function='bar'; style='solid'; color='white'; x=100; y=10; output; xsys='2'; ysys='3'; x=date; y=17; function='label'; color='black'; style='"arial"'; size=5; position='5'; y=17; x='15sep2002'd; text=put(x,monname1.); output; x='15oct2002'd; text=put(x,monname1.); output; x='15nov2002'd; text=put(x,monname1.); output; x='15dec2002'd; text=put(x,monname1.); output; x='15jan2003'd; text=put(x,monname1.); output; x='15feb2003'd; text=put(x,monname1.); output; x='15mar2003'd; text=put(x,monname1.); output; x='15apr2003'd; text=put(x,monname1.); output; x='15may2003'd; text=put(x,monname1.); output; x='15jun2003'd; text=put(x,monname1.); output; x='15jul2003'd; text=put(x,monname1.); output; x='15aug2003'd; text=put(x,monname1.); output; x='15sep2003'd; text=put(x,monname1.); output; x='15oct2003'd; text=put(x,monname1.); output; x='15nov2003'd; text=put(x,monname1.); output; x='15dec2003'd; text=put(x,monname1.); output; x='15jan2004'd; text=put(x,monname1.); output; x='15feb2004'd; text=put(x,monname1.); output; x='15mar2004'd; text=put(x,monname1.); output; x='15apr2004'd; text=put(x,monname1.); output; x='15may2004'd; text=put(x,monname1.); output; x='15jun2004'd; text=put(x,monname1.); output; x='15jul2004'd; text=put(x,monname1.); output; x='15aug2004'd; text=put(x,monname1.); output; x='15sep2004'd; text=put(x,monname1.); output; x='15oct2004'd; text=put(x,monname1.); output; x='15nov2004'd; text=put(x,monname1.); output; x='15dec2004'd; text=put(x,monname1.); output; x='15jan2005'd; text=put(x,monname1.); output; x='15feb2005'd; text=put(x,monname1.); output; x='15mar2005'd; text=put(x,monname1.); output; x='15apr2005'd; text=put(x,monname1.); output; x='15may2005'd; text=put(x,monname1.); output; x='15jun2005'd; text=put(x,monname1.); output; x='15jul2005'd; text=put(x,monname1.); output; x='15aug2005'd; text=put(x,monname1.); output; color='white'; y=7; position='6'; x='07jan2003'd; text=put(x,year4.); output; x='07jan2004'd; text=put(x,year4.); output; x='07jan2005'd; text=put(x,year4.); output; color='white'; y=27; position='6'; x='07sep2002'd; text='Sell'; output; x='07feb2004'd; text='Hold'; output; run; data anno3title; xsys='1'; ysys='1'; function='label'; when='a'; x=1; y=100; position='f'; style='"arial"'; size=5.5; /* cbox='white'; */ text='Volume Traded'; output; run; data annoplot3; set annoref annoaxis anno3title; run; axis4 order=(0 to 450 by 150) color=&axisgray label=none minor=none offset=(0,0); symbol3 interpol=needle width=1 value=none color=purple; title a=90 h=.1 " "; footnote h=20 " "; goptions xpixels=500 ypixels=200; goptions htext=12 ftext="arial"; proc gplot data=stockdata anno=annoplot3; format volume comma4.0; plot volume*date=3 / haxis=axis1 vaxis=axis4 cvref=&refcolor autovref chref=&refcolor href= '01jan2003'd '01jan2004'd '01jan2005'd cframe=white caxis="&axisgray" des="" name="plot3"; run; /* ----------- Title slide -------------- */ goptions noborder; data titlanno; length function color $8 style $12 position $1 text $50 html $100; xsys='3'; ysys='3'; hsys='3'; when='a'; function='label'; position='3'; color="Black"; style='"arial/bo"'; size=4; y=92; x=39; color="&axisgray"; text="Price as of &date:"; output; x=58; color="black"; text="&price"; output; y=92; x=69; color="&axisgray"; text='2005E S&P Core EPS:'; output; x=87; color="black"; text="$1.12"; output; y=92; style='"arial"'; size=5.5; x=1; text="Quantitative Evaluation"; output; y=85; style='"arial/bo"'; function='label'; color="&axisgray"; size=3.5; x=1; text='S&P Earnings & Dividend Rank:'; output; style='"arial/bo"'; color='black'; size=3.5; x=23.5; text="÷nd_rank"; output; function='move'; x=1; y=y-4; output; function='bar'; line=0; size=.01; x=x+4; y=y+5; color='white'; style='solid'; output; function='move'; x=x-4; y=y-5; output; function='bar'; line=0; size=.01; x=x+4; y=y+5; color="&axisgray"; style='empty'; output; function='label'; x=x-2.3; y=y-5; position='3'; style='"arial/bo"'; color="&axisgray"; size=3; text='D'; output; function='move'; x=x+2.3; y=y-0; output; function='bar'; line=0; size=.01; x=x+4; y=y+5; color='white'; style='solid'; output; function='move'; x=x-4; y=y-5; output; function='bar'; line=0; size=.01; x=x+4; y=y+5; color="&axisgray"; style='empty'; output; function='label'; x=x-2.3; y=y-5; position='3'; style='"arial/bo"'; color="&axisgray"; size=3; text='C'; output; function='move'; x=x+2.3; y=y-0; output; function='bar'; line=0; size=.01; x=x+4; y=y+5; color='white'; style='solid'; output; function='move'; x=x-4; y=y-5; output; function='bar'; line=0; size=.01; x=x+4; y=y+5; color="&axisgray"; style='empty'; output; function='label'; x=x-2.3; y=y-5; position='3'; style='"arial/bo"'; color="&axisgray"; size=3; text='B-'; output; function='move'; x=x+2.3; y=y-0; output; function='bar'; line=0; size=.01; x=x+4; y=y+5; color='white'; style='solid'; output; function='move'; x=x-4; y=y-5; output; function='bar'; line=0; size=.01; x=x+4; y=y+5; color="&axisgray"; style='empty'; output; function='label'; x=x-2.3; y=y-5; position='3'; style='"arial/bo"'; color="&axisgray"; size=3; text='B'; output; function='move'; x=x+2.3; y=y-0; output; function='bar'; line=0; size=.01; x=x+4; y=y+5; color="&darkerblue"; style='solid'; output; function='move'; x=x-4; y=y-5; output; function='bar'; line=0; size=.01; x=x+4; y=y+5; color="&axisgray"; style='empty'; output; function='label'; x=x-2.3; y=y-5; position='3'; style='"arial/bo"'; color="white"; size=3; text='B+'; output; function='move'; x=x+2.3; y=y-0; output; function='bar'; line=0; size=.01; x=x+4; y=y+5; color='white'; style='solid'; output; function='move'; x=x-4; y=y-5; output; function='bar'; line=0; size=.01; x=x+4; y=y+5; color="&axisgray"; style='empty'; output; function='label'; x=x-2.3; y=y-5; position='3'; style='"arial/bo"'; color="&axisgray"; size=3; text='A-'; output; function='move'; x=x+2.3; y=y-0; output; function='bar'; line=0; size=.01; x=x+4; y=y+5; color='white'; style='solid'; output; function='move'; x=x-4; y=y-5; output; function='bar'; line=0; size=.01; x=x+4; y=y+5; color="&axisgray"; style='empty'; output; function='label'; x=x-2.3; y=y-5; position='3'; style='"arial/bo"'; color="&axisgray"; size=3; text='A'; output; function='move'; x=x+2.3; y=y-0; output; function='bar'; line=0; size=.01; x=x+4; y=y+5; color='white'; style='solid'; output; function='move'; x=x-4; y=y-5; output; function='bar'; line=0; size=.01; x=x+4; y=y+5; color="&axisgray"; style='empty'; output; function='label'; x=x-2.3; y=y-5; position='3'; style='"arial/bo"'; color="&axisgray"; size=3; text='A+'; output; y=73; style='"arial/bo"'; function='label'; color="&axisgray"; size=3.5; x=1; text='S&P Fair Value Rank:'; output; style='"arial/bo"'; size=3.5; x=17.0; color='black'; text="&fair_rank"; output; function='move'; x=1; y=y-4; output; function='bar'; line=0; size=.01; x=x+6.4; y=y+5; color='white'; style='solid'; output; function='move'; x=x-6.4; y=y-5; output; function='bar'; line=0; size=.01; x=x+6.4; y=y+5; color="&axisgray"; style='empty'; output; function='label'; x=x-3.5; y=y-5; position='3'; style='"arial/bo"'; color="&axisgray"; size=3; text='1'; output; function='move'; x=x+3.5; y=y-0; output; function='bar'; line=0; size=.01; x=x+6.4; y=y+5; color='white'; style='solid'; output; function='move'; x=x-6.4; y=y-5; output; function='bar'; line=0; size=.01; x=x+6.4; y=y+5; color="&axisgray"; style='empty'; output; function='label'; x=x-3.5; y=y-5; position='3'; style='"arial/bo"'; color="&axisgray"; size=3; text='2'; output; function='move'; x=x+3.5; y=y-0; output; function='bar'; line=0; size=.01; x=x+6.4; y=y+5; color='white'; style='solid'; output; function='move'; x=x-6.4; y=y-5; output; function='bar'; line=0; size=.01; x=x+6.4; y=y+5; color="&axisgray"; style='empty'; output; function='label'; x=x-3.5; y=y-5; position='3'; style='"arial/bo"'; color="&axisgray"; size=3; text='3'; output; function='move'; x=x+3.5; y=y-0; output; function='bar'; line=0; size=.01; x=x+6.4; y=y+5; color="&darkerblue"; style='solid'; output; function='move'; x=x-6.4; y=y-5; output; function='bar'; line=0; size=.01; x=x+6.4; y=y+5; color="&axisgray"; style='empty'; output; function='label'; x=x-3.5; y=y-5; position='3'; style='"arial/bo"'; color="white"; size=3; text='4'; output; function='move'; x=x+3.5; y=y-0; output; function='bar'; line=0; size=.01; x=x+6.4; y=y+5; color='white'; style='solid'; output; function='move'; x=x-6.4; y=y-5; output; function='bar'; line=0; size=.01; x=x+6.4; y=y+5; color="&axisgray"; style='empty'; output; function='label'; x=x-3.5; y=y-5; position='3'; style='"arial/bo"'; color="&axisgray"; size=3; text='5'; output; y=y-4.0; style='"arial/bo"'; color="black"; size=3.0; x=1; text="Lowest"; output; x=29; text="Highest"; output; y=y-6.0; style='"arial/bo"'; function='label'; color="&axisgray"; size=3.5; x=1; text="Fair Value Calc:"; output; style='"arial/bo"'; color='black'; size=3.5; x=12.5; text="$27.50"; output; y=53; style='"arial/bo"'; function='label'; color="&axisgray"; size=3.5; x=1; text='S&P Investability Quotient Percentile'; output; function='move'; x=1; y=y-4; output; function='bar'; line=0; size=.01; x=x+(.85*32); y=y+5; color="&darkerblue"; style='solid'; output; function='move'; x=x-(.85*32); y=y-5; output; function='bar'; line=0; size=.01; x=x+(.85*32); y=y+5; color="&axisgray"; style='empty'; output; function='label'; x=x-3.3; y=y-5; position='3'; style='"arial/bo"'; color="white"; size=3; text='85%'; output; function='move'; x=x+3.3; y=y-0; output; function='bar'; line=0; size=.01; x=x+(.15*32); y=y+5; color='white'; style='solid'; output; function='move'; x=x-(.15*32); y=y-5; output; function='bar'; line=0; size=.01; x=x+(.15*32); y=y+5; color="&axisgray"; style='empty'; output; y=43; style='"arial"'; function='label'; color="&axisgray"; size=3.0; x=1; text="XYZ scored higher than 85% of all companies"; output; y=y-3; text='for which an S&P Report is available.'; output; y=32; style='"arial/bo"'; function='label'; color="&axisgray"; size=3.5; x=1; text="Volatility:"; output; style='"arial/bo"'; size=3.5; x=8.0; color='black'; text="Average"; output; function='move'; x=1; y=y-4; output; function='bar'; line=0; size=.01; x=x+10.7; y=y+5; color='white'; style='solid'; output; function='move'; x=x-10.7; y=y-5; output; function='bar'; line=0; size=.01; x=x+10.7; y=y+5; color="&axisgray"; style='empty'; output; function='label'; x=x-5; y=y-5; position='2'; style='"arial/bo"'; color="&axisgray"; size=3; text='Low'; output; function='move'; x=x+5; y=y-0; output; function='bar'; line=0; size=.01; x=x+10.7; y=y+5; color="&darkerblue"; style='solid'; output; function='move'; x=x-10.7; y=y-5; output; function='bar'; line=0; size=.01; x=x+10.7; y=y+5; color="&axisgray"; style='empty'; output; function='label'; x=x-5; y=y-5; position='2'; style='"arial/bo"'; color="white"; size=3; text='Average'; output; function='move'; x=x+5; y=y-0; output; function='bar'; line=0; size=.01; x=x+10.7; y=y+5; color='white'; style='solid'; output; function='move'; x=x-10.7; y=y-5; output; function='bar'; line=0; size=.01; x=x+10.7; y=y+5; color="&axisgray"; style='empty'; output; function='label'; x=x-5; y=y-5; position='2'; style='"arial/bo"'; color="&axisgray"; size=3; text='High'; output; y=20; style='"arial/bo"'; function='label'; position='3'; color="&axisgray"; size=3.5; x=1; text="Technical Evalueation:"; output; style='"arial/bo"'; size=3.5; x=18.0; color='black'; text="Bearish"; output; y=16; style='"arial"'; function='label'; color="&axisgray"; size=3.0; x=1; text="Since 1/05, the technical evaluation for XYZ"; output; y=y-3; text="has been bearish."; output; y=7; style='"arial/bo"'; function='label'; color="&axisgray"; size=3.5; x=1; position='3'; text="Relative Strength Rank:"; output; style='"arial/bo"'; color='black'; size=3.5; x=18.5; text="Moderate"; output; function='move'; x=1; y=y-4; output; function='bar'; line=0; size=.01; x=x+(.32*32); y=y+5; color="&darkerblue"; style='solid'; output; function='move'; x=x-(.32*32); y=y-5; output; function='bar'; line=0; size=.01; x=x+(.32*32); y=y+5; color="&axisgray"; style='empty'; output; function='label'; x=x-2.3; y=y-5; position='3'; style='"arial/bo"'; color="white"; size=3; text='32'; output; function='move'; x=x+2.3; y=y-0; output; function='bar'; line=0; size=.01; x=x+(.68*32); y=y+5; color='white'; style='solid'; output; function='move'; x=x-(.68*32); y=y-5; output; function='bar'; line=0; size=.01; x=x+(.68*32); y=y+5; color="&axisgray"; style='empty'; output; function='label'; x=x-3.3; y=y-5; position='3'; style='"arial/bo"'; color="white"; size=3; text=' '; output; y=y-4.0; style='"arial/bo"'; function='label'; color="black"; size=3.0; x=1; text="1 Lowest"; output; x=27; text="Highest 99"; output; /* help button */ html='title='||quote('Help')||' '|| 'href="usaa_info.htm"'; function='move'; y=95; x=95; output; function='bar'; y=y+3; x=x+4; style="empty"; color="&axisgray"; line=0; size=.01; output; function='label'; y=94.25; x=95.8; position='3'; style='"arial"'; color="&axisgray"; size=3; text='Help'; output; run; goptions xpixels=1000 ypixels=500; title; footnote; proc gslide des="" name="titles" anno=titlanno; run; GOPTIONS DEVICE=gif; goptions display; goptions xpixels=1000 ypixels=500; ODS LISTING CLOSE; ODS HTML path=odsout body="&name..htm" (title="SAS/Graph Imitation of USAA Brokerage Services Dashboard") style=minimal ; goptions border; /* *** Now, put it all together onto one page, using proc greplay */ %let greout=white; proc greplay tc=tempcat nofs igout=work.gseg; tdef dashbrd des='USAA Investment Dashboard' 0/llx = 0 lly = 0 ulx = 0 uly = 100 urx =100 ury = 100 lrx =100 lry = 0 1/llx =30 lly = 42 ulx =30 uly = 97 urx =100 ury = 97 lrx =100 lry = 42 2/llx =27.4 lly = 19 ulx =27.4 uly = 41 urx =100 ury = 41 lrx =100 lry = 19 3/llx =27.4 lly = 0 ulx =27.4 uly = 22.0 urx =100 ury = 22.0 lrx =100 lry = 0 ; template = dashbrd; treplay 0:titles 1:plot1 2:plot2 3:plot3 des='' name="&name"; run; quit; ODS HTML CLOSE; ODS LISTING;