For several months now, I have been programming algos in easyLanguage. Based on that experience, I believe the most difficult aspect isn't coding entry criteria. It's coding the exit because there can be so many nuances to closing a trade. The longer I work on the project, the more I am attracted to very simple strategies such as crossovers for entry and profit targets (in dollars) for exits if allowing the algo to manage the trade.
Lately I have moved away from allowing the program to manage the exit. It is more profitable to let the algo open the trade with a bracket order and then I adjust the stop loss and profit target based on structure and price action. That kind of exit criteria is something I will never have the skills to code but can easily adjust manually once the trade has been opened by the ago.
Best wishes and happy trading!