0

我的数据作为一个看起来像这样的单元格返回(每个交易都在单元格中彼此下方,即它是一个 5 x 4 单元格):

sell      50    FTSE                   6500 
buy       100   Eurostoxx              3300  
buy       25    SP                     1980 
buy       30    FTSE                   6490
sell      25    Eurostoxx              3315  

首先,因为我混合了从我的数据库查询中返回的数据作为一个单元格,所以不确定这是否有问题

我想做的是将这些标记为市场,所以我将这些合约中的每一个的收盘价作为一个变量,让我们称它们为FTSE_CLOSE, EUROSTOXX_CLOSESP_CLOSE

我希望能够执行以下操作:

where coloumn 3 = "FTSE" and column 1 = "sell" then column 5 = column2 * (column4 - FTSE_CLOSE)
where column 3 = "FTSE" and column 1 = "buy" then column 5 = column2 * (FTSE_CLOSE - column4)  

其他合约以此类推。

基本上我正在努力混合使用字符串和数字

  1. 我是否需要cell2mat一切,所以我有几个向量,然后以某种方式查看字符串向量并对其他相关向量执行计算,即quantity * price - close_price
  2. 有没有更简单的方法来做到这一点
4

1 回答 1

0

我认为您只是在寻找命令str2num

这是一个想法:

input_data={"sell","50","FTSE","6500";
            "buy","100","Eurostoxx","3300";
            "buy","25","SP","1980",
            "buy","30","FTSE","6490",
            "sell","25","Eurostoxx","3315"};

closing_price.FTSE=6000;
closing_price.Eurostoxx=3000;
closing_price.SP=2000;

for i=1:size(input_data,1)
    if strcmp(input_data{i,1},'sell')
       diff_from_market(i)=str2num(input_data{i,2}) ...
           *(str2num(input_data{i,4})-closing_price.(input_data{i,3}));
    elseif strcmp(input_data{i,1},'buy')
       diff_from_market(i)=str2num(input_data{i,2}) ...
           *(closing_price.(input_data{i,3})-str2num(input_data{i,4}));
    end  
end
diff_from_market
于 2014-11-12T15:47:48.760 回答