Download code

From LiteratePrograms

Jump to: navigation, search

Back to Thomson_Financial_DataStream_data_access_(Matlab)

Download for Windows: single file, zip

Download for UNIX: single file, zip, tar.gz, tar.bz2

datastream2struct.m

 1 % Copyright (c) 2008 the authors listed at the following URL, and/or
 2 % the authors of referenced articles or incorporated external code:
 3 % http://en.literateprograms.org/Thomson_Financial_DataStream_data_access_(Matlab)?action=history&offset=20080704102134
 4 % 
 5 % Permission is hereby granted, free of charge, to any person obtaining
 6 % a copy of this software and associated documentation files (the
 7 % "Software"), to deal in the Software without restriction, including
 8 % without limitation the rights to use, copy, modify, merge, publish,
 9 % distribute, sublicense, and/or sell copies of the Software, and to
10 % permit persons to whom the Software is furnished to do so, subject to
11 % the following conditions:
12 % 
13 % The above copyright notice and this permission notice shall be
14 % included in all copies or substantial portions of the Software.
15 % 
16 % THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 % EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18 % MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19 % IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20 % CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21 % TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22 % SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 % 
24 % Retrieved from: http://en.literateprograms.org/Thomson_Financial_DataStream_data_access_(Matlab)?oldid=13871
25 
26 function data = datastream2struct( vals)
27 % DATASTREAM2STRUCT - convert

28 % example:

29 %   ds_connection = datastream('login', 'password','Datastream');

30 %   vals          = fetch(ds_connection, 'F:RENU', {'P', 'PO', 'PH', 'PL', 'VO'})

31 %   data          = datastream2struct(vals)

32 
33 
34 
35 instr = vals.Instrument;
36 d     = findstr(instr, '~=');
37 sname = instr(d+2:end);
38 d     = [0, findstr(sname, ','), length(sname)+1];
39 names = {};
40 for i=1:length(d)-1
41     names{end+1} = sname(d(i)+1:d(i+1)-1);
42 end
43 
44 
45 nval  = repmat(nan,length(vals.DATE), length(names));
46 for n=1:length(names)
47    nval(:,n) = cellfun(@(x)(str2num(x)), vals.(names{n}));
48 end
49 
50 
51 dts = cellfun(@(x)(datenum(x, 'yyyy-mm-ddTHH:MM:SS')), vals.DATE);
52 
53 
54 data = struct('title', vals.DISPNAME, 'value', nval, 'date', dts, 'names', {names}, ...
55               'symbol', struct('type', 'datastream', 'value', vals.SYMBOL), 'currency', vals.CCY);
56 
57 


Views
Personal tools