-1

I don't understand why the for cycle does not execute the last cycle, i.e. the field 'PX_TO_BOOK_RATIO'.

javaaddpath('C:\DocumentsandSettings\cascari\Desktop\API\APIv3\JavaAPI\v3.7.1.1\lib\blpapi3.jar')
connection = blp;
FileName='ScopeEconomies';
list={'OPM LN Equity';'FCTY US Equity';'FCCY US Equity'}
bbgfields={'TOT_LOAN_TO_TOT_ASSET'; 'PX_TO_BOOK_RATIO' };
nfields=length(bbgfields);

for i=1:nfields

      [data,sec] = history(connection, list, bbgfields(i), '01/01/1993', '12/31/2013',...
                  {'quarterly','all_calendar_days','nil_value'},'USD');

      temp=[data{:,:}]; 
      eval([char(bbgfields(i)) '=temp']);

      name=char(bbgfields(i));

      xlswrite(FileName, temp, name, 'B1');

end;

When instead I leave only one element in bbgfields, I get

Attempted to access j(1); index out of bounds because numel(j)=0.
Error in blp/history>eventHandler (line 417)
    outInd(i) = j(1);
Error in blp/history (line 245)
  [d,sec] = eventHandler(b,s,f); 
Giuseppe
  • 518
  • 10
  • 22

1 Answers1

0

I am guessing it is because you are using a cell as an input into history. Have you tried converting it to char as follows?

[data,sec] = history(connection, list, char(bbgfields(i)), '01/01/1993', '12/31/2013',...
              {'quarterly','all_calendar_days','nil_value'},'USD');