You don't have to expect a light saying "you're ok to fire now!". As soon as have the following checked, torpedo is ready to fire and will continue to be ready as time progresses:
1 - scope is locked on target
2 - Position Keeper is on
3 - a distance has been inputed
4 - an AOB has been inputed
5 - a speed has been inputed
With this done, firing solution will constantly be calculated and updated.
Now, it's a different thing to say that the firing solution will be CORRECT.

If any data is inputed wrong, or the ship changes anything it its attitude, the firing solution will not be correct.
The greater the error inputing data, the greater the error in the firing solution. This is why some odd-firing situations (like being ahead or behind the target, or any other odd angle, or being too far from it, or firing at targets traveling in high speed) tend to compromise the firing solution.