How do you write a horse move step by step?
These answers restate the rules implemented by our open-source engine, which follows the WXF laws for movement, checkmate and both repetition rulings: a side that forces a repetition by perpetual check or perpetual chase loses rather than drawing. The chase half has not been validated against the official casebook. Where an answer refers to a specific position, that position lives on the linked reference page, where the build verifies it before publishing.
Direct answer
Take it in four parts: H for horse, the starting file, + or − for whether it ends up nearer or farther from the mover's own side, and the destination file. So H8+7 reads "horse on file 8 advances, ending on file 7" and 馬8進7 says the same thing in Chinese.
Why the last number is a file, not a distance
A horse's move is one point orthogonally then one point diagonally, so a single "distance" would not tell you which of the two or three legal landing points at that distance was meant. Naming the destination file removes the ambiguity, which is why horses, elephants and advisors all use this pattern while chariots, cannons and soldiers use a distance instead.
Retreat looks the same, just with a minus
H7-8 or 馬7退8 says the horse on file 7 retreats, ending on file 8. The direction sign always refers to whether the horse is moving toward or away from the mover's own back rank, never to the file numbers going up or down, which can move either way in either direction. See reading notation for the underlying logic.
Related questions
Can a horse's move ever be written with =?
No. A horse never moves purely sideways along one rank, so 平/= never applies to it.
What if two horses could reach the same file?
The starting file already tells them apart: two horses on different files have different file numbers, even when both could reach the same point. Only if they share a starting file is the front/rear prefix needed. See notation for two pieces on one file.