In the attached I used a method we have to change our view from one date level to the other. It has its limitations, but I think it might work for you.
I changed your [Period] parameter to use string values for the internal values. The two strings I chose are the ones that the DATE functions use as the date_part indicator.
Then I made a new date field that truncates your date to the first day of the specified date_part. So October 15 gets truncated to October 1 for quarters, and to Jan 1 for years.
See Sheet 2 of the attached. When you select one or the other param values, you can see how the dates behave. I also used the DATENAME function to extract the string value of the specified date part. Notice that you only get 1-throug-4 for the quarter values, but you can do some additional manipulation to build "Q4 2014" when the param is set to QoQ.
YoYQoQ_v10.3.twbx 1.2 MB