If you want hist_asset to depend on DATES, COMMS, and PERIODS, you must first populate all three index sets before you populate the parameter. You already populated COMMS and PERIODS, so you just need DATES:
set DATES;
read data WORK.santander_hist_3 into DATES=[date];
num hist_asset {DATES, COMMS, PERIODS};
read data WORK.santander_hist_3 into [date ativo] {j in PERIODS} <hist_asset[date, ativo, j]=col(j)>;
print hist_asset;
For the IMPVAR, you have the indices of hist_asset out of order:
/*impvar amount_date_comm_period {date in DATES}=sum{comm in COMMS,period in PERIODS} amount[comm,period]*hist_asset[comm,date,period];*/
impvar amount_date_comm_period {date in DATES}=sum{comm in COMMS,period in PERIODS} amount[comm,period]*hist_asset[date,comm,period];
... View more