Lance Stroll (right) with Esteban Ocon, who he will be replacing as driver in the Force India team for the 2019 Formula 1 season

Canadian driver Lance Stroll is to race for Force India in 2019.

His move from Williams, for whom he made his debut in 2017, has been Formula 1's worst-kept secret since his father bought Force India in August.

Canadian billionaire Lawrence Stroll rescued the team from administration as head of a consortium and is expected to change their name.

His 20-year-old son will partner Mexican Sergio Perez, who was confirmed as a driver in October.

"This is the beginning of an incredibly exciting journey in my Formula 1 career," Stroll said.

His appointment means all 20 seats for next season are now confirmed.

"I'm pleased that we can finally confirm Lance's arrival to race alongside Sergio next year," team principal Otmar Szafnauer said.

"It gives us an exciting line-up with the perfect blend of youth, talent, and experience. Lance is only 20 and already has two years of Formula 1 experience under his belt, as well as a podium finish and a front row start.

"We see huge potential in Lance and believe we can create an environment in which he can flourish."

Stroll has a best result of third, achieved at the Azerbaijan Grand Prix in 2017, and a best qualifying position of fourth, at the Italian Grand Prix that year.

However, other than the odd highlight, he has been unconvincing in his two seasons so far and Williams are not unhappy to see him go, despite the tens of millions the Stroll family invested in the team.

Williams have signed highly rated British rookie George Russell to race alongside Poland's Robert Kubica, a former grand prix winner who is returning after an eight-year absence following a rally crash in 2011 that left him with partial movement in his right arm.