You don't need OOP to write a simple trading algo. My trading algo has no inheritance or polymorphism even though i am an expert OOP Java programmer. There really is not much need for it with a code base that is less than 5,000 lines.
I actually said you don't need OOP ... in a 'round about way. Regardless the size of the program, you can utilize classes to store data, or you can have multiple arrays/lists/etc all over the place--for example. OOP was designed to improve programming situations that functional programming could not; but the use of OOP can be avoid to a large extent. OOP can be beneficial, regardless the size of the program.
On topic: The way I tend to logically organize the purposes of a bot/trading program/automated strategy/whatever. Alpha/edge Everything else Alpha is incredibly difficult to come by since it does not readily hide in magic price patterns in such quantities most trading communities would have you believe. The "easily code trading bot now!!!" tutorials online tend to miss this fact. Everything else is usually (comparatively) straightforward to implement and I would go as far as guessing it's always beneficial for discretionary traders to automate the non-alpha parts of their decision process, risk management included. Off topic: Agreed. I should say though that OOP as taught to novice programmers can induce over-design where zealous adherence to design patterns introduce more complexity than they help managing. The point presumably being to force new programmers to learn these patterns. An experienced programmer knows when s/he should and shouldn't add more abstractions. I certainly pull OOP classes in from external libraries (the standard lib included) even when I'm not writing overly OOP code. Large code bases are generally easier to navigate and reason about when organized with OOP. A good nightmare example being poorly organized large C codebases (the best ones tend to use OOP despite that language not explicitly supporting it).
We agree. I'll restate for clarity; imo's: Functional programmers tend to have more difficulty wrapping their minds around OOP, compared to a new programmer that has never learned functional programming. Functional programmers tend to avoid using even minimal OOP (user defined classes), even while using an OOP language, at first.
Like what? C++? Python is widely used for AI and algo programming. The OOP aspect is not the issue and but I can manage it.
I use Java. But python is fine i was only half joking about the weak typing. If you are careful it shouldnt be an issue. But with Java and even C++ you get more compile time checking.
IMO using a bot when a trader can't control their emotions is .... just another crutch that I believe will not help the underlying issue.