Can a historical database be partitioned on multiple levels – say, by date, then symbol?

No. Only one level of partitioning (by date, month, year or integer) is supported.