You're never going to win them all and rarely a majority of votes cast. It's human nature you're up against. The maternity ward is full of future NDP, Liberal, Green and Conservative voters. A majority of those little cuties will end up voting opposite to your sons and daughters. Elections are not a scientific test to determine the best policy for defence, money, security of the person, charity and markets. If you want policies that work, look to the Fraser Institute: "A free and prosperous world through choice, markets and responsibility". If you want to win elections, you win votes. Elections are about votes. Votes are just votes. To govern you must win a share of votes from citizens who deeply disagree with your beliefs.
Voters are a food source that parties feed upon. They cluster around values like "treat everybody the same|" "Keep my town safe" "Don't forget the poor and the orphans" "Let me raise my family my way" "Don't lie to me" "Waste not want not" "There ought to be a law" "Got to break a few eggs to make an omelette" and on and on.
The parties have "bi-polar disorder" and try to line up along a single left-to-right axis. The voters are all over the place and the winning party harvests the most. Stephen Harper has been good at this. Some of his supporters grumble but the larger group of people who don't support him, includes many who grudgingly say they can live with his policy. The result has been a better Canada.