When you use a member statement, you generally want to use currentmember, as it references the current cell. Combine that with membervalue and you get the value. In this case I then wrapped the expected answer in quotes.
WITH MEMBER [XorY] AS
(
IIf([Scenario].[Option].currentMember.membervalue = "+5", 'X', 'Y')
)
If you are comparing to a number you would do:
WITH MEMBER [XorY] AS
(
IIf(STRTOVALUE([Scenario].[Option].currentMember.membervalue) = 5, 'X', 'Y')
)
This can return an error if not all of the members in [Scenario].[Option] are numbers. There is also a potential performance issue with the conversion.