You store the name and seconds in the dictionary. When you call the api which takes 3 params, you have the name (1st param) and the seconds. You use the seconds value to derive the last 2 params.
For example, if the PeriodType is Hours and the value is 60, then 3600 would be stored in the dictionary. When you call the api, to determine the PeriodType, you divide by 60 multiple times to determing if the PeriodType is hours, minutes or seconds. If this is too complicated, use a struct.
Code:
public struct StockEntry
{
public string Name { get; set; }
public PeriodType Period { get; set; }
public int Value { get; set; }
public int Count { get; set; }
}
Dictionary<string, StockEntry> _stocks = new Dictionary<string, StockEntry>();
// example of adding a stock to the dictionary
_stocks.Add("ABC", new StockEntry { Name = "ABC", ... } );