Quote from droskill:
Agreed Murray - and I was never that good at word problems either! I'm more of a visual learner.
There is, of course, an additional issue which is figuring out how you would do something, then matching what you want to do to the programming tool. Some things that might be easy in one program are challenging in others just based on what functions and data structures are available.
Anyway - I think it's a useful thread.
Murray is correct in saying "look at programming problems as 'word problems' ".
Droskill is also correct in saying visualizing the problem leads to good solutions.
I find that Excel is the best tool for quick testing/programming.
You can "visualize" your problem and its solution in a spreadsheet. Excel also has the added benefit, that coding is extremely simple and it provides a way to manually "massage' the numbers which is an invaluable exercise. Finally, Excel is the best way to discover (a) if there are bugs in the trading software....a very common problem with trading software and (b) confirm that your coding is actually doing what you visualized it to do; this too is very common, where you code the answer to word problem ABC, whereas your word problem was actually, word problem XYZ.
Another benefit of Excel is that it has a wonderful inbuilt Help tool with great documentation and examples...much much better than what you will find with trading software. also there's an abundance of free help/tools/resources form the online community since Excel has a much larger userbase.
In sum, I suggest first building EVERY system (at least the basic logical rules/constructs) in Excel then port that over to the trading software. When I refer to Excel I refer to just working with Excel's in-built formulas. via the spreadsheet interface..there is no need for using Excel VBA. Once your Excel spreadsheet is set up and make sense, transferring it to the software should be fairly easy. It will just be a matter of converting your logical statements in Excel cells to the format/syntax of the software. You can then use both tools interchangeably to confirm each other and debug.
For example, I had a recent trade idea.... conceptually it was easy to visualize it. working by hand I could quickly generate inputs/outputs...but despite my long term experience with trading software... I couldn't easily think of how to code it in the platform. So I returned to my old reliable friend - Excel....it was a breeze setting it up in Excel and plus Excel even makes it easy to add on/modify your initial trade idea - "visualize" weaknesses in your logic and how to improve your logic. Now I have a working system in Excel...working in that the logical rules/conditions are set. I now want to port it to the trading software so I can perform a historical backtest. I have been pondering all morning how to do this - because there are things hat are so natural to Excel that trading platforms don't have or do in an odd way. I find that I've spent quite some time trying to determine how to port it over....but at least now I can' see how to port it over - I just need to determine matching functions in the trading software for the Excel functions. Note that before coding it in Excel , I couldn't even visualize how to start coding this system.
I can't recommend Excel strongly enough. It's my key R & D tool.
Where Excel fails is handling large data sets and portfolio historical backtesting. It's possible but quite intensive. If Excel wasn't deficient in that area I wouldn't even use any of the trading software packages. Yes Excel may be limited in having trading specific data functions..but that's an easy problem. The folks at MS could easily make Excel versions of the common TradeStation trading functions. Actually the more I think of it, there probably is a business idea here in making a Trading version of Excel for system development that would eliminate the need for mastering any trading language in a simple nice GUI platform. Mechanica supposedly uses a spreadsheet type interface (with references to rows/columns)....and I think in that regard it might actually be an easier platform to code in and visualize solutions/problems.