Time-series of RedHat stock price
gmtset(FORMAT_DATE_IN="dd-o-yy", FORMAT_DATE_MAP=:o, FONT_ANNOT_PRIMARY="+10p", FORMAT_TIME_PRIMARY_MAP=:abbreviated, PS_CHAR_ENCODING="ISOLatin1+")
# Unfortunately, for time data some things must be numeric (seconds) other time strings
wesn = gmtinfo("@RHAT_price.csv", f=:T, inc=50, per_column=true)
# This provides the min/max time as a time string (1999-08-11T00:00:00/2007-12-31T00:00:00/0.0/300.0)
R = gmtinfo("@RHAT_price.csv", f=:T, inc=50); # The output is a cell
R = R[1].text[1][3:end]
wT, eT, sF, = split(R, '/')
# Lay down the basemap:
basemap(region=R, frame=(axes=:WSen, title="RedHat (RHT) Stock Price Trend since IPO",
fill=:lightgreen), xaxis=(annot=3, annot_unit=:month, ticks=1, ticks_unit="month2"),
yaxis=(annot=50, prefix="\$ ",), xaxis2=(annot=1, annot_unit=:year),
figsize=(22,15), portrait=false)
# Plot main window with open price as red line over yellow envelope of low/highs
RHAT1_env = gmtconvert("@RHAT_price.csv", outcol="0,2", colinfo="0T")
RHAT2_env = gmtconvert("@RHAT_price.csv", outcol="0,3", colinfo="0T",
reverse=true, supress=true)
RHAT_env = [RHAT1_env[1].data; RHAT2_env[1].data]
plot!(RHAT_env, fill=:yellow)
plot!("@RHAT_price.csv", lw=:thin, lc=:red)
# Draw P Wessel's purchase price as line and label it.
fid = open("RHAT.pw","w")
println(fid, "05-May-00 0")
println(fid, "05-May-00 300")
close(fid)
plot!("RHAT.pw", lw=:thinner, ls=:dashed, f=:T)
fid = open("RHAT.pw","w")
println(fid, "01-Jan-99 25")
println(fid, "01-Jan-02 25")
close(fid)
plot!("RHAT.pw", lw=:thick, ls=:dashed, f=:T)
text!(text_record([wesn[1].data[1] 25], "PW buy"), offset=(3.8, 0.15),
font=(12, "Bookman-Demi"), justify=:LB)
# Draw P Wessel's sales price as line and label it.
fid = open("RHAT.pw","w")
println(fid, "25-Jun-07 0")
println(fid, "25-Jun-07 300")
close(fid)
plot!("RHAT.pw", lw=:thinner, ls=:dashed, f=:T)
fid = open("RHAT.pw","w")
println(fid, "01-Aug-06 23.8852");
println(fid, "01-Jan-08 23.8852");
close(fid);
plot!("RHAT.pw", lw=:thick, ls=:dashed, f=:T)
text!(text_record([wesn[1].data[2] 23.8852], "PW sell"), offset=(-2, 0.15),
font=(12, "Bookman-Demi"), justify=:RB)
# Get smaller region for insert for trend since 2004
R = "2004T/" * eT * '/' * sF * "/40"
# Lay down the basemap, using Finnish annotations and place the insert in the upper right
basemap!(region=R, frame=(axes=:ESw, fill=:lightblue),
xaxis=(annot=3, annot_unit=:month, ticks=3, ticks_unit="month2"),
yaxis=(annot=10, prefix="\$ ",),
xaxis2=(annot=1, annot_unit=:year), proj=:linear, figsize=(15, 7.5),
xshift=7, yshift=7.5, par=(:GMT_LANGUAGE, :fi))
# Again, plot close price as red line over yellow envelope of low/highs
plot!(RHAT_env, fill=:yellow)
plot!("@RHAT_price.csv", lw=:thin, lc=:red)
# Draw P Wessel's sales price as dashed line
plot!("RHAT.pw", lw=:thick, ls=:dashed, f=:T)
# Mark sales date
fid = open("RHAT.pw","w")
println(fid, "25-Jun-07 0")
println(fid, "25-Jun-07 300")
close(fid)
plot!("RHAT.pw", lw=:thinner, ls=:dashed, f=:T, show=1)
rm("gmt.conf")
rm("RHAT.pw")
See also GMT ex21