My WSDL is not that strong but I would go along the lines of using a dataflow in the format:
Data source to get your data which feeds a script component synchronous transform which:
Set the input USDAmount column to read/write
In the PreProcess method sets up the WSDL
In the ProcessInputRow method pass the date, currency code and amount to the WSDL and uses the object attribute to apply the conversion to the currency value and store the result in the USDAmount column.
The performance will not be great since the web service will be called for each row.
If possible pre-sort your amounts by date and currency. This means that you can optimise the script component to only access the web service and get the exchange rate on a change of date and/or currency