West Australia all-rounder Marcus Stoinis has announced his shock retirement from one-day international cricket just two weeks out from a Champions Trophy he was expected to play.