Could simplicity win against complexity in EA programming?

 
For those who are experienced in programming EAs, I'd value your opinion on this. 
If you have an EA that makes buy and sell positions based on valid strong signals, is this better than having a lot of position management code (recovery trades, PnL analysis etc.)? 
I wrote a script full of position management code and I actually don't like any of it. I'm thinking I've gone overboard with some overthinking, and maybe I should have made the core concepts better instead. That I should maybe keep it more simple. Any thoughts?

 
I believe a loosing strategy won't turn profitable with recovery ideas. Better to keep it a simple trade with single SL TP.
Recovery is good if you want to attract less experienced investors seeking never-loosing strategies.
 
Conor Mcnamara:
If you have an EA that makes buy and sell positions based on valid strong signals, is this better than having a lot of position management code (recovery trades, PnL analysis etc.)? 
I wrote a script full of position management code and I actually don't like any of it. I'm thinking I've gone overboard with some overthinking, and maybe I should have made the core concepts better instead. That I should maybe keep it more simple. Any thoughts?

Your question is not about programming, but about trading. Programming is the process of implementing a solution according to strictly formalized requirements specifications. And you ask whether you need more complex position management logic. That is, you are asking what should be in the requirements specification, not how to implement it.

 
Vladislav Boyko #:

Your question is not about programming, but about trading. Programming is the process of implementing a solution according to strictly formalized requirements specifications. And you ask whether you need more complex position management logic. That is, you are asking what should be in the requirements specification, not how to implement it.

I took a bottom-up approach in making an EA, there were no requirements to begin with, and no blueprint. I started with basic signals, and then added more and more logic to recover loss trades. To be honest, I never take a top-down approach with projects, it's not usually how I work. But not having years experience in this field of automated trading, you can imagine that I would have needed to experiment starting from the basics.

 
Conor Mcnamara #:

I took a bottom-up approach in making an EA, there were no requirements to begin with, and no blueprint. I started with basic signals, and then added more and more logic to recover loss trades. To be honest, I never take a top-down approach with projects, it's not usually how I work. But not having years experience in this field of automated trading, you can imagine that I would have needed to experiment starting from the basics.

I just emphasized that your question is about trading, not programming.

I have experience programming EAs, but I have no opinion on your question. I know how to program a strategy, but I don't know how to come up with a profitable strategy (before programming it).

By the way, customers in the freelance section often ask the developer's opinion about whether the strategy will be more profitable if this or that thing is added. Guys, this is very naive of you. I am convinced that a person who knows how to make a strategy profitable will not take freelance orders as a developer.

 

Simplicity is the key to good programming and profitable trading, both of them.

I have decades of experience in programming and every time I realize code is getting over complicated, I rethink the whole think and start from scratch, it won't work otherwise.

I have not enough experience about trading, I think you've never learned enough in this field, yet I realized that simple strategies are the most likely to work: one entry trigger, a filter and a good exit strategy most of the time work better than having plenty of indicators and complicated position management.

At least this is my experience.

 
Vladislav Boyko #:

I just emphasized that your question is about trading, not programming.


Yes I understand what you mean. But wouldn't this mean that for all those EAs based on just one indicator like stochastic oscillator or something, that it's not safe enough nor reliable?
It seems that the signal for a new trade needs to have not only have perfect precision (non lagging signal/non flickering signal), but the entry also needs to be validated.
Then if a simple indicator isn't reliable enough, you have to try a worthwhile trading system instead....or else rewrite the indicator that the EA uses to be better (lessen false signals, no lagging signals etc.). Seems to me that a lot of EAs will inevitably be low quality. It's like trying to craft a good sounding violin.

 
Francesco Baldi #:

Simplicity is the key to good programming and profitable trading, both of them.

I have decades of experience in programming and every time I realize code is getting over complicated, I rethink the whole think and start from scratch, it won't work otherwise.

I have not enough experience about trading, I think you've never learned enough in this field, yet I realized that simple strategies are the most likely to work: one entry trigger, a filter and a good exit strategy most of the time work better than having plenty of indicators and complicated position management.

At least this is my experience.


It makes sense to me. Thanks all for responses.
Simplicity seems to be the key here, but only with a proven trading system. The other side of simplicity will turn it into a gambling system. The trading criteria needs to be 100% reliable and sustainable


 

Keep it simple. We're just trading here, it's been done for many years with candlestick charts, and for all of eternity without. I can go to the store right now, trade my USD for bread, wait for bread prices to go up, and sell bread for USD. Just did a trade right there.

Plus more complexity makes it harder to find the problem. If you took (just for argument sake) a random bot with a SL of 50 and a TP of 50. It doesn't make money? Well there's only two things to optimize and find the problem. But if you added recovery methods, grid systems, martingale, etc. well now you got 100 things to diagnose. Good luck figuring out where the problem is.

 

I've made hundreds of EAs, if I consider each iteration (adding/changing rules) the number of EAs I've made are in the thousands.

I've learned that anything that is too simple will probably not work, for example finding a magic combination of known indicators crossing each other or certain values. This approach have been made millions of times by millions of people.

But I've also learned that making something too complex is not worth it. One recent project that I made, I would run the EA on several forex pairs, but before any trade was made, it would check the correlation with running trades on other pairs before entering the trade. And if the trade lost money, it would record the loss on a variable and find a uncorrrelated pair where it would try to recover the loss (it would record how much each pair had to recover and would change it/pass to other pairs on some occasions). It also had many filters, rules, etc. It was so complex that it had literally thousands of lines of code.

I worked on that EA for months. In the end, while it made money, the final profit (monthly growth) was not worth it... it's like 3% or 4% per month. I'm still using it, but to be honest, we are trying to make EAs that make more money than investing in stocks (or something like that). If it has a growth that is comparable to safer investments, it makes no sense.

My advice is to keep it simple, but not too simple. You need to be creative on your approach, think of something that is not available on the internet. Most ideas publicy available are either completely wrong or just work if you trade manually (where you make the final decision to trade or not based on current market conditions - volatility/news/etc).

 
Rafael Grecco #:

I've made hundreds of EAs, if I consider each iteration (adding/changing rules) the number of EAs I've made are in the thousands.

I've learned that anything that is too simple will probably not work, for example finding a magic combination of known indicators crossing each other or certain values. This approach have been made millions of times by millions of people.

But I've also learned that making something too complex is not worth it. One recent project that I made, I would run the EA on several forex pairs, but before any trade was made, it would check the correlation with running trades on other pairs before entering the trade. And if the trade lost money, it would record the loss on a variable and find a uncorrrelated pair where it would try to recover the loss (it would record how much each pair had to recover and would change it/pass to other pairs on some occasions). It also had many filters, rules, etc. It was so complex that it had literally thousands of lines of code.

I worked on that EA for months. In the end, while it made money, the final profit (monthly growth) was not worth it... it's like 3% or 4% per month. I'm still using it, but to be honest, we are trying to make EAs that make more money than investing in stocks (or something like that). If it has a growth that is comparable to safer investments, it makes no sense.

My advice is to keep it simple, but not too simple. You need to be creative on your approach, think of something that is not available on the internet. Most ideas publicy available are either completely wrong or just work if you trade manually (where you make the final decision to trade or not based on current market conditions - volatility/news/etc).


I will definitely take that advice going forward. I know what you mean by all the iterations. To complete one EA feels like you created 100 EAs. I found out how delicate it can be as well and easy to destroy when there there are multiple boolean states all over the place and removing one can have consequences when it gets difficult to keep track of the logic. It's no doubt that the more experience you have the stronger you can become at this. That is if you seek to improve on past results each time (and take the insights you learned with you along the way). It can be a huge headache in the beginning lol.