I am encountering two approaches for valuation of FX swaps (fixed for fixed, e.g. fixed USD payments for fixed EUR payments) which seem to result into different values although in theory they should be the same.
Bloomberg's SWPM
Bloomberg's SWPM takes EUR cash flows, discounts them at USD discount curve adjusted by EURUSD basis curve and then converts the EUR NPV into USD using EURUSD spot.
Using FX forwards some choose to convert EUR cash flows into USD cash flows using EURUSD forward rates. Then discount the converted USD cash flows using a USD curve and this gives the NPV of the EUR leg in USD. Subtracting the other leg (USD) gives the NPV of the entire swap.
I always thought these two approaches should result into the same value, but they don't. Is there a reason for this? Is one better than the other?