Quote from polr_trader:
droskill,
Thanks for the reply. Your posts have been helpful and insightful. Can you please elaborate on what RE can't currently do for you? I admit that my needs are quite plain vanilla. That may change at some point, though (particularly as I'm now learning to program in C#), so I'd like to see what others feel are RE's shortcomings.
Thanks,
polr
The big difference I've noticed between the two is that SmartQuant has a built in portfolio object. This means that doing actions across different positions (basic position sizing, resizing based on volatility, or position size limits, etc.) can be done very easily. You can write some basic code with just a bit of knowledge. The problem I have with SmartQuant, however, is that they have two types of systems - I may be getting the names wrong here - ATS systems and "other system" (can't remember the name). ATS systems have the advantage of being deployable on their standalone platform for full automation (think: I want to put it on a server that monitors the market and makes automatic trades). The other type is designed just so that you can perform backtesting and easily swap in different techniques for entry, exit and money management (TradingBlox does this very well from what I've seen as well). With ATS systems, you have to have all the code, essentially, contained in a single object. This means that you develop your system in the basic system and have to convert it make it work as an ATS system. I just don't understand why they set it up this way - it is completely counterintuitive to me - maybe it makes sense to others.
RE, in contrast, doesn't have a concept of a portfolio object. So it is not as easy to switch to, say, volatility based sizing. Now these guys know this - I've talked about it extensively with them. As they talked about in a forum conversation with them:
"For your money management, you can accomplish what you're proposing. Admittedly, I think QD probably has a better system out of the box as far as componentizing money management.
If I understand correctly, I think you could get the same results by writing a money management assembly and adding it as a reference to the project. In other words, you code up a vol sensitive money plan or ATR/vol based money plan and in NewSymbolBar() you feed your module the current "situation". Your module would determine based on its rules the position size and feed that back to RightEdge. Keep in mind that you have access to all bar data and indicator values (up to the current bar, no cheating!), so you can feed that to any module you'd like. This is definitely the beauty of using real .NET languages.
Ideally, we could write money management plugins that you could select in a drop down and they would get applied automatically. My main concern is that everyone's money management is different and to make this work, there would have to be access to source code or you'd have to implement your own. We'll give this more thought though."
For reference:
http://www.rightedgesystems.com/forums/Topic275-7-1.aspx
So, I guess what I'm saying is this: if you don't need portfolio-level testing, then just about any product can do this. In fact, if I was doing just single-instrument testing, I would use Tradestation - it's fine for that. But if you move beyond that, or you need to plug in more custom code via a C# interface, then QD may be a better choice currently.
One thing I want to add about using C# - despite the fact that you are learning a standardized language, every platform uses different objects and concepts - so it's not like you can just port code between them. I know this is obvious, but I think it's just worth mentioning.
Make sure you also take a look at NeedforTrade - they are C# based as well.
Hope this is helpful....