The calling procedure for GetData in class Portfolio ...
Function GetData(strInstrumentType As String) As Variant
... is looking for a string in the function call
The first time (in post #2) , you didn't have one and since it was required, it was not optional
The other error (in post #3) is telling you that you tried to use a string variable (called 'Cash') but that it was never defined (like Dim Cash As String)