Learning, all about something before starting, against, just getting stuck in not knowing anything are two extremes and the best way to start I guess would fall somewhere in between, since you always know ‘something’.
The former, you may take time, learn a lot but generally not use most of it or very little. The latter, focusses you on the current problem, and where you need gain knowledge.
Giving someone a box of tools doesn’t automagically mean they know what to do with then, however, if your doing ‘something’, it doesn’t take long before you realise you need something heavy, a hammer, to whack it!
Other than simple programming concepts like maths; logic, syntax, comments; variables; condition blocks; loops and input and output, knowing what your trying to program can be a big problem.
Though an algorithm itself can be tricky to implement and refine using the language, knowing the actual system your trying to program for, is the bigger issue.
The first thing that stood out with PRT and the ProBuilder lauguage was the system limits are either not posted or spread over the manuals and not gathered in a table somewhere or list of error messages.
Though generally, this may not be much of the a problem with simpler algorithms, it becomes more of an issue in more complex and/or going to the limits or beyond the current language design.
It’s only knowing, the limits, limit of language and system design that you can ensure you stay within it.
Further to that, code can appear in several different forms, screeners; indicators; proBacktest and proOrder variety’s all with a different subset of common and specific commands.
Then the operational differences, like decimal places and active bar between indicators/backtest also the different ways errors are relayed or not ect…
In conclusion, PRT feels like a bunch of modules bolted together where there are nuts and washers missing in various places. There are a lot of good features but various parts don’t talk to other parts or incompatible or limited in some way.
As time goes on in the life of a application, hopefully these issues will get ironed out, however, its not always that easy to achieve, especially in the short term. The initial design of the platform may have out lived its usefulness to be easily updated with out significant fundamental design changes, changes which require significant time and resources, that’s before adding new features which may be more easily added to a new design. Then there’s backwards compatibility, copyright, licencing, regulations, and other loops to jump through, all while keeping the platform in usable shape and without raising the wrath of the users.
Mostly, when you use software, your not using it from the first version or the beginning so all the prior info, details and evulsion get condensed over the following versions which often appears as the new or different features from last version. To me this is like watching a film from the middle, your missing vital info which takes you off in a different direction, a direction not intended. This can lead to a process of using the software in a way that was not intended or envisioned, this because the core process is masked by the weight of the number of added features added over its lifetime.
Though me being wound up by software is no way limited to just PRT, and is widespread, its something I begrudging live with. Not being totally immune, I do sometimes break out with symptoms of , head in hands; shaking head and occasion rants.
Its often said that an error in software is called a ‘bug’ and eradicating the ‘bugs’ is called ‘debugging’ however, its really the code winding you up about all the errors you make, and a sign that you should be thinking about, what you’ve done, do you know what your doing, and where you should be going.
regards all