You don't need money in your MQL5 account in order to post a Freelance job, but you need it later in order to proceed to the next steps (the needed amount is locked when you asign your project to a developer).
You don't have to deposit money to place an order.
Once you have selected the developer, you will need to deposit the funds or you cannot proceed.
The minimum price is $30. I believe if lower minimum was accepted, the average would be cheaper! Ordering freelance is like a competition, and developers are not aware of other bids.
Coding isn't such easy... and satifying customers may be more difficult than coding.
You can find all information you'll need, and more, in https://www.mql5.com/en/job/rules.
It is up to you to supply fully detailed and coherent specifications.
It is the developer's job to code the indicator/EA to execute according to those specifications.
There are occasions when the indicator/EA may not work as the customer expects, but it works as specified. That is because the person has not given enough thought to the specifications.
If the customer then wants changes, he should expect to pay more. This may not cost an additional $30 as if it is done before the job is completed, the price can be increased.
If you place a job please think carefully about the specifications and explain clearly and precisely your requirements.