A MedicationStatement, depending on the source of information used to construct it, may not necessarily have all the information required to create a valid/complete MedicationRequest.
That being said, suppose you do have all the necessary information, it seems MedicationRequest.basedOn references only any of the following: CarePlan, MedicationRequest, ServiceRequest, and ImmunizationRecommendation. I believe it would be wise to develop your solution in line with these guidelines.
You do however have the option to use MedicationRequest.supportingInformation, type Reference(Any), which can " include additional information (for example, patient height and weight) that supports the ordering of the medication.", in your case a reference to the MedicationStatement that you used as a basis.
Does that help answer your question?