There's a guide called "Game Guide v.1.1" – it's small, around 100 pages or even less. It describes the tactical principles of different races in quite detail, both for playing as them and against them. Therefore, there's no point in explaining the basics. But I still want to add something.
In Heroes 4, and perhaps even more so than in Heroes 3, the outcome of a battle depends not only on the player's skill but also on luck. For example, the fastest unit doesn't always go first; it's the one that rolls high for morale at the beginning of the round. Morale is determined randomly, and a unit's morale value only affects the probability of getting good or bad morale. So, even a good player can lose if they're unlucky.
And, of course, the outcome depends on choosing the right tactics in battle. Use one tactic – destroy the enemy and win the battle without losses. Use another – and you're completely defeated. Sometimes, a single wrong move (a wrong decision) can turn the tide of the game.
Considering these two factors, I want to add that you shouldn't fight every battle using the same template. Sometimes, you need to think and find a non-standard solution to what seems like an impossible situation.
Auto-translated